gpt4 book ai didi

java - Java中两个图像之间的碰撞检测

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:33 24 4
gpt4 key购买 nike

我正在编写的游戏中显示了两个角色,即玩家和敌人。定义如下:

public void player(Graphics g) {
g.drawImage(plimg, x, y, this);
}

public void enemy(Graphics g) {
g.drawImage(enemy, 200, 200, this);
}

然后调用:

player(g);
enemy(g);

我可以使用键盘移动 player(),但是在尝试检测两者之间的碰撞时我不知所措。很多人都说要使用矩形,但作为初学者,我看不出如何将它链接到我现有的代码中。谁能给我一些建议?

最佳答案

我认为你的问题是你没有为你的玩家和敌人使用好的 OO 设计。创建两个类:

public class Player
{
int X;
int Y;
int Width;
int Height;

// Getters and Setters
}

public class Enemy
{
int X;
int Y;
int Width;
int Height;

// Getters and Setters
}

您的播放器应该有 X、Y、宽度和高度变量。

你的敌人也应该如此。

在您的游戏循环中,执行如下操作 (C#):

foreach (Enemy e in EnemyCollection)
{
Rectangle r = new Rectangle(e.X,e.Y,e.Width,e.Height);
Rectangle p = new Rectangle(player.X,player.Y,player.Width,player.Height);

// Assuming there is an intersect method, otherwise just handcompare the values
if (r.Intersects(p))
{
// A Collision!
// we know which enemy (e), so we can call e.DoCollision();
e.DoCollision();
}
}

为了加快速度,不要费心检查敌人的坐标是否在屏幕外。

关于java - Java中两个图像之间的碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/335600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com