Pregunta

Estoy tratando de crear un juego de plataformas y yo estoy tratando de hacer parada "player1" cuando golpea una "plataforma". aquí es mi código hasta ahora,

    gotoAndStop("gameStart");

import flash.display.MovieClip;
import flash.events.*;
import flash.ui.Keyboard;
import flash.ui.*;


import flash.utils.Timer;
import flash.events.TimerEvent;

player1.gotoAndStop("nothing");


 //private var speed:Number = 0;
 //private var maxspeed:Number = 4;

var myTimer:Timer = new Timer(10,0);


stage.focus = this;


player1.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
/*
myTimer.addEventListener(TimerEvent.TIMER,someFunction);



myTimer.start();

function someFunction(event:TimerEvent) {
 player1.y += 2;


}
*/

function setup() {
 stage.addEventListener(KeyboardEvent.KEY_DOWN, reactToArrowKeys);
}
setup();


function reactToArrowKeys(keyEvent:KeyboardEvent) {

 if (keyEvent.keyCode == 37) {

  if (player1.x > 0) {
   player1.x -= 5;
  }

 } else if (keyEvent.keyCode == 39) {

  if (player1.x < 700) {
   player1.x += 5;
  }

 }


}


function enterFrameHandler(e:Event):void {
   if (player1.hitTestObject(platform)) {
    trace("hitting");
   } else {
    player1.y += 4;
   }
  }

Sin embargo, la función hitTestObject (enterFrameHandler) no funciona correctamente y siempre tomar la ruta "más".

por favor ayuda!

¿Fue útil?

Solución

El código tal como fue anunciado que funciona bien para mí. Me gustaría buscar algún otro tipo de error tonto - por ejemplo, si ha copiado y pegado de clips de película, es posible que tenga más de un clip en el escenario llamado "plataforma", en cuyo caso su referencia no puede resolver a la que usted intentar. O alguna otra cosa por el estilo.

Para seguir hacia abajo, intente llamar a:

trace( player1.getBounds(stage) );
trace( platform.getBounds(stage) );

que le dirá donde flash piensa que los cuadros delimitadores de los clips son. Mi conjetura es que el código volverá algo distinto de lo que se espera, y la resolución de la discrepancia mostrará donde el error es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top