Java 太空入侵者杀死敌人

Java 太空入侵者杀死敌人,java,arrays,multidimensional-array,shift,Java,Arrays,Multidimensional Array,Shift,目前我正在从事一个太空入侵者项目,编程语言是基于Java的,但并不完全基于Java。它没有像Java那样的所有命令,所以它就像简单的语言一样。 为了编写这个程序,我用简单的代码编写代码。例如使用if语句和for循环 所以我一直想解决的问题是如何让玩家的子弹杀死敌人 我不能让敌人自毁。 我试过很多方法,但似乎都不管用 这是我的第一个方法: 制作四个单阵列 int[] enemyPosX int[] enemyPosY int[] enemyDirX int[] enemyDirY 然后我做了一

目前我正在从事一个太空入侵者项目,编程语言是基于Java的,但并不完全基于Java。它没有像Java那样的所有命令,所以它就像简单的语言一样。 为了编写这个程序,我用简单的代码编写代码。例如使用if语句和for循环

所以我一直想解决的问题是如何让玩家的子弹杀死敌人 我不能让敌人自毁。 我试过很多方法,但似乎都不管用

这是我的第一个方法: 制作四个单阵列

int[] enemyPosX 
int[] enemyPosY
int[] enemyDirX
int[] enemyDirY
然后我做了一个嵌套的循环,生成一个网格,宽度为10,高度为3。 一旦我这样做了,我让它从左向右移动,一旦它到达游戏宽度的末端,方向改变,向下移动一

int width = 10;
int height = 3;
int numEnemy = width * height;

int[] enemyPosX new int[numEnemy];
int[] enemyPosY new int[numEnemy];
int[] enemyDirX new int[numEnemy];
int[] enemyDirY new int[numEnemy];


void main() {
    for(int x = 0; x < width; x = x + 1) {
         for(int y = 0; y < height; y = y + 1) {
              enemyPosX[x] = x * height * 5;
              enemyPosY[y] = y * height * 15;
              enemyDirX[x] = 5;
              enemyDirY[y] = 5;
         }
    }
}
int-width=10;
整数高度=3;
int numEnemy=宽度*高度;
int[]enemyPosX new int[numEnemy];
int[]enemyPosY new int[numEnemy];
int[]enemyDirX new int[numEnemy];
int[]enemyDirY new int[numEnemy];
void main(){
对于(int x=0;x
完成此操作后,我生成了子弹的信息。当玩家开火时。 游戏区域的尺寸是800乘800

for(int i = 0; i < firedBullets; i = i + 1) {
    setColor(0, 0, 0);
    fillRect(bulletPosX[i], bulletPosY[i], 6, 30);
    bulletPosY[i] = bulletPosY[i] - 5;
    if(bulletPosY[i] < -50) {
        for(int j = i + 1; j < firedBullets; j = j + 1) {
            bulletPosX[j - 1] = bulletPosX[j];
            bulletPosY[j - 1] = bulletPosY[j];
            bulletDirX[j - 1] = bulletDirX[j];
            bulletDirY[j - 1] = bulletDirY[j];
        }
        firedBullets = firedBullets - 1;

    }
}
void onKeyPressed (int code) {
    if(code == 37) {
        playerPosX = playerPosX - 15;
    }
    if(code == 39) {
        playerPosX = playerPosX + 15;
    }
    if(code == 32) {
        if(firedBullets < maxBullets) {
            bulletPosX[firedBullets] = playerPosX + 46;
            bulletPosY[firedBullets] = playerPosY - 30;
            bulletDirX[firedBullets] = 5;
            bulletDirY[firedBullets] = 5;

            firedBullets = firedBullets + 1;
        }
    }
}
for(int i=0;i
我也为2D阵列做了这项工作,但实际上我似乎无法让它工作。 我怎样才能做到当玩家的子弹击中敌人时,它会杀死敌人。 你们能不使用任何Java命令编写简单的代码吗。 就用循环和数学来做吗


谢谢

你知道怎么做了吗?我想检测子弹和enemyAI的收集情况取决于位置。因此,如果子弹的位置大于enemyAI的位置,那么它发生了碰撞。还是不是?我唯一坚持的是如何让它消失(杀死)你是如何储存敌人的?第一种方法是把它储存在一个1D数组中,上面可以看到,第二种方法是把它储存在一个2D数组中。