Question

Je suis en train de créer un jeu de plate-forme et je suis en train de faire arrêter « de player1 » quand il frappe une « plate-forme ». voici mon code jusqu'à présent,

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

mais ne fonctionne pas correctement la fonction hitTestObject (enterFrameHandler) et toujours prendre le « autre » route.

S'il vous plaît aider!

Était-ce utile?

La solution

Le code comme affiché fonctionne très bien pour moi. Je chercher un autre type d'erreur stupide - par exemple, si vous avez copié et collé des clips vidéo, vous pourriez avoir plus d'un clip sur la scène appelée « plate-forme », dans ce cas, votre référence ne peut résoudre à celui que vous l'intention. Ou quelque chose d'autre le long de ces lignes.

Pour le suivre vers le bas, essayez d'appeler:

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

qui vous dira où le flash pense que les boîtes englobantes de ces clips sont. Je suppose que le code renvoie autre chose que ce que vous attendez, et résoudre cette divergence montrera le bug.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top