Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo De Tarso Junior

Problema! MovieClip ...

Recommended Posts

Galera é o seguinte ...

Eu estou criando um jogo, e nele existe um personagem guerreiro que possui varias habilidades, estas habilidades são acionadas atraves de combos;

Exemplo: O jogador aperta = "FRENTE,FRENTE,CIMA,ESPAÇO" ... e o personagem execulta um poder especial!

Logo encontrei duas barreiras no meu projeto ... o desconhecimento de duas tecnicas ...

1º: Como fazer em action script estes combos, ou seja como sincroniza-los para que acione o ataque apenas se o combo por feito corretamente.

2º: Como acionar atraves do gotoAndStop (ou outro codigo melhor) os movimentos, eles estão todos em movieclips dentro de UM MOVIECLIP, sendo que estes movieclips estão em frames diferentes;

 

Eu preparei uma imagem para vcs entenderem melhor ... mas não sei como postar aqui ... Ou seja ... TENHO MAIS UMA DUVIDA ! COMO postar imagens neste blog ! ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A traves do bbcode voce pode postar eu acho que voce pode gravar os movimentos num array e cada ves que o jogador apertar uma tecla grava no array se fiser parte de uma sequencia e tambem grava o tempo . Se nao zera o array

Compartilhar este post


Link para o post
Compartilhar em outros sites

A traves do bbcode voce pode postar eu acho que voce pode gravar os movimentos num array e cada ves que o jogador apertar uma tecla grava no array se fiser parte de uma sequencia e tambem grava o tempo . Se nao zera o array

 

Beleza ... mas como faz isso ? Tipo eu sou muito novo em programação ... Na verdade sou Design ... Estou fazendo o projeto sozinho por enquanto !

Se você puder me demonstrar, eu ficaria feliz !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficaria mais ou menos assim:

teclas:Array = new Array();

var myTimer:Timer = new Timer(1000, 2);

addEventListener(KeyboardEvent.KEY_UP, key);

myTimer.addEventListener(TimerEvent.TIMER, timerHandler); myTimer.start();

var tempo:Number = 0 ;

public function cronometro(event:TimerEvent):void { tempo = tempo +1; }

 

function key(e:KeyboardEvent){

 

swicth(e.keyCode){

case Keyboard.UP:

 

teclas[teclas.length] = [];

teclas[teclas.length -1]['tecla'] = 'UP';teclas[teclas.length -1]['tempo'] = tempo;

break;

case Keyboard.Down:

teclas[teclas.length] = [];

teclas[teclas.length -1]['tecla'] = 'UP';teclas[teclas.length -1]['tempo'] = tempo;

break;

case Keyboard.SPACE:

//aqui algoritmo que ve a sequencia de teclas apertadas

 

 

break;

 

}

 

}

 

Gravando o tempo você pode ver os intervalos de tempo e ver se foi rápido

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficaria mais ou menos assim:

teclas:Array = new Array();

var myTimer:Timer = new Timer(1000, 2);

addEventListener(KeyboardEvent.KEY_UP, key);

myTimer.addEventListener(TimerEvent.TIMER, timerHandler); myTimer.start();

var tempo:Number = 0 ;

public function cronometro(event:TimerEvent):void { tempo = tempo +1; }

 

function key(e:KeyboardEvent){

 

swicth(e.keyCode){

case Keyboard.UP:

 

teclas[teclas.length] = [];

teclas[teclas.length -1]['tecla'] = 'UP';teclas[teclas.length -1]['tempo'] = tempo;

break;

case Keyboard.Down:

teclas[teclas.length] = [];

teclas[teclas.length -1]['tecla'] = 'UP';teclas[teclas.length -1]['tempo'] = tempo;

break;

case Keyboard.SPACE:

//aqui algoritmo que ve a sequencia de teclas apertadas

 

 

break;

 

}

 

}

 

Gravando o tempo você pode ver os intervalos de tempo e ver se foi rápido

 

Perdoe-me mas; não consegui compreender ... se possivel quero lhe pedir uma favor ... coloque um exemplo pratico pra mim ... não precisa ter design ... Apenas Um exemplo em FLA; para que eu possa estuda-lo ... Mas uma vez peço desculpas pela noobisse ... mas e que sou DEsigner ... estou fazendo isso apenas por Diversão; Mas gostaria de fazer algo legal .. !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Num fla vazio colquei esse package

cmb.as

package{
import flash.events.TimerEvent;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.MovieClip;
import flash.utils.Timer;
public class cmb extends MovieClip{
	var tempo:Number = 1;
								   trace(32532);
								   var teclas:Array = new Array();
var myTimer:Timer = new Timer(1);
			 public function cmb(){
				 stage.addEventListener(KeyboardEvent.KEY_UP, key);
myTimer.addEventListener(TimerEvent.TIMER, cronometro); myTimer.start();
var tempo:Number = 0 ;
			 }
			 function cronometro(event:TimerEvent):void {

				 tempo = tempo +1; }

public function key(e:KeyboardEvent){
trace('key');
switch(e.keyCode){
case Keyboard.UP:

teclas[teclas.length] = [];
teclas[teclas.length -1]['tecla'] = 'UP';teclas[teclas.length -1]['tempo'] = tempo;
trace('up');
break;
case Keyboard.DOWN:
trace('down');
teclas[teclas.length] = [];
teclas[teclas.length -1]['tecla'] = 'DOWN';teclas[teclas.length -1]['tempo'] = tempo;
break;
case Keyboard.SPACE:

if(teclas[teclas.length-1]['tecla'] == "DOWN" ){
trace(1);
if(teclas[teclas.length-2]['tecla'] == "DOWN" ){
	trace(2);
if(teclas[teclas.length-3]['tecla'] == "UP" ){
trace(3 + "##-3:" + teclas[teclas.length-3]['tempo'] + "##-2:" + teclas[teclas.length-2]['tempo'] + "##-1:" + teclas[teclas.length-1]['tempo']);

if(teclas[teclas.length-2]['tempo'] - teclas[teclas.length-3]['tempo'] < 244){
	trace(teclas[teclas.length-2]['tempo'] - teclas[teclas.length-3]['tempo']);
	if(teclas[teclas.length-1]['tempo'] - teclas[teclas.length-2]['tempo'] < 244){
	if(tempo - teclas[teclas.length-1]['tempo'] < 200){
	trace('foi');

	}
}

}

}

}

}


break;

}

}






}
}

 

É bem simples, se você digitar rapidamente UP,DOWN,DOWN num intervalo menor que 244 milisegundos(0.244 segundos) e precionar espaço num intervalo menor que 200 milisegundos vai exibir o trace 'foi'

 

Lembrando que nesse script os "COMBOS" sempre terminam com espaço, ai nesse script grava as sequencias de UP e DOWN, e o seu tempo no cronometro, e quando se aperta espaço verifica as ultimas teclas e o seu espaço no tempo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.