gpt4 book ai didi

java - 当屏幕上出现 sprite "falls off"时,如何在 Java 游戏中调用 gameOver 方法?

转载 作者:行者123 更新时间:2023-12-02 19:55:24 24 4
gpt4 key购买 nike

我正在使用 BlueJ 用 Ja​​va 开发一个简单的平台游戏。

在接下来的几周内,我将发布一些问题,寻求有关该项目的帮助,因为我不太精通编程。所以我希望我不会变得烦人,如果您能帮助我,我将非常感激。

在我的游戏中,我有一个 gameOver 方法,它可以结束游戏并向控制台打印一条语句。我想要的是当我的玩家 Sprite “从屏幕上掉下来”时调用此方法。

现在,我在屏幕底部放置了一个矩形形状来表示某种危险(例如水),当玩家与其碰撞时,它会调用 gameOver 方法,游戏结束。但是,我仍然希望如果玩家跌落到屏幕的特定高度以下,游戏就会结束。

这是我的 gameOver 方法(来自“Game”类)-

/** End the game. */
public void gameOver()
{
world.terminate();
isOver = true;
}

这是我的玩家 Sprite (当前使用多边形绘制)-

super(Utils.createPolygon(170, 102,
155, 118, 137, 118, 151, 134, 146,
140, 167, 140, 170, 135, 174, 140,
193, 140, 188, 134, 202, 118, 186,
118, 170, 102));
setColor(new Color(254, 167, 184));

这是当玩家与敌人碰撞时结束游戏的代码(来自“Enemy”类,类似的代码也用于 Hazard 类)-

if (e.contact.involves(player) && (player.getLives() < 1)) {
System.out.println("YOU ARE DEAD!");
game.gameOver();
}

我想要一个类似的或至少简单的解决方案,当我的玩家 Sprite 掉落或超出屏幕的某个坐标时,它将调用我的 gameOver 方法。

如果您能提供示例/示例代码,并附上注释来帮助我理解它,以便让我了解我应该做什么来实现这一目标,我将不胜感激。

非常感谢您,期待您的答复。

最佳答案

让您开始:

  1. 考虑如何获取玩家的当前位置。
  2. 想想是什么让玩家跌倒(应该有一些方法/类来实现重力和跌倒?)
  3. 当玩家跌落到你的世界边界时检查他们的位置。如果它们超出了边界,就该调用 GameOver 方法了。

检查边界:

  1. 你的世界应该有一个最低高度,玩家必须保持在该高度之上才能生存。记住这个值。
  2. 如果您获取玩家的垂直位置并与此最小高度进行比较,您应该会得到一个 boolean 结果(安全与死亡)。
  3. 请注意,屏幕位置从左上角开始,并随着您向右和向下移动而增加,因此您的玩家位置可能反射(reflect)了这一点。因此,您很可能正在寻找测试 (player.getPosition().Y > world.getMaxAllowedHeight());
<小时/>

供引用:请发布您已经尝试过的内容以及遇到问题的位置。寻求一个填鸭式的解决方案对任何人都没有帮助——你必须自己考虑一下这个问题。如果您不知道从哪里开始,请告诉我们;我们可以尝试引导您走向正确的方向。

更新:听起来您已经做了一些思考,这太棒了!抱歉,如果我粗暴地跳下你的喉咙,但你原来的帖子暗示了相反的情况。不过,下一次,一定要尝试问一个更多“帮助我帮助自己”的问题,而不是“为我解决”的问题。一个简单的“有人可以告诉我如何开始解决这个问题吗?”就可以了。

关于java - 当屏幕上出现 sprite "falls off"时,如何在 Java 游戏中调用 gameOver 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/526743/

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