java - 射击 Sprite 安卓

标签 java android sprite

我正在用java开发一个Android游戏,其中我将有一个跟随用户手指的 Sprite ,并且应该每秒发射一颗子弹。换句话说,我试图附加一个每秒向上移动的位图。位图从主要角色 Sprite 的 x 和 y 坐标开始。我无法让它一次吸引多于一枚导弹,而且我已经不知道如何做到这一点了。我尝试了很多事情,我确实需要一些帮助。

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

public class MainGamePanel extends SurfaceView implements SurfaceHolder.Callback{

谢谢!

最佳答案

据我了解,您希望能够一次发射超过 1 颗子弹?您可以使用 vector 或数组来执行此操作。使用数组,您可以设置可见子弹的默认数量,而在 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();
            }

        }

    }

在这种情况下进行处置意味着激光器已失效,从而为新激光器腾出空间来占据旧激光器的光点。

关于java - 射击 Sprite 安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10661509/

相关文章:

java - 如何通过sql "Like"运算符找到合适的句子?

javascript - 类似于 javascript 中的 atob 的 Java 函数

Android:如何使用大量的Bitmaps?

java - Java正则表达式中的混淆

java - 使用 POI Apache 从 Excel 读取数据时将数据添加到 ArrayList

连接到地址的 Android 网络错误

安卓 : Can I use this intent from a 3rd party application?

css - Safari 中的 SVG 片段 Sprite + CSS 背景图片

java - 如何消除平铺纹理之间的间隙?

python - 如何从分组的 Sprite 中调用函数?