- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
抱歉,如果标题有点……含糊。不管怎样,我正在使用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/
苏, 我正在尝试对一些嵌套的 Ecto 模型进行编码,但遇到了问题。我意识到我无法对未加载的模型进行编码,并且我希望有可能只选择一个结构而不加载其余部分,同时有可能选择整棵树。 我使用了 defimp
我在几篇论文中发现了“BGP 中毒”和“中毒 AS”的说法,有时它似乎指的是完成某件事以达到某种目的,有时它被认为是坏事,但从未解释过“BGP 中毒”到底是什么” 其实是。 由于我自己无法找到这个问题
我有下面的 Ecto 模型。当我尝试渲染时出现错误。如何修改 @derive 以使其预加载?还是我必须写出实现?处理这个问题的推荐方法是什么? ** (RuntimeError) cannot enc
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我面临着一个小难题。 我需要在一个类型的许多实例上重复调用给定的方法,这些实例可能存在也可能不存在。因为对于任何给定实例,该方法的结果永远不会改变,所以我缓存它的返回值以供将来使用,以减少开销并在后续
我在 Phoenix 中使用默认的 json 工具,但由于某种原因,我无法返回任何日期(字段类型:日期)。我得到这样的东西: unable to encode value: {2015, 3, 24}
我已创建 Azure 服务总线,并且正在使用 Azure Function 监听消息。 如果我在处理消息期间在 Function 中抛出异常。然后整个过程将重复 10 次,然后消息将被移动到死信队列。
IO.puts(inspect(contacts)) 给出: [%HelloTable.Contact{__meta__: #Ecto.Schema.Metadata, id: 37, in
我使用 crash用于测试 Crashlytics 集成的功能,但我显然不想在应用程序中发布该代码。 标识符中毒是可能的,因此当前或将来的任何使用都会导致错误: #pragma GCC poison
ab = %{a: 1} ac = %{"a" => 1} 具体有什么区别?为什么Poison.decode!返回格式#2(我需要#1 与 Ecto.Changeset.change 一起使用)。 J
我正在开发一个 elixir API,我正在使用 JaSerializer,但在我调用 post API 时它给了我一个类似这样的错误。 function Poison.encode_to_iodat
我正在测试我正在构建的 Webjob 的 Poison 消息处理。 一切似乎都按预期进行,除了一件奇怪的事情: 当一条消息被移动到“-poison”队列时,它的幽灵似乎仍然隐藏在主作业队列中(不可见)
出于阅读目的,我希望在 json 文件中添加特定的按键顺序。 我知道 map 的键没有任何顺序,所以我们不应该依赖它,但由于 Poison 无法对 Prop 列表进行编码,我不知道如何做到这一点。 i
我正在开发一个 elixir API,我正在使用 JaSerializer,但在我调用 post API 时它给了我一个类似这样的错误。 function Poison.encode_to_iodat
我有非常简单的代码,它使用“Poison Pill”模拟生产者/消费者停止技术。 我有生产者类: public class Producer extends Thread { private
我正在为 atmega168a 编写 C 代码。当我编译下面的代码时,出现了 attempt to use poisoned "SIG_OUTPUT_COMPARE0A 和 attempt to us
在 Scott Schurr 演讲的最后 "Introducing constexpr" at CppCon ,他问“有没有办法毒化一个功能”?然后他解释说,这可以通过以下方式完成(尽管以非标准方式)
我是 elixir 的新手,想测试 iex 的 Poison 函数 https://hexdocs.pm/poison/1.3.1/#functions_details iex> Poison.dec
根据 azure 文档,可以通过从 azure-webjobs-hosts 中删除 blob 来重新触发它们。 [...Blob 收据存储在函数应用的 Azure 存储帐户中名为 azure-webj
根据 azure 文档,可以通过从 azure-webjobs-hosts 中删除 blob 来重新触发它们。 [...Blob 收据存储在函数应用的 Azure 存储帐户中名为 azure-webj
我是一名优秀的程序员,十分优秀!