【发布时间】:2009-02-09 00:17:57
【问题描述】:
我正在使用 BlueJ 用 Java 开发一个简单的平台游戏。
在接下来的几周内,我将发布一些问题,寻求有关此项目的帮助,因为我不是很精通编程。所以我希望我不会变得烦人,如果你能帮助我,我将非常感激。
在我的游戏中,我有一个 gameOver 方法来结束游戏并向控制台打印一条语句。我想要的是当我的玩家精灵“从屏幕上掉下来”时调用这个方法。
现在我在屏幕底部放置了一个矩形来表示某种危险(如水),当玩家与它发生碰撞时,它会调用 gameOver 方法并结束游戏。但是,如果玩家跌落到屏幕的某个高度以下,我仍然希望游戏结束。
这是我的 gameOver 方法(来自“游戏”类)-
/** End the game. */
public void gameOver()
{
world.terminate();
isOver = true;
}
这是我的玩家精灵(目前使用多边形绘制)-
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();
}
我想要一个类似的,或者至少是简单的解决方案,当我的玩家精灵跌落或超出屏幕的某个坐标时,它会调用我的 gameOver 方法。
如果您能提供一个示例/示例代码,我将不胜感激,并使用 cmets 帮助我理解它,以便了解我应该如何实现这一目标。
非常感谢您,期待您的回答。
【问题讨论】:
-
代码+cmets?听起来像我的家庭作业!
-
嗯,这是一个评估项目。但是,我在常见问题解答中没有看到任何内容表明我不能提出有关家庭作业的问题,只要它清晰、详细且与编程相关。
-
需要更多关于第二个 sn-p 中的 super() 调用的详细信息。什么是超类?另外,Utils.createPolygon() 返回什么?
-
super() 指的是 BasicPlayer 超类。 Utils.createPolygon() 生成我想要显示的精灵,引用自 Game 类。例如 - player = new Player(this);