[英]How to manage hundreds of Entities efficiently?
好的,所以我是新手,我堅持想出解決這個問題的好方法。 所以我正在使用 slick2d 在 Java 中創建一個 RPG 自上而下的生存游戲。 我在游戲中生成物品時遇到了問題。 管理數百個項目的最佳方法是什么……一個例子; 我有一個名為 PickUpItems 的項目的子 class。 例如,當一棵樹被玩家摧毀時,它會生成一個 PickUpItem,它只是一個帶有用於碰撞的矩形框的圖像。 什么是選擇要生成的項目的最佳方式,而不必為每個交互項目(樹、灌木、農作物等)制作數百個類。 我應該有一個項目經理 class 嗎? 給定一個名稱它會搜索一個文本文件以獲取所需的參數並創建一個 Object 然后呢?
public void spawnPickUpItem(String type, 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 語句,其中包含數百個案例,每個項目都需要在游戲中生成一個項目。 我相信有人可以提供幫助..謝謝
您可以遵循Factory Method
模式
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 . . .
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.