在大三上的课程设计中,我写了一个小游戏,其原理是将一个矩形按扇形范围射出并在边缘检测处停下,矩形拥有颜色,颜色混合之后会生成新的颜色(遵循三原色原理)。
之后在制作的过程中出现了一些问题,我们知道红+蓝会生成绿,但是绿与红矩形碰撞后,由于没有给红+绿设置代码,不应该存在的组合出现了,这是与我的初衷相悖的
在一番摸索之后发现了如下问题:
我们只设计出了红黄蓝的碰撞,即红碰黄生成蓝……之类,但是在失败的环节上,我们的设定是同色失败,就比如绿+红就直接留在了场上,这是不对的。
解决方法:在经过一番摸索之后,我将每个矩形实例设置三个计数器
if (color == 1)
{ CR = new ColorRectangle(temp, 1, 0, 0, centerTemp); CR.r = 1; CR.g = 0; CR.b = 0; }然后直接将计数器进行比较就可以实现功能了
之后就可以进行其他的设置,将碰撞换色的功能赋予计数器。