2012-05-05 6 views
0

新しいプロジェクトにFlixel Power Toolsを使用しています。具体的にはFlxControlを使用しています。
FlxControl.player1.setJumpButton()を使用してジャンプボタンを設定しようとしましたが、動作しません。FlxControl.player1.setJumpButtonが期待どおりに動作しない

player = new FlxSprite(FlxG.width/2 - 5); 
      player.makeGraphic(10,12,0xffaa1111); 
      add(player); 
      if (FlxG.getPlugin(FlxControl) == null) 
      { 
       FlxG.addPlugin(new FlxControl); 
      } 

      FlxControl.create(player, FlxControlHandler.MOVEMENT_ACCELERATES, FlxControlHandler.STOPPING_DECELERATES, 1, true, false); 

      FlxControl.player1.setCursorControl(false, false, true, true); 

      FlxControl.player1.setJumpButton("SPACE", FlxControlHandler.KEYMODE_PRESSED, 200, FlxObject.FLOOR, 250, 200); 

      FlxControl.player1.setBounds(16, 0, 288, 240); 

      FlxControl.player1.setMovementSpeed(400, 0, 100, 200, 400, 0); 

      FlxControl.player1.setGravity(0, 400); 

注:私はこのようにそれを使用してみました
予想通り、矢印キー(右&を左)が働いています。
編集:github.comで
全PlayState.asコード:あなたが投稿Github PlayState.as code

答えて

1

問題は、あなたのupdate()機能です。

override public function update():void 
{ 
    super.update(); 
    FlxG.collide(player, level); 
} 
+0

ok..Iカントは本当にを説明し、全体PlayState.as、検索、デバッグの2日間で編集:super.update()FlxG.collide()前にコールする必要がありますか?実際には、私がフリクセルについて学んだ最初のことです、ありがとう! – Abdulaziz

+0

super.update()は、追加されたすべてのオブジェクトに対してupdate()を呼び出します。 (あなたのプレーヤーを含む)。また、拡張されたFlxObjectとして、プレーヤーオブジェクトは.postUpdate()を呼び出します。 →「タッチする」を「なし」に設定する。 「衝突」の中でプレイヤーは地面に接触している旗を手に入れます(これによりジャンプすることができます)。しかしすぐにsuper.updateを呼び出し、そのタッチフラグを再びnoneにリセットします。 – Scrittl

0

コードは正常に見えます。私の推測では、あなたが飛び降りしようとしているプラ​​ットフォームに問題があるということです。確かに私はあなたのプラットフォームを作成するコードを見なければならないことを知るために。

FlxControlには、フロアタイプのFlxObjectに触れるときにだけジャンプさせるように指示しました。プレイヤーは、allowCollisionsがFLOORまたはANYのいずれかに設定されているオブジェクトに立っていますか?

関連文書( "表面" パラメータを参照してください):

/** 
    * Enable a jump button 
    * 
    * @param key    The key to use as the jump button (String from org.flixel.system.input.Keyboard, i.e. "SPACE", "CONTROL") 
    * @param keymode   The FlxControlHandler KEYMODE value (KEYMODE_PRESSED, KEYMODE_JUST_DOWN, KEYMODE_RELEASED) 
    * @param height   The height in pixels/sec that the Sprite will attempt to jump (gravity and acceleration can influence this actual height obtained) 
    * @param surface   A bitwise combination of all valid surfaces the Sprite can jump off (from FlxObject, such as FlxObject.FLOOR) 
    * @param repeatDelay  Time delay in ms between which the jumping can repeat (250 would be 4 times per second) 
    * @param jumpFromFall A time in ms that allows the Sprite to still jump even if it's just fallen off a platform, if still within ths time limit 
    * @param callback  A user defined function to call when the Sprite jumps 
    * @param altKey   Specify an alternative jump key that works AS WELL AS the primary jump key (TODO) 
    */ 
    public function setJumpButton(key:String, keymode:uint, height:int, surface:int, repeatDelay:uint = 250, jumpFromFall:int = 0, callback:Function = null, altKey:String = ""):void 
+0

は、私はちょうどこのために求めて、 – Abdulaziz

関連する問題