2015-07-12 55 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