Ir para conteúdo

POWERED BY:

Arquivado

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

Wagner Mello

[Resolvido] Fazendo a bolinha kikar

Recommended Posts

Ola galera comecei a estudar As3 por conta prorpia e estou tentando fazer a bolinha detecta os limite do palco e volta fazendo uma sequencia só que isso nao esta acontecendo alguem sabe o porque?

 

var xspeed = 10;
var yspeed = 10;
function anda(evt:Event):void{
this.x += xspeed;
this.y += yspeed;
}
function detecta(d:Event):void{
    if(this.bola.x <= 0 || this.bola.x >= 500) {
        this.x -= xspeed; 
        this.y -= yspeed;
        }if(this.bola.y <= 0 || this.bola.y >= 350) {
        this.x += xspeed;
        this.y += yspeed;
    }
    }
stage.addEventListener(Event.ENTER_FRAME,anda);
stage.addEventListener(Event.ENTER_FRAME,detecta);

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho... o problema é a lógica, que no caso... passou longe...

 

primeiro você não precisa chamar duas funções para o mesmo evento... mas ok, isso n influencia na animação (mas tome cuidado com isso)...

 

aí... quando o mc sai do palco... você incrementa e decrementa o x e o y dele ao mesmo tempo http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

a ideia é você mudar a direção do movimento, modificando o sinal da velocidade.

 

não sei onde você está colocando o codigo (até por que apareceu um 'bola' ali no meio na comparação), mas se for dentro do MovieClip que está animando, tenta algo assim:

 

var xspeed = 10;
var yspeed = 10;

function anda(evt:Event):void{
	if(this.x <= 0 || this.x >= 500) xspeed = -xspeed;
	if(this.y <= 0 || this.y >= 350) yspeed = -yspeed; 
	
	this.x += xspeed;
	this.y += yspeed;
}

stage.addEventListener(Event.ENTER_FRAME,anda);

ainda há o que melhorar, mas se for dentro do MC já vai funcionar.

 

boa sorte nos estudos =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa veio acho que entendi, o erro acontecia porque estava fazendo este código no palco principal e no MC bola, coloquei no MC bola e funcionou normalmente, já quando eu coloco no palco principal a bola ficava tremendo que nem doida.

 

O erro tambem era porque tava no palco principal?

 

Abraços e muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma outra dúvida eu criei a barra movimentar para esquerda e direita, só que o erro que acontece é que vai certinho para a esquerda e para ao desapertar o botão, mas quando eu pressiono pra direita ele vai direto até o fim do palco sem parar ou sejá nao obedece corretamente o comando press up e press down.

var pressLeft:Boolean = new Boolean(false);
var pressRight:Boolean = new Boolean(false);
function pressButtonDown(event:KeyboardEvent):void{
switch(event.keyCode){
	case 37: //Esquerda
	pressLeft= true;
	break;
	case 39: // Direita
	pressRight = true;
	break;
	}
	}
stage.addEventListener(KeyboardEvent.KEY_DOWN,pressButtonDown);
function pressButtonUp(event:KeyboardEvent):void{
switch(event.keyCode){
	case 37: //Esquerda
	pressLeft = false;
	break;
	case 38 : // Direita
	pressRight = false;
	break;
	}
	}
stage.addEventListener(KeyboardEvent.KEY_UP,pressButtonUp);
function anda1(e:Event):void{
	if(pressLeft){
		if(this.barra.x > 0){
		this.barra.x -=5;
		}}
		if(pressRight){
			if(this.barra.x < 300){
		this.barra.x +=5;
		}
		}
	}
stage.addEventListener(Event.ENTER_FRAME,anda1);

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma dica: Cria outro tópico para sua outra dúvida. Fica mais organizado, e mais fácil de obter resposta (as vezes a pessoa não entra em um tópico que já leu)

 

=)

 

Quanto ao seu post anterior... como disse tinha um erro gigante de lógica. Sobre a localização do código, pra quem está iniciando, eu acho bom sempre colocar o código na timeline principal. Nunca dentro de movieclips. Só falei no seu caso, pois seu código estava escrito dessa forma.

 

[]'s

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.