我正在用java开发一款Android游戏,我会有一个跟随用户手指的精灵,并且应该每秒发射一颗子弹。换句话说,我试图附加一个每秒向上移动的位图。位图从主角精灵的x和y坐标开始。我不能让它一次吸引多个导弹,而且我已经没想到如何这样做了。我尝试了很多东西,我真的可以帮忙。
顺便说一下,我的Main Game Panel类扩展了一个surfaceView并实现了SurfaceHolder.Callback:
public class MainGamePanel extends SurfaceView implements SurfaceHolder.Callback{
谢谢!
答案 0 :(得分:3)
据我所知,你希望能够一次射击超过1个子弹吗?您可以使用Vector或Array来执行此操作。使用数组,您可以设置默认数量的可见项目符号,在Vector中,您可以使用手指能够生成的mant项目符号。
这是我用来生成激光的代码(我将值存储在数组中)。
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();
}
}
}
在这种情况下处理意味着激光器已经死亡,从而为新激光器腾出空间来拍摄旧的激光器。