0

私は新しいプロジェクトにFlixelPowerToolsを使用しています。具体的には、を使用してFlxControlいます。
を使用してジャンプボタンを設定しようとしました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コード:GithubPlayState.asコード

4

2 に答える 2

1

問題はあなたのupdate()機能にあります。super.update()あなたは前に電話する必要がありますFlxG.collide()

override public function update():void
{
    super.update();
    FlxG.collide(player, level);
}
于 2012-05-05T19:30:51.437 に答える
0

投稿したコードは問題ないようです。私の推測では、問題はあなたが飛び降りようとしているプラ​​ットフォームにあると思います。確実に知るためには、プラットフォームを作成するコードを確認する必要があります。

FlxControlに、FLOORタイプの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
于 2012-05-05T14:41:02.160 に答える