2015-07-12 28 views
0

我在寫一個小遊戲,玩家正在控制一個小球(可以垂直和水平移動)。當球移動時,在其路徑上繪製一條線。我正在使用LinkedList來保存像素的位置(每當球移動時,x和y座標都保存在LinkedList中) 我正在將LinkedList中的像素對象存儲起來(只是將一個簡單的類像素與詮釋的x,y和每個吸氣)保存像素數據的數據結構

p.add(new Pixel(x,y)); 

在我的paint方法行的每一個像素,然後通過一個for循環

for (int i = 0; i < p.size(); i++) 
      g.drawOval(p.get(i).getX(), p.get(i).getY(),1,1); 

這是工作好畫,但現在我想要實現另一個功能,我不能無花果請輸出如何使用我正在使用的數據結構執行此操作:

如果球確實到達地圖的邊界,並且線條將地圖分成兩部分,則應將其中一個部分填充顏色。

我不知道這是甚至可以用我的方法。 任何人一個想法我可以使用什麼數據結構,我也不確定如果 使用drawOval是做到這一點的最好方法。任何人的想法?

+1

遊戲看看的[Path2D](http://docs.oracle.com/javase/7/docs/api/java/awt/geom/Path2D .html)類。 – RealSkeptic

回答

0

你想要做的事情非常多,其實很多研究已經在這個領域完成了,你需要看看Polygon Clipping技術來實現你想要的並且回答你如何填充它的問題顏色,那麼一旦你能夠得到要修剪的多邊形座標,你可以實現​​方法(填充)填充它。現在填充這麼多的像素也是一個耗費內存的任務,有很多方法可以克服這種內存泄漏的情況,但你現在不用擔心。這裏有一些鏈接可能會幫助你。
Computer Graphics - Clipping Solid Polygon Clipping Techniques PS:你在做喜歡JezzBall