2009-12-25 33 views
0

我願意製作等距遊戲,但我很難用mouseListener。mouseListeners和JLabels使用具有透明像素的圖像

我正在使用Swing並通過使用具有透明像素(GIF格式)的方形圖像進行losanges。

問題是讓洛杉磯觸摸對方的邊緣意味着在其他頂部有一個透明像素,這是mouseListener的一個問題。

我願意確切地知道哪個losange被點擊,但由於附近的losange的透明像素位於被點擊的頂部,因此選擇了錯誤的losange作爲KeyEvent源。

有沒有辦法讓mouseListener不考慮透明像素作爲形狀的一部分?

感謝您的閱讀。

+0

呃......在我的電腦進行危險操作之前,我沒有備份我的工作,並且由於數據壓縮失敗而失去了一切(我的備份是損壞的tar.gz文件),所以我將無法知道什麼是正確的做法。 還是謝謝! – 2009-12-29 11:20:50

回答

2

目前尚不清楚

1)爲什麼瓷磚有重疊,或

2)爲什麼你正在使用的JLabel的瓷磚

有很多方法可以解決這個問題,你」重新擁有,但我只需製作一個根據需要呈現圖塊的JComponent,並且是唯一的MouseListener。

+0

1)因爲每個JLabel被認爲是一個正方形,但必須顯示一個losange形狀的圖像,並且每個losange的邊緣都連接到另一個相似形狀的圖像。那麼,如果有另一種解決方案,我會很樂意學習它。 2)哼哼...可能是因爲我是Java新手,JLabels似乎是將圖像打印到我的更簡單的方法。 每塊瓷磚可能有不同的圖像,但它們都是洛杉磯形狀。 但是,我需要能夠使用某種z-index在我的遊戲中添加「對象」。現在,我與JLayeredPane()一起工作。 – 2009-12-25 19:13:43

2

正如喬納森所說,我認爲你使用錯誤的技術來完成這項工作。使用這種軟件的2D圖形框架取得了巨大的成功。在我的情況下,我是Piccolo的忠實粉絲。我知道你不想聽到這個,但是考慮從適當的工具集開始。