0

我尝试使用 FTP FlxWeapon 制作一些子弹(实际上是剑/匕首),但得到了一些意想不到的结果。这就是我设置 FlxWeapon 的方式:

    sword = new BasicSword("Sword", player, "x", "y");
            sword.makeImageBullet(15, BasicSword.SWORD_GIF,5);
            sword.setBulletDirection(FlxWeapon.BULLET_RIGHT, 400);  
            sword.setPreFireCallback(bulletDirectionCallback);
    //load FlxControl

        if(FlxG.getPlugin(FlxControl) == null){
            FlxG.addPlugin(new FlxControl);
        }
        FlxControl.player1.setFireButton("X", FlxControlHandler.KEYMODE_PRESSED, 100, sword.fire);

        }
/*A callback function, to set a proper direction before we fire the sword*/
        public function bulletDirectionCallback():void{

            if(player.facing == FlxObject.RIGHT){
                sword.setBulletDirection(0, 400); //make the bullet move to the right side with velocity of 400.
            }
            else{ //if player is facing the left direction.
                sword.setBulletDirection(180, 400); //make the bullet move to the left side with the velocity of 400.

            }

        }

重要说明:
BasicSword.as 扩展了 Sword.as 和 Sword.as 扩展了 FlxWeapon。
BasicSword 和 Sword 中没有什么重要的,实际上 Sword 只有构造器,而 BasicSword 只有 SWORD_GIF。
- 我认为有效的方法:

1-回调函数。
2-一些方法和变量,例如:setFireRate() 和 bulletsFired。
3-开火按钮(FlxControl.player1.setFireButton)。

-什么不工作:
1 - 剑没有出现。

4

1 回答 1

0

我通过FlxG.worldBounds.make(0,0,level.width, level.height);在关卡本身加载后放置此代码解决了我的错误,因为早些时候(当我遇到错误时)我在创建关卡对象之后放置了此代码,但在加载它之前。所以 and 的值level.widthlevel.height0 和 0。

于 2012-05-17T21:49:37.167 回答