gpt4 book ai didi

java - 存储各种具有不同功能的对象

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:22 25 4
gpt4 key购买 nike

我正在用 Java 开发一款游戏,我只能将其描述为《模拟人生》的变体。

游戏的主界面由一个关卡组成,并且有各种各样的家具可以放置在 map 上。我的问题是,虽然我可以想出构建一个系统的方法,该系统允许我为每件家具分配属性,但我想确保在完成它之前我以正确的方式进行。例如,如果我引用了一个标识符为“沙发”的对象,则可以通过搜索所有可用对象并找到具有匹配标识符的对象来访问家具对象的成员。

我的方法是创建一个非常大的 .java 文件,其中包含每件家具的基本家具类的实例,每个文件都有一个标识符和分配的所有不同属性,例如图像、位置、旋转等,以及它们提供的每个不同功能的自己的唯一代码(例如坐着、 sleep )。

为了将这些对象保存/存储在文本文件中,我只需将标识符的名称存储在文本文件的字符串数组中,加载时,我可以通过实例化标识符指向的对象来创建对象。

我使用这些方法中的大部分方法是否正确,或者是否有更好的方法可用?如果您发现很难理解我所写的内容(并且我很难将其写清楚),那么一个更简单的问题是:

在《模拟人生》中,家具元素的可用数量以及它们可以放置(和存储/保存)的多种不同变化/旋转方式是如何管理的?

最佳答案

我认为您在这里需要做的是尝试将尽可能多的通用功能抽象到基类,然后每个项目都应该根据需要进行扩展。

Eg
A Sofa... Seat extends Furniture extends Object
A Office chair would be the same
A DiningTable would be different tho... Table extends Furniture extends Object

您还需要各种接口(interface),以便沙发实现 Sittable 考虑不同对象可能共有的功能,就像它们都可以可放置

此外,为了保存和加载,您可能希望使对象可序列化。

阅读Abstraction , InterfacesSerialization

关于java - 存储各种具有不同功能的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17351181/

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