Comunidad de diseño web y desarrollo en internet online

Asteroids. Rotación y traslación de nave

Citar            
MensajeEscrito el 25 Feb 2010 07:00 am
Estoy intentando hacer un movimiento de un MovieClip (nave_mc). Quiero que avance en la dirección en que esté girada (rotada).
Alguién me puede ayudar?


Código ActionScript :

var velocidad:Number;
var velocidadRotacion:int;

stage.addEventListener(KeyboardEvent.KEY_DOWN, control);
stage.addEventListener(KeyboardEvent.KEY_UP, para);


function control(e:KeyboardEvent):void {
if (e.keyCode==Keyboard.RIGHT) {
velocidadRotacion=2;
addEventListener(Event.ENTER_FRAME, rota);
}
if (e.keyCode==Keyboard.LEFT) {
velocidadRotacion=-2;
addEventListener(Event.ENTER_FRAME, rota);
}

if (e.keyCode==Keyboard.UP) {
velocidad+=2;
addEventListener(Event.ENTER_FRAME, avanza);
}

}

function avanza (e:KeyboardEvent):void {

/*********** ESTO NO SE HACERLO**********/

}

function rota(e:Event):void {
nave_mc.rotation+=velocidadRotacion;
}

function para(e:KeyboardEvent):void {

removeEventListener(Event.ENTER_FRAME, rota);
}


Se que es con el Math.sin() y que hay que convertir los radianes, pero no consigo sacarlo.
Ayudame Obi Wan, eres mi única esperanza.

Por La Criatura

3 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 25 Feb 2010 09:07 am
Lo que buscas es:

Código ActionScript :

var radianes:Number = nave_mc.rotation * Math.PI / 180;
nave_mc.x += velocidad * Math.cos(radianes);
nave_mc.y += velocidad * Math.sin(radianes);

PD: Procura usar sólamente un enterframe, en lugar de crear uno diferente cada vez que pulsas una tecla.

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Feb 2010 09:45 pm
Gracias Isidoro

Por La Criatura

3 de clabLevel



 

Madrid

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.