【发布时间】:2018-03-27 04:04:05
【问题描述】:
我正在使用 javafx 开发游戏。我之前在awt中编写过一些游戏,所以我对游戏的工作原理有一个基本的了解。 (我使用了缓冲图像)但是,有了 javafx api 中的所有新东西,我怀疑我的旧游戏架构是否仍然适用于 javafx。这是我游戏的当前逻辑:
这就是我的渲染工作方式:
List<Entity> entities= new ArrayList<Entity>;
GraphicsContext gc; ///imagine that I created a new GraphicsContext object
在 render 方法中它基本上是这样的:
for(Entity e : entities)
{
gc.drawImage(e.getX(),e.getY(),e.getImage());
}
但是,由于 javafx 有这么多新功能,我想知道这种方法是否过时或效率低下。我应该移动这些实体还是应该自己移动图像?我正在开发一款太空射击游戏,那么 Interpolate() 和 Transition 会改进我的游戏吗?
没有很多具体的javafx游戏教程可用,所以我必须在这里寻求一些帮助...... 谢谢!
【问题讨论】:
-
查看
Timeline,为example。 -
@trashgod 我目前正在为我的循环使用 AnimationTimer。您如何看待让我的 Entity 类成为 ImageView 的子类?
-
这可能是个坏主意,因为绘制 Image 并不像 ImageView 那样需要那么多内存。 ImageView 为您提供了更多不必要的选项,不应该用于游戏开发!
-
@AaronStein 感谢您的回复!我确实尝试过使用图像,但是当我的实体移动时,旧图像会留在背景上而不是消失......我应该每次都重新绘制背景吗?
-
你需要覆盖背景
标签: java javafx java-8 entity game-loop