Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

evitando limpar partes desnecessárias do canvas

  • Loading branch information...
commit 2693bd6a8b7192845d277d0eb46ef19d73e547f1 1 parent a7d8199
@HugoLnx authored
View
21 javascript/canvas.js
@@ -1,11 +1,12 @@
function Canvas(id){
- var historicoCursor = [];
var constelacao = new Constelacao(30);
var elem = document.getElementById(id);
var mouseX = 0;
var mouseY = 0;
var context = elem.getContext('2d');
context.lineWidth = 4;
+ desenharTextoInformativo();
+ var textoInformativoNaTela=true;
function desenharTextoInformativo(){
context.beginPath();context.closePath();
@@ -19,18 +20,30 @@ function Canvas(id){
context.fill();
context.restore();
}
- desenharTextoInformativo();
+
+ function apagarTextoInformativo() {
+ context.clearRect(0,0,elem.width,elem.height);
+ };
this.atualizar = function(mX,mY){
- context.clearRect(0,0,elem.width,elem.height);
+ var retangulo = constelacao.enquadrada();
+ context.clearRect(retangulo.x,retangulo.y,retangulo.width,retangulo.height);
mouseX = mX - elem.offsetLeft;
mouseY = mY - elem.offsetTop;
constelacao.atualizar(mouseX,mouseY);
var pintor = new PintorDeConstelacao(constelacao);
pintor.pintarEm(context);
- if (!this.estaDentro(mX,mY))
+
+ if (this.estaDentro(mX,mY) && textoInformativoNaTela){
+ apagarTextoInformativo();
+ textoInformativoNaTela = false;
+ }
+
+ if (!this.estaDentro(mX,mY) && !textoInformativoNaTela){
desenharTextoInformativo();
+ textoInformativoNaTela = true;
+ }
}
this.estaDentro = function(x,y) {
View
28 javascript/constelacao.js
@@ -71,6 +71,34 @@ function Constelacao(raio){
return cor;
}
+ this.enquadrada = function() {
+ var estrela = estrelas[0];
+ if (!estrela) return {x:0,y:0,width:0,height:0};
+ var retangulo = estrela.enquadrada();
+ var xMin = retangulo.x;
+ var yMin = retangulo.y;
+ var xMax = retangulo.x+retangulo.width;
+ var yMax = retangulo.y+retangulo.height;
+
+ for (var i=1;i<estrelas.length;i++){
+ retangulo = estrelas[i].enquadrada();
+ if (xMax<retangulo.x+retangulo.width)
+ xMax = retangulo.x+retangulo.width;
+ if (yMax<retangulo.y+retangulo.height)
+ yMax = retangulo.y+retangulo.height;
+ if (xMin>retangulo.x)
+ xMin = retangulo.x;
+ if (yMin>retangulo.y)
+ yMin = retangulo.y;
+ }
+ return {
+ x: xMin,
+ y: yMin,
+ width: xMax - xMin,
+ height: yMax - yMin
+ };
+ };
+
this.estrelas = function() {
return estrelas;
}
View
9 javascript/estrela.js
@@ -26,6 +26,15 @@ function Estrela(r,x_inicial,y_inicial,cor){
this.copiarCor = function(estrela){
cor = estrela.cor();
}
+
+ this.enquadrada = function() {
+ return {
+ x: x-raio,
+ y: y-raio,
+ width:raio*2,
+ height:raio*2
+ };
+ };
this.setPosicao = function(novoX,novoY){
x = novoX;
View
2  javascript/game_loop.js
@@ -3,7 +3,7 @@ function GameLoop(updateGame) {
var FPS = 20;
var finished = true;
- window.setTimeout(loop,fps);
+ window.setTimeout(loop,FPS);
function loop() {
setTimeout(loop,FPS);
Please sign in to comment.
Something went wrong with that request. Please try again.