簡體   English   中英

如何高效管理數百個實體?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM