如何在JPanel上找到主色?

时间:2016-12-04 05:29:30

标签: java swing paint

我正在尝试制作游戏。有两个由两个矩形表示的玩家。两个矩形连续移动,可以使用WASD和向上,向下,向左,向右键重定向。无论走到哪里,每个矩形都会留下自己颜色的痕迹。游戏的目标是在时间限制内用你的颜色为大部分面板着色。我知道如何做除了我制作游戏的部分之外的所有事情,告诉我哪个是最常出现的颜色。它似乎没有一种方法可以做到这一点,所以有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

游戏结束后,您可以使用以下代码创建BufferedImage面板:

Dimension size = panel.getSize()
BufferedImage image = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = image.createGraphics();
panel.paint( g2d );

然后,您可以使用BufferedImage方法遍历getRGB(...)中的所有像素。然后你跟踪每个玩家的像素。

编辑:

在将面板绘制到BufferedImage上之前,您可以对一些绘画进行硬编码,以查看您的算法是否正常工作。

例如:

//panel.paint( g2d );
g2d.setColor( Color.RED );
g2d.fillRect( 0, 0, 5, 5);
g2d.setColor( Color.GREEN);
g2d.fillRect( 20, 20, 10, 10);
// now test your algorithm.

由于您知道刚刚绘制的矩形的大小,因此您应该知道算法的预期输出。一旦它与硬编码数据一起使用,您就可以使用随机图纸对其进行测试,确信它有效。