所以到目前为止,我有一个小游戏,你可以在其中建造船只并试图摧毁敌方站。一切正常,除了不止一艘船在车站开火。似乎发生的事情(或者至少我相信)是设置子弹位置的代码发生的次数与船只的数量一样多。所以我尝试简单地将子弹的速度除以有多少艘船,但最终子弹停止移动。这是代码,因为它没有尝试任何修复。
for (int j = 0; j < 9999; j++) {
if (PlayerMapData.weaponFireCreated [j]) {
PlayerMapData.weaponFire [j].setLocation (
(int) (PlayerMapData.weaponFire [j].x + playerMapData.weaponTravelSpeed * PlayerMapData.weaponFireDirectionX [j]),
(int) (PlayerMapData.weaponFire [j].y + PlayerMapData.weaponTravelSpeed * PlayerMapData.weaponFireDirectionY [j])
);
命中检测发生在下面。setLocation 语句是问题还是我必须区分哪些子弹属于哪艘船?
编辑:应该指定这是在一个计时器中。