Comunidad de diseño web y desarrollo en internet online

Saltar aplicando leyes fisicas (videojuego)

Citar            
MensajeEscrito el 22 Feb 2011 08:45 pm
Buenas, no logro que en mi videojuego el personaje salte de manera correcta, he mirado tutoriales y no acabo de verlo claro, lo unico que quiero es que haga cuando se presione una tecla determinada, el personaje se desplaze hacia arriba (hasta cierta altura) y después baje a la posición inicial. (Por supuesto tiene que tener interactividad con las teclas de dirección izquierda y derecha pero eso es sencillo)

Muchas gracias por la ayuda

Locke

Por locke23

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Feb 2011 08:55 pm
Eso depende de cuan realista quieres que sea la física. Por ejemplo puedes usar composición de fuerzas sobre el eje x e y, o resolverla usando vectores ...

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Feb 2011 09:33 pm
Bueno mi intención solo es que cuando presiono la tecla de saltar se mueva hacia arriba y después hacia abajo, he mirado algún tutorial y utiliza variables como gravedad, aceleración, etc, pero no acabo de encontrarle la lógica. Probé haciendo que cuando llegara a una altura determinada iniciara el descenso pero sin ningún resultado, la verdad es que no entiendo que falla.

Por locke23

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Feb 2011 10:45 pm
Pues de ese tipo de tutoriales estoy hablando. Hacer una física veroscímil tiene esa dificultad, si sigue intentando con alguna animación

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Feb 2011 08:36 am
Bueno, ya sé que la finalidad del foro es que la gente aprenda, y que no debería postear el código, pero ya que me he liado y lo he escrito aquí te lo dejo.
Una forma sencilla de hacerlo es usando 2 variables, velocidad y aceleración:

Código ActionScript :

var velocidad:int   = 0;
var aceleracion:int   = 2;

var estaSaltando:Boolean = false;
var moviendoIzquierda:Boolea = false;
var moviendoDerecha:Boolean = false;

this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
this.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
this.stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);

function enterFrameHandler(event:Event):void
{
   if (moviendoIzquierda == true) personaje.x -= 8;
   if (moviendoDerecha == true) personaje.x += 8;
   
   personaje.y += velocidad;
   if (personaje.y < stage.stageHeight)
   {
      velocidad += aceleracion;
   }
   else
   {
      personaje.y = stage.stageHeight;
      velocidad = 0;
      estaSaltando = false;
   }
}

function keyDownHandler(event:KeyboardEvent):void
{
   if (event.keyCode == Keyboard.LEFT) moviendoIzquierda = true;
   if (event.keyCode == Keyboard.RIGHT) moviendoDerecha = true;
   
   if (estaSaltando == true) return;
   if (event.keyCode == Keyboard.UP)
   {
      velocidad = -20;
      estaSaltando = true;
   }
}

function keyUpHandler(event:KeyboardEvent):void
{
   if (event.keyCode == Keyboard.LEFT) moviendoIzquierda = false;
   if (event.keyCode == Keyboard.RIGHT) moviendoDerecha = false;
}

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox

 

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