1) player_mc
2) obstaculo_mc
El codigo consiste en que yo puedo desplazar a player_mc con las flechas del teclado por todo el stage, sin embargo no puedo pasar por encima del obstaculo_mc ("obvio"), la cuestion es que al hacer contacto con el obstaculo_mc, el MC player_mc se detiene, pero si quiero salir moverlo para otro lado, el player_mc ya no se mueve......
Este es el codigo que estoy utilizando......
Código :
import flash.events.Event;
var keyPressed:uint;
var rightKeyIsDown:Boolean;
var leftKeyIsDown:Boolean;
var downKeyIsDown:Boolean;
var upKeyIsDown:Boolean;
var Velocidad:Number=5;
function IniciaJuego():void {
rightKeyIsDown=false;
leftKeyIsDown=false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, pressKey);
stage.addEventListener(KeyboardEvent.KEY_UP, releaseKey);
}
function pressKey(event:KeyboardEvent):void {
keyPressed=event.keyCode;
if (keyPressed==Keyboard.RIGHT) {
rightKeyIsDown=true;
}
if (keyPressed==Keyboard.LEFT) {
leftKeyIsDown=true;
}
if (keyPressed==Keyboard.DOWN) {
downKeyIsDown=true;
}
if (keyPressed==Keyboard.UP) {
upKeyIsDown=true;
}
player_mc.addEventListener(Event.ENTER_FRAME, movePlayer);
}
function releaseKey(event:KeyboardEvent):void {
var thisKey:uint=event.keyCode;
if (thisKey==Keyboard.RIGHT) {
rightKeyIsDown=false;
}
if (thisKey==Keyboard.LEFT) {
leftKeyIsDown=false;
}
if (thisKey==Keyboard.DOWN) {
downKeyIsDown=false;
}
if (thisKey==Keyboard.UP) {
upKeyIsDown=false;
}
}
function movePlayer(event:Event):void {
var Varstatus:Boolean;
Varstatus=player_mc.hitTestObject(obstaculo_mc);
if (rightKeyIsDown&&Varstatus==false) {
player_mc.x+=Velocidad;
}
if (leftKeyIsDown&&Varstatus==false) {
player_mc.x-=Velocidad;
}
if (downKeyIsDown&&Varstatus==false) {
player_mc.y+=Velocidad;
}
if (upKeyIsDown&&Varstatus==false) {
player_mc.y-=Velocidad;
}
}
IniciaJuego();La pregunta seria, como hago para que el player_mc, al hacer colision con el obstaculo_mc, lo pueda mover para pasar por un lado de este.........
Muchas gracias son muy importantes sus ayudas........
