java坦克大战碰撞检测
时间: 2023-12-20 22:32:31 浏览: 41
以下是Java坦克大战碰撞检测的例子:
1. 子弹打中敌方英雄检测
```java
public boolean hitEnemyTank(Bullet bullet, Tank enemyTank) {
Rectangle bulletRec = new Rectangle(bullet.x, bullet.y, bullet.width, bullet.height);
Rectangle tankRec = new Rectangle(enemyTank.x, enemyTank.y, enemyTank.width, enemyTank.height);
if (bulletRec.intersects(tankRec)) {
// 子弹打中敌方坦克的处理逻辑
return true;
}
return false;
}
```
2. 我方英雄与敌方英雄碰撞检测
```java
public boolean hitEnemyTank(Tank myTank, Tank enemyTank) {
Rectangle myTankRec = new Rectangle(myTank.x, myTank.y, myTank.width, myTank.height);
Rectangle enemyTankRec = new Rectangle(enemyTank.x, enemyTank.y, enemyTank.width, enemyTank.height);
if (myTankRec.intersects(enemyTankRec)) {
// 我方英雄与敌方英雄碰撞的处理逻辑
return true;
}
return false;
}
```
3. 子弹打中碰撞块的检测并移除碰撞块
```java
public void hitWall(Bullet bullet, Wall wall) {
Rectangle bulletRec = new Rectangle(bullet.x, bullet.y, bullet.width, bullet.height);
Rectangle wallRec = new Rectangle(wall.x, wall.y, wall.width, wall.height);
if (bulletRec.intersects(wallRec)) {
// 子弹打中碰撞块的处理逻辑
// 移除碰撞块
}
}
```
4. 人机碰撞检测
```java
public boolean hitBotTank(int x, int y, List<Bot> botList) {
Rectangle next = new Rectangle(x, y, width, height);
for (Bot bot : botList) {
if (bot.getRec().intersects(next)) {
return true;
}
}
return false;
}
```