gpt4 book ai didi

java - 如何高效管理数百个实体?

转载 作者:行者123 更新时间:2023-12-02 00:13:15 25 4
gpt4 key购买 nike

好吧,我是个新手,一直致力于想出解决这个问题的好方法。所以我正在使用 slick2d 在 Java 中创建一个自上而下的 RPG 生存游戏。我在游戏中生成元素时遇到了问题。管理数百个项目的最佳方法是什么......一个例子;我有一个名为 PickUpItems 的项目子类。例如,当玩家摧毁一棵树时,它会生成一个 PickUpItem,它只是一个带有用于碰撞的矩形框的图像。选择要生成的项目的最佳方法是什么,而不必为每个交互项目(树、灌木、农裁剪等)制作数百个类。我应该参加项目经理类(class)吗?给定一个名称,它会搜索一个文本文件以获取所需的参数并创建一个对象,然后?

公共(public)无效spawnPickUpItem(字符串类型,int x,int y) { PickUpItem pickUpItem = null;

    switch(type)
{
case"Log":
pickUpItem = new PickUpItem(type,logImage,x,y,this);
break;
case"Flint":
pickUpItem = new PickUpItem(type,flintImage,x,y,this);
break;
case"Rock":
pickUpItem = new PickUpItem(type,rockImage,x,y,this);
break;
}

这是我当前的尝试,它会生成必要的项目,但想象一下运行一个包含数百个案例的 switch 语句,每个项目都需要在游戏中生成一个项目。我确信有人可以提供帮助..谢谢

最佳答案

您可以遵循工厂方法模式

Map<String, Image> imageRepository = new HashMap<>(); // to be filled

PickUpItem createItem(String type, int x, int y) {
Image itemImage = imageRepository.getOrDefault(type, yourDefaultImg);
return new PickUpItem(itemImage, x, y);
}

public void spawnPickUpItem(String type, int x, int y) {
PickUpItem pickUpItem = createItem(String type, int x, int y);
// further logic . . .
}

关于java - 如何高效管理数百个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58107317/

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