Frage

Ich versuche, ein Jump'n'Run-Spiel zu schaffen und ich versuche, „player1“ Halt zu machen, wenn es eine „Plattform“ trifft. hier ist mein Code so weit,

    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;
   }
  }

jedoch die hitTestObject Funktion (enterframehandler) funktioniert nicht richtig und wird die „else“ Route immer nehmen.

Bitte um Hilfe!

War es hilfreich?

Lösung

Der Code als entsandte funktioniert gut für mich. Ich würde für eine andere Art von dummen Fehlern finden - zum Beispiel, wenn Sie Filmclips kopiert und eingefügt, können Sie mehr als einen Clip auf der Bühne namens „Plattform“ haben, wobei in diesem Fall Ihrer Referenz kann nicht aufgelöst werden, das die von Ihnen wollen. Oder etwas anderes in der Art.

es aufzuspüren, versuchen Aufruf:

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

, die Ihnen sagen, wo Blitz die Begrenzungskästen dieser Clips denkt sind. Meine Vermutung ist, dass der Code etwas zurück als das, was man erwarten würde, und dass die Diskrepanz Lösung wird zeigen, wo der Fehler ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top