Comunidad de diseño web y desarrollo en internet online

Error al pasar codigo de teclado a botónes.

Citar            
MensajeEscrito el 28 Feb 2014 04:15 pm
Hola a todos.

Soy nuevo en el foro y en esto de la programación en actiónScript 3. Escribo esto para ver si alguien me puede echar una mano.
El tema es que estoy haciendo un jueguecillo para movíl para ir practicando y me he quedado atascado.
He pasado el codigo del manejo del personaje con el teclado a botones movieclip. Pero por alguna razón no cosigo la combinaciones que se pueden hacer con el teclado ( correr de izquierda y derecha con la tecla pulsada y saltar al mismo tiempo pulsando la tecla de saltar) con los botones. Funciona bien, pero cuando tengo el "botón movieclip" de correr para izquierda o derecha el del salto no funciona y el mismo pasa con el de izquierda o derecha. Para que el botón haga su función no puedo pulsar ningún otro. El caso es que con el teclado se puede hacer sin ningún problema y es eso lo que no puedo conseguir.

¿Se puede hacer esto con botones?. ¿Se pueden combinar lo botones como las teclas?.
Gracias.

Con teclado:



var rightKeylsDown:Boolean = false;
var leftKeylsDown:Boolean = false;
var upKeylsDown:Boolean = false;
var downKeylsDown:Boolean = false;
var gravity:Number = 1;
var yVelocity:Number = 0;
var topp:Boolean = false;

stage.addEventListener(KeyboardEvent.KEY_DOWN,pulsatecla);
stage.addEventListener(KeyboardEvent.KEY_UP,sintecla);

function pulsatecla(event:KeyboardEvent):void
{
if(event.keyCode==Keyboard.RIGHT)
{
rightKeylsDown = true;
}
if(event.keyCode==Keyboard.LEFT)
{
leftKeylsDown = true;
}
if(event.keyCode==Keyboard.UP)
{
upKeylsDown = true;
}
if(event.keyCode==Keyboard.DOWN)
{
downKeylsDown = true;
}
}
function sintecla(event:KeyboardEvent):void
{
if(event.keyCode==Keyboard.RIGHT)
{
rightKeylsDown = false;
}
if(event.keyCode==Keyboard.LEFT)
{
leftKeylsDown = false;
}
if(event.keyCode==Keyboard.UP)
{
upKeylsDown = false;
}
if(event.keyCode==Keyboard.DOWN)
{
downKeylsDown = false;
}
}
jugador_mc.addEventListener(Event.ENTER_FRAME,movejugador);

function movejugador(event:Event):void
{
if(rightKeylsDown)
{
jugador_mc.x+=5;
}
if(leftKeylsDown)
{
jugador_mc.x-=5;
}
if(upKeylsDown && topp)
{
yVelocity =-15;
topp =false;
}

yVelocity += gravity;

if (!suelo_mc.hitTestPoint(jugador_mc.x,jugador_mc.y,true))
{
jugador_mc.y+=yVelocity;
}
if(yVelocity >20)
{
yVelocity =20;
}
for (var i:int=0;i<10;i++)
{
if (suelo_mc.hitTestPoint(jugador_mc.x,jugador_mc.y,true))
{
jugador_mc.y--;
yVelocity =0;
topp =true;
}
}
}
Con botones:

var rightKeylsDown:Boolean = false;
var leftKeylsDown:Boolean = false;
var upKeylsDown:Boolean = false;
var downKeylsDown:Boolean = false;
var gravity:Number = 1;
var yVelocity:Number = 0;
var topp:Boolean = false;

stage.addEventListener(MouseEvent.MOUSE_DOWN,pulsatecla);
stage.addEventListener(MouseEvent.MOUSE_UP,sintecla);

function pulsatecla(event:MouseEvent):void
{
if(event.target==der_mc)
{
rightKeylsDown = true;
}
if(event.target==izq_mc)
{
leftKeylsDown = true;
}
if(event.target==salto_mc)
{
upKeylsDown = true;

}
}
function sintecla(event:MouseEvent):void
{
if(event.target==der_mc)
{
rightKeylsDown = false;
}
if(event.target==izq_mc)
{
leftKeylsDown = false;
}
if(event.target==salto_mc)
{
upKeylsDown = false;
}
}
jugador_mc.addEventListener(Event.ENTER_FRAME,movejugador);

function movejugador(event:Event):void
{
if(rightKeylsDown)
{
jugador_mc.x+=5;
}
if(leftKeylsDown)
{
jugador_mc.x-=5;
}
if(upKeylsDown && topp)
{
yVelocity =-15;
topp =false;
}

yVelocity += gravity;

if (!suelo_mc.hitTestPoint(jugador_mc.x,jugador_mc.y,true))
{
jugador_mc.y+=yVelocity;
}
if(yVelocity >20)
{
yVelocity =20;
}
for (var i:int=0;i<10;i++)
{
if (suelo_mc.hitTestPoint(jugador_mc.x,jugador_mc.y,true))
{
jugador_mc.y--;
yVelocity =0;
topp =true;
}
}
}

Por juannn

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2014 10:17 pm
Solucionado!!!!!

Por juannn

1 de clabLevel



 

firefox

 

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