Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Buenas!
Preciso de ajuda em relação a um pause global para um jogo de tiro ao alvo que estou fazendo.
obs: vai caindo uma bolinhas e com o mouse tem que acertar nelas, bem básico.
Para quando chegasse no nível final ou tantos erros, parasse toda timeline e aparece uma mensagem que você perdeu e após, uma nova mensagem do tipo: jogar novamente ou sair.
Ai quando terminado o jogo, aparecer uma telinha com nome e twitter da pessoa para enviar por e-mail.
Nesse e-mail irá conter a estatística do jogo.
Desde já agradeço a todos que ajudarem.
Ai segue as actions
stop();
/* -
Animação Programada
Este exemplo mostra como criar, posicionar, animar, testar acerto da figura com o mouse e deletar MCs
*/
//var numeros;
//var tempo;
//numeros = 10;
//function conta(){
//numeros = numeros - 1;
//txt.text = numeros;
//if (numeros <= 0){
//clearInterval(tempo);
//txt.text = "tempo acabado";
//}
//}
//txt.text = numeros;
//stop();
//tempo = setInterval(conta, 950);
//_global.frameAtual = 0;
//frameAtual.stop();
// Definição das variáveis que serão usadas para estatísticas
_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;// Cria Listener para o Mouse
var mouseListener:Object = new Object();
/ Sempre que o cursor do mouse mover-se para fora do arquivo SWF, a posição será atualizada na instância do alvo_mc no Stage. /
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++;
}
};
var mostra1:TextFormat = new TextFormat();
mostra1.bold = false;
mostra1.font = "Helvetica-Narrow";
mostra1.size = 20;
mostra1.color = 0xffffff;
var mostra2:TextFormat = new TextFormat();
mostra2.bold = false;
mostra2.font = "Helvetica-Narrow";
mostra2.size = 20;
mostra2.color = 0xffffff;
var mostra3:TextFormat = new TextFormat();
mostra3.bold = false;
mostra3.font = "Helvetica-Narrow";
mostra3.size = 20;
mostra3.color = 0xffffff;
var mostra4:TextFormat = new TextFormat();
mostra4.bold = false;
mostra4.font = "Helvetica-Narrow";
mostra4.size = 20;
mostra4.color = 0xffffff;
var mostra5:TextFormat = new TextFormat();
mostra5.bold = false;
mostra5.font = "Helvetica-Narrow";
mostra5.size = 20;
mostra5.color = 0xffffff;
Mouse.addListener(mouseListener);var meu_textoFormatado:TextFormat = new TextFormat();
meu_textoFormatado.bold = false;
meu_textoFormatado.font = "Helvetica-Narrow";
meu_textoFormatado.size = 20;
meu_textoFormatado.color = 0xffffff;
Mouse.addListener(mouseListener);var meu_textoFormatado:TextFormat = new TextFormat();
meu_textoFormatado1.bold = false;
meu_textoFormatado1.font = "Helvetica-Narrow";
meu_textoFormatado1.size = 20;
meu_textoFormatado1.color = 0xffffff;
Mouse.addListener(mouseListener);var meu_textoFormatado:TextFormat = new TextFormat();
meu_textoFormatado2.bold = false;
meu_textoFormatado2.font = "Helvetica-Narrow";
meu_textoFormatado2.size = 20;
meu_textoFormatado2.color = 0xffffff;
Mouse.addListener(mouseListener);var meu_textoFormatado:TextFormat = new TextFormat();
meu_textoFormatado3.bold = false;
meu_textoFormatado3.font = "Helvetica-Narrow";
meu_textoFormatado3.size = 20;
meu_textoFormatado3.color = 0xffffff;
Mouse.addListener(mouseListener);var meu_textoFormatado:TextFormat = new TextFormat();
meu_textoFormatado4.bold = false;
meu_textoFormatado4.font = "Helvetica-Narrow";
meu_textoFormatado4.size = 50;
meu_textoFormatado4.color = 0xffffff;
// Cria um campo texto para mostrar as estatísticas do jogador.
this.createTextField("estatisticas_txt", 5000, 280, 525, 700, 75);
// Aplica o TextFormat no campo texto.
estatisticas_txt.setNewTextFormat(meu_textoFormatado);
estatisticas_txt.selectable = false;
updateStats();
// Cria um campo texto para mostrar as estatísticas do jogador.
this.createTextField("estatisticas_txt1", 5000, 280, 550, 700, 75);
// Aplica o TextFormat no campo texto.
estatisticas_txt1.setNewTextFormat(meu_textoFormatado1);
estatisticas_txt1.selectable = false;
updateStats();
// Cria um campo texto para mostrar as estatísticas do jogador.
this.createTextField("estatisticas_txt2", 5000, 350, 400, 700, 75);
// Aplica o TextFormat no campo texto.
estatisticas_txt2.setNewTextFormat(meu_textoFormatado2);
estatisticas_txt2.selectable = false;
updateStats();
// Cria um campo texto para mostrar as estatísticas do jogador.
this.createTextField("estatisticas_txt3", 5000, 280, 600, 700, 75);
// Aplica o TextFormat no campo texto.
estatisticas_txt3.setNewTextFormat(meu_textoFormatado3);
estatisticas_txt3.selectable = false;
updateStats();
// Cria um campo texto para mostrar as estatísticas do jogador.
//this.createTextField("estatisticas_txt4", 5000, 280, 500, 700, 75);
// Aplica o TextFormat no campo texto.
//estatisticas_txt4.setNewTextFormat(meu_textoFormatado4);
//estatisticas_txt4.selectable = false;
//updateStats();
// Inclui um evento onEnterFrame na timeline principal para que um novo logo seja constantemente gerado no jogo.
this.onEnterFrame = function() {
// Inclui aleatoriamente um novo logo
if (randRange(0, 20) == 0) {
// anexa uma nova instância do logo da Library no Stage e define uma profundidade única
var randomLogo:Number = randRange(1, 6);
// Observe que o nome do MC a seguir é obtido pelo Flash através do Identifier do Linkage
var thisMC:MovieClip = this.attachMovie("logo"+randomLogo+"_mc", "logoAlvo"+_global.cProfundidade+"_mc", _global.cProfundidade);
_global.cProfundidade++;
// Configura a posição inicial do logoAlvo_mc à esquerda do Stage
thisMC._x = -thisMC._width;
/* Cria um número aleatório entre 80 e 100.
Será usado para o tamanho (escala) do MC atual, alpha e velocidade
que se moverá pelo Stage. */
var escala = randRange(80, 250);
/* Configura as propriedades do _xescala e _yescala no MC atual.*/
thisMC._xescala = escala;
thisMC._yescala = escala;
thisMC._alpha = escala;
thisMC.speed = xVelocidade+randRange(0, 3)+_global.nivel;
//if (_global.nivel == 1){
//trace("nível 2");
//mcnivel.gotoAndPlay(2);
//stop();
//}
/* Configura um valor aleatório para _x.
Agora, ao invés de todos os logos voarem sobre o mesmo caminho,
eles variam sua posição vertical levemente. 500 e 100 */
thisMC._x = Math.round(Math.random()*400)+350;
/* Cria um manipulador onEnterFrame que executam algumas dúzias de vezes por segundo */
thisMC.onEnterFrame = function() {
/* Move o logo horizontalmente ao longo do Stage.
No momento todos os logos movem-se da esquerda para a direita */
this._y += this.speed;
/* Decrementa levemente a posição do _y no MC atual.
Isto faz com que pareça que os logos estejam voando
levemente mais alto do que movem-se no Stage.*/
this._x -= .4;
/* Se a posição atual do logo é maior do que o Stage,
conta o logo como "perdido" e apaga sua instância. */
if (this._y>alturaStage) {
_global.erros++;
updateStats();
this.removeMovieClip();
}
};
// Quando o logo é pressionado, contar como um "acerto"
thisMC.onPress = function() {
// Atualizar as estatísticas do jogador
_global.acertos++;
if (_global.acertos == 25){
mcniveljogador.gotoAndPlay("2"); }
mcniveljogador.txtniveljogador.text = "Nível Inciante";
if (_global.acertos == 50){
mcniveljogador.gotoAndPlay("95"); }
mcniveljogador.txtniveljogador1.text = "Nível Médio";
if ((_global.acertos%40) == 0) {
_global.nivel++;
// Mudança de nível
mcnivel.gotoAndPlay(2);
//this.gotoAndPlay("nivelacima");
}
updateStats();
/* vai para o rótulo do MC chamado "hit"
(que permite você mostrar uma animação engenhosa quando a
instância é atingida.) */
this.gotoAndPlay("hit");
/* Configura algumas variáveis locais que você usará para
animar o logo caindo pelo Stage. */
var xmov = this._x;
var gravity = 20;
// Cria um evento onEnterFrame para a instância do MC atual.
this.onEnterFrame = function() {
xmov += gravity;
ymov *= 0.5;
/* incrementa a rotação do MC atual no sentido horário
em 5 graus. */
this._rotation += 1;
/* Configura as propriedades _x e _y do MC no Stage,
isto permite-nos fazer com que a queda
seja mais realista */
this._y += xVelocidade;
this._x = ymov;
/* Após anular a posição _y position no Stage,
remova o MC para que suas coordenadas não sejam
continuamente calculadas */
if (this._x>alturaStage) {
this.removeMovieClip();
}
};
/* Apagar o manipulador de evento onPress.
Isto faz com que o logo não possa ser continuamente clicado
enquanto ele está caindo pelo Stage. */
delete this.onPress;
};
}
};
// Função que atualiza as estatísticas no Stage
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;
//estatisticas_txt.text = "Cliques: "+_global.cliques+"";
mcestatisticas.txtcliques.text = _global.cliques;
mcestatisticas.txtacertos.text = _global.acertos;
mcestatisticas.txterros.text = _global.erros;
mcestatisticas.txtprecisao.text = precisao+"%";
mcestatisticas.txtnivel.text = _global.nivel;
//estatisticas_txt3.text = "Acertos: "+_global.acertos+"";
//estatisticas_txt2.text = "Erros: "+_global.erros+"";
//estatisticas_txt4.text = "Precisão: "+precisao+"%";
//estatisticas_txt4.text = "Nível: "+_global.nivel+"";
}
/* Função que retorna um inteiro aleatório entre dois números especificados.
Isto permite que você inclua algumas diferenças sutis de tamanho e
velocidade para o MC no Stage.*/
function randRange(minNum:Number, maxNum:Number):Number {
return (Math.floor(Math.random()*(maxNum-minNum+1))+minNum);
}Carregando comentários...