我最近试图制作一个灯"猜测颜色"游戏(我的第一个),你得到一个十六进制代码,你可以选择一些替代品。我完成它的方式我需要收集有关这些替代品的信息(它们只是彩色椭圆形)。无论如何,我需要更改颜色的RGB值,因为它们是随机生成的,并且创建(在这种情况下为10)单独的颜色并且一次设置一个颜色并不是非常有效。
我的问题是,我找不到改变颜色RGB值的方法。基本上我创建了一个颜色数组(我注意到这个问题在没有数组的情况下也存在)但是尝试像使用普通变量一样改变值并不起作用。它只是给我一个错误。
这是具体方法。
public void OvalData(int r, int b, int g, int x, int i){
//Create two arrays containing the information
Color OvalColor[] = new Color[difficulty];
int[] posX = new int[difficulty];
//Set the infromation
Color[i] = (r, g, b);
posX[i] = x;
这就是问题所在:
`Color[i] = (r, g, b);`
任何帮助将不胜感激!
答案 0 :(得分:1)
Color[i]=...
根本无法工作,因为Color
是类的名称,而不是您的变量。您要更改的内容是OvalColor[i]
,而不是Color[i]
。
您可以尝试OvalColor[i]=new Color(r, g, b)
分配您的一种颜色,但我想还有更多要解决的问题; OvalColor
方法OvalData()
可能不应该是本地的。{/ p>
与您的问题无关,但与您的编码风格无关:请仅对类名使用初始上限,对变量和方法名称使用初始小写,例如ovalColor
或public void ovalData(...)
。这会让你更容易发现问题 - 你已经习惯了#34;分配给某个帽子有一个首字母大写字母不会工作"过了一会儿。