os acertos contam dobrado^^
Pessoal, eu vi o tutorial do Francisco Teodorico ( no MXStudio ), chamado Jogo de "Tiro ao Alvo" e estou com problemas, os acertos contam dobrado^^ se eu clico uma vez no logox_mc ( onde x é 1, 2 ou 3 - esse logo é o alvo) ele conta como dois cliques, é engraçado, e a precisão também está dobrada, o máximo seria 100%, mas está em 200%! O problema é com os acertos, sei disso porque a precisão usa os acertos na conta, ja revirei o código, mas não sei onde está o erro:
_global.acertos = 0; //Armazena a quantidade de logos atingidos_global.erros = 0; // Armazena a quantidade de logos que "fugiram"_global.cliques = 0; // Armazena a quantidad e cliques (acertos e erros)_global.cProfundidade = 100;_global.nivel = 1;var xVelocidade:Number = Math.round(4+_global.nivel);var larguraStage:Number = 550; //Definição da área dos cliquesvar alturaStage:Number = 320; // Definição da área dos cliquesthis.attachMovie("alvo_mc", "alvo_mc", 5001);Mouse.hide();var mouseListener:Object = new Object();mouseListener.onMouseMove = function() { alvo_mc._x = _xmouse; alvo_mc._y = _ymouse;};mouseListener.onMouseDown = function() { _global.cliques++; if (fundo_mc.hitTest(_xmouse, _ymouse, false)) { _global.acertos++; }};Mouse.addListener(mouseListener);var meu_textoFormatado:TextFormat = new TextFormat();meu_textoFormatado.bold = true;meu_textoFormatado.font = "Arial";meu_textoFormatado.size = 12;meu_textoFormatado.color = 0x000000;this.createTextField("estatisticas_txt", 5000, 10, 0, 530, 22);estatisticas_txt.setNewTextFormat(meu_textoFormatado);estatisticas_txt.selectable = false;updateStats();this.onEnterFrame = function() { if (randRange(0, 20) == 0) { var randomLogo:Number = randRange(1, 3); var thisMC:MovieClip = this.attachMovie("logo"+randomLogo+"_mc", "logoAlvo"+_global.cProfundidade+"_mc", _global.cProfundidade); _global.cProfundidade++; thisMC._x = -thisMC._width; var escala = randRange(80, 100); thisMC._xescala = escala; thisMC._yescala = escala; thisMC._alpha = escala; thisMC.speed = xVelocidade+randRange(0, 3)+_global.nivel; thisMC._y = Math.round(Math.random()*350)+65; thisMC.onEnterFrame = function() { this._x += this.speed; this._y -= .4; if (this._x>larguraStage) { _global.erros++; updateStats(); this.removeMovieClip(); } }; thisMC.onPress = function() { _global.acertos++; if ((_global.acertos%40) == 0) { _global.nivel++; // Mudança de nível } updateStats(); this.gotoAndPlay("hit"); var ymov = this._y; var gravity = 50; this.onEnterFrame = function() { ymov += gravity; xmov *= 0.5; this._rotation += 5; this._x += xVelocidade; this._y = ymov; if (this._y>alturaStage) { this.removeMovieClip(); } }; delete this.onPress; }; }};function updateStats() { var precisao:Number = Math.round((_global.acertos/_global.cliques)*100); if (isNaN(precisao)) { precisao = 0; } estatisticas_txt.text = "Cliques: "+_global.cliques+" "+"Acertos: "+_global.acertos+" "+"Erros: "+_global.erros+" "+"Precisão: "+precisao+"%"+" "+"Nível: "+_global.nivel;}function randRange(minNum:Number, maxNum:Number):Number { return (Math.floor(Math.random()*(maxNum-minNum+1))+minNum);}
Tem mais umas coisinhas:
1: alguns logosx_mc (onde x é um número 1, 2 ou 3) aparecem para baixo do Stage, isso deixa o jogo bem tosco porque a maioria fica em baixo, como eu mudo isso, para os MC's não serem cirados para fora do stage??
2: como eu faço para se, os erros chegarem a 15, ir para o "Scene 2", 2?? Não estou conseguindo acertar essa condição.
3: como é essa fórmula para passar de nível?? Não entendi...
Acho que um dos erros está nessa parte do código:
/Quando o botão do mouse é clicado, verificar se o cursor está fora dos limites do Stage.Em caso positivo, incrementa o número de cliques dados/mouseListener.onMouseDown = function() { _global.cliques++; if (fundo_mc.hitTest(_xmouse, _ymouse, false)) { _global.acertos++; }};
Deveria aumentar os cliques, não os acertos, seu eu mudo isso, os acertos aumentam de 4 em 4^^
Me ajudem nesse jogo, porfavor.
Agradeço antecipadamente. Té mais.
PS: postei essa dúvida no fórum do MXStudio no dia 14/08, ninguém me ajudou...
Discussão (10)
Carregando comentários...