为什么两颗子弹碰撞后只能还能移动

jjb300 2022-07-09 09:27:38
private void collosion() {
    int x = getX();
    int y = getY();
    int step = getStep();
    for (Bullet enemy : BulletBiz.bullets) {
        if (enemy.getX()==x&&enemy.getY()==y&&enemy.getStep()!=step)
        {
            bulletRemove(x,y);
            BulletBiz.bullets.remove(enemy);
            BulletBiz.bullets.remove(this);
        }
        }
}
...全文
8161 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-Java 发布问题, 以便更快地解决您的疑问
坦克大战小游戏,一共八关。不同的关卡,游戏地图、敌方坦克出现的种类不一样。敌方坦克地图上最多存在4辆,击杀后会出现新坦克直至补足4个,当击杀坦克一定数值则敌方新坦克不会再增加。击杀完所有坦克则胜利过关。己方坦克也有复活次数,用完则失败。另地图正下方有己方老家,若被敌方坦克攻破则游戏失败。 整个程序分为里表两大部分。 里部分由41*41的int地图数组组成,每个元素代表了该以该数组元素行列下标为地图坐标y,x那个单元的情况,不同的地图障碍物在该数组有不同的值,坦克在地图上占3*3个单元,在地图数组内相应坐标的3*3个元素内也对应特殊的值。由地图数组值可以读出该坦克信息。 表部分则是根据里部分的地图数组通过gotoxy和printf函数在命令行界面打印出相应字符以构成游戏界面的。 程序中的每个函数操作都是通过里部分(地图数组)判定,然后对里部分(地图数组)操作,再由里部改变外部,由gotoxy和printf函数将可视化界面呈现给玩家。 也就是游戏主体函数内里表部分是一起操作的,不分开。 对于函数分类,程序又可分为三大类。一类游戏辅助函数。一个子弹系统,一个坦克系统。子弹和坦克分别都是独立运作的系统,有少量信息交换。 子弹系统:子弹在地图数组内没有值,但每颗子弹记录了子弹坐标(对应地图数组的坐标),子弹发射者等信息,由子弹坐标对应地图数组坐标中的数组值判定子弹碰撞障碍物或判定击中坦克等,再产生不同的响应。 子弹结构体为长度20的数组,一个元素代表一颗子弹。坦克部分发射子弹函数执行,则按顺序激活一颗子弹(改变子弹的一个标记),若激活的子弹子弹数组[19]。则下一个激活[0],并改变给子弹的其他值。子弹击中物体后既被灭活(改变标记)。 子弹移动函数只执行被激活的所有子弹,执行子弹移动碰撞判断与碰撞事件等。也就是说,子弹一被建立就是自己”飞”了,相当于将子弹交给了

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧