2

我正在用java开发一个Android游戏,我将有一个跟随用户手指的精灵,并且应该每秒发射一次子弹。换句话说,我正在尝试附加一个每秒向上移动的位图。位图从主角精灵的 x 和 y 坐标开始。我不能让它一次吸引超过一枚导弹,而且我已经没有办法做到这一点了。我已经尝试了很多东西,我真的可以使用一些帮助。

顺便说一句,我的主游戏面板类扩展了一个surfaceView并实现了一个SurfaceHolder.Callback:

public class MainGamePanel extends SurfaceView implements SurfaceHolder.Callback{

谢谢!

4

1 回答 1

3

据我了解,您希望能够一次发射超过 1 颗子弹?您可以使用向量或数组来执行此操作。使用 Array,您可以设置默认的可见子弹数量,在 Vector 中,您可以拥有手指能够产生的子弹子弹。

这是我用来生成激光的代码(我将值存储在数组中)。

public void updatePlayerLaser(boolean shootLaser) {
        // Check if a new Laser should be created
        if(shootLaser == true) {
            if(timeLastCreatedLaser + 100 < System.currentTimeMillis()) {
                timeLastCreatedLaser = System.currentTimeMillis();
                boolean createdNewLaser = false;
                for(int i = 0; i < this.amountOfVisibleLasers; i++) {
                    if(createdNewLaser == false) {
                        if(holderLaser[i].isDisposed()) {
                            this.generateNewLaser(i);
                            createdNewLaser = true;

                        }
                    }
                }
            }
        }

        // Update all the other Lasers
        for(int i = 0; i < this.amountOfVisibleLasers; i++) {
            if(holderLaser[i].isDisposed() == false) {
                holderLaser[i].update();
            }

        }

    }

在这种情况下布置意味着激光器已失效,从而为新激光器占据旧激光器光斑腾出空间。

于 2012-05-19T08:20:50.127 回答