gpt4 book ai didi

java - 不知道如何绘制 "poison dart"

转载 作者:行者123 更新时间:2023-12-01 15:07:06 25 4
gpt4 key购买 nike

抱歉,如果标题有点……含糊。不管怎样,我正在使用java制作一个平台游戏,并且我一直在尝试创建一个压力板触发的发射器来发射有毒的飞镖。游戏几乎分为网格系统,每个 block 都是网格上的一个点。到目前为止,我已经做到了,当压力板被激活时,它看起来就像被按下了一样。我也能够将它绘制到屏幕上,但它不会移动或发生任何事情。这是我用来将其绘制到屏幕上的代码:

public void drawDart(Graphics g) {
if(Component.isPressed) {
for(int x = 0; x < block[0].length; x++) {
for (int y=0; y < block[0].length; y++) {
if(x == 91 && y == 35) {
block[x][y] = new Block(new Rectangle(x * Tile.tileSize, y * Tile.tileSize, Tile.tileSize, Tile.tileSize), Tile.poisonDart);
}
}
}
}
}

不幸的是,使用这段代码,当我踩在压力板上时,飞镖被绘制,但不会移动。我之前尝试过使用 x++,但这根本无法移动飞镖。

另一个问题是我希望飞镖看起来受到重力的影响,当游戏被分割成一个大的网格系统时,这很难做到。不管怎样,大家觉得怎么样?

主持人编辑(从 OP 评论中移走):

block[x][y] = new Block(new Rectangle(x * Tile.tileSize, y * Tile.tileSize,
Tile.tileSize, Tile.tileSize), Tile.poisonDart);

最佳答案

您是否为您的游戏实现了“游戏循环”?看起来像这样(伪代码):

while (gameRunning) {
for (GameEntity e in gameWorldEntities) {
e.update(timePassed);
}
for (GameEntity e in gameWorldEntities) {
e.draw();
}
}

每个飞镖对象都应该知道它在游戏世界中的位置,并且 Dart 类的 update() 方法应该更新它的位置,包括水平移动它(如果它已发射)并使其因重力而下落。跟踪其水平和垂直速度是一个好主意,除非您使用单独的物理引擎(听起来您没有使用)。然后draw()方法只需要将其绘制在屏幕上正确的位置即可。

关于java - 不知道如何绘制 "poison dart",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12829067/

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