2013-02-22 82 views
0

我最近開始使用Java創建遊戲。對於這個遊戲,我創建了一個名爲Tower的課程。在這個類中,我有一些整數變量和一些字符串。現在我想知道是否有辦法創建一個新的Tower對象來響應鼠標事件。如何根據請求創建多個類對象

例如:屏幕上的點擊事件應該創建一個新的Tower對象(然後將座標添加到Tower對象)。而且,如果您單擊屏幕上的其他位置,則會使用新座標創建另一個Tower對象。

我想這樣的事情,因爲玩家將能夠購買多個塔,並將他們放在任何他喜歡的地方(這些塔會有不同的屬性)。有沒有辦法做到這一點?這甚至有可能嗎?如果沒有任何建議:P?

+3

好的 - 你有一個鼠標點擊處理程序。你有什麼嘗試? – 2013-02-22 20:21:21

+1

您可以使用'new Tower(arguments)'創建任意數量的Tower對象,並且您可能想要在'List ' – vikingsteve 2013-02-22 20:23:29

+0

中跟蹤它們,感謝您的快速響應,我嘗試了一個簡單的代碼鼠標事件,但我必須命名塔的對象。所以一旦我再次點擊第一個對象消失了。 – daanabc 2013-02-22 20:27:15

回答

0

試試這個辦法是不是最終&完美的答案,但希望它能爲你的問題

LinkedList<Tower> list = new LinkedList<Tower>(); 

在鼠標事件是有用的:

list.add(new Tower()); 
list.get(0).x = 4; 
list.get(0).y = 5; 
//...... 
System.out.println("x = "+list.get(0).x); 
System.out.println("y = "+list.get(1).y); 
+0

似乎工作,非常感謝! – daanabc 2013-02-22 21:07:58

0

下面是一些代碼,會生成一個片段五個塔與UUID的 - 跟蹤每個HashMap(信用傑克馬尼)。

您只需修改它即可創建onClick()而不是for循環。

final class TowerGenerator 
{ 
    private final Map<UUID, Tower> towerMap = new HashMap<UUID, Tower>(); 

    public void generateFiveTowers() 
    { 
     for (int i = 0; i < 5; i++) 
     { 
     final UUID uuid = UUID.randomUUID(); 
     towerMap.put(uuid, new Tower(uuid)); 
     } 
    } 
} 
+0

似乎工作,非常感謝! – daanabc 2013-02-22 21:07:38

+0

任何時候:)愛塔防禦遊戲! – 2013-02-22 21:09:36

相關問題