gpt4 book ai didi

Java 2D 游戏多态性

转载 作者:行者123 更新时间:2023-12-02 06:11:50 25 4
gpt4 key购买 nike

我正在用 Java 开发一个简单的 2D 游戏,但我陷入了困境。

我的所有游戏对象(EnemyPlayerItemWall、...)都在扩展实体

Entity 是一个抽象类,包含一些抽象方法,例如 update()

我创建了一个名为 Drawable 的接口(interface),其中包含 draw() 方法。

一些游戏对象(例如Item)应该是一个Entity,但也应该是Drawable,而其他游戏对象(例如Wall)应该只是一个实体(未连接到图 block ,仅x和y坐标)

一切看起来都是这样的:

List<Entity> entities;

在构造函数中我这样做:

entities = tileMapReader.getEntities();

我的问题是:我应该如何绘制我的 Drawable

我希望能够做这样的事情:

for (Entity entity : entities) {
entity.draw(g);
}

但是由于所有实体都没有 draw() 方法,我无法这样做。我不认为 if (entity instanceof Drawable) 是个好主意。

最佳答案

保留额外的可绘制对象集合。这样您就可以限制绘制这些实体,并对所有实体执行所有其他操作。

关于Java 2D 游戏多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21814762/

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