【发布时间】:2012-03-02 18:20:48
【问题描述】:
我正在开发一个横向滚动条,该滚动条的角色每次按下空格键时都会发射子弹,我遇到的问题是将子弹朝角色面对的方向(左或右)移动。
我有一些布尔变量来告诉我我的角色面对的方向:walkingRight | walkLeft,所以如果我的walkingRight == true,我希望子弹移动+=10,而walkingLeft == true,bullet -= 10。
问题是,当我向左开火时,子弹向左移动,但当我向右转时,同样的子弹开始向右移动。
这是一个 AS3 代码的 sn-p(每帧):
if(gamepad.fire2.isPressed){
// initiate bullet
var bullet = new Bullet();
bullet.x = _player.x;
bullet.y = _player.y;
/*_boundaries.*/addChild(bullet);
bullets.push(bullet);
}
for each(var bullet in bullets){
if(walkingRight || idleRight || jumpingRight){
bullet.x += 10;
trace("Bullet - Moving Right");
}
else if(walkingLeft || idleLeft || jumpingLeft){
bullet.x -= 10;
trace("Bullet - Moving Left");
}
}
作为一个大学项目,我肯定会感谢任何帮助。
谢谢
【问题讨论】:
-
创建子弹后,您应该单独存储每个子弹的方向,独立于有关您的主角的任何信息,无论是在自定义“myBulletClass.direction”类或向量/数组中。跨度>
标签: flash move direction bullet