javafx 在游戏中渲染实体的正确方法?

javafx Proper way of rendering Entities in Game?

我正在使用 javafx 开发游戏。我以前用 awt 编写过一些游戏,所以我对游戏的工作原理有基本的了解。 (我使用了 bufferedimages)但是,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 有这么多新特性,我想知道这种方法是否过时或效率低下。我应该移动这些实体还是应该移动图像本身?我正在开发 space 射击游戏,那么 Interpolate() 和 Transition 会改进我的游戏吗?

具体的javafx游戏教程不多,只好求助于此... 谢谢!

我认为你的做法是最好的方式,我已经做过类似的事情并使用了这样的实体: 包裹 jumpNRun.gameObjects;

import java.util.List;
import javafx.scene.image.Image;
import javax.xml.bind.annotation.XmlRootElement;
import jumpNRun.gameObjects.entitys.Solid;


@XmlRootElement
public class Entity {

    protected Image entityImage;

    protected double gravity = 0;

    protected int height = 0, width = 0;

    protected int x = 0, y = 0;

    protected int id = 0;
    /**
     * Class speciefed informations
     */
    protected String extraInfo;
    protected boolean killed = false;

    public String getExtraInfo() {
        return extraInfo;
    }

    public void setExtraInfo(String extraInfo) {
        this.extraInfo = extraInfo;
    }

...等等 可以这样画:

    gc.drawImage(backround, 0, 0);
    for (Entity e : entitys) {
        gc.drawImage(e.getEntityImage(), e.getX(), e.getY());
    }