在pygame

时间:2016-04-05 17:18:55

标签: python-2.7 pygame

此时我有一个游戏从屏幕顶部掉落掉落的彩色块(障碍物),目标是玩家躲闪说(障碍物)向左或向右移动。

我目前已经设置了每次用户运行脚本时,块会有不同的颜色,但问题是,在游戏过程中,它们是那种颜色,并且对于颜色不同,用户必须退出并重新运行脚本。

我的代码:

col1 = randint(1, 255)
col2 = randint(1, 255)
col3 = randint(1, 255)
block_color = (col1, col2, col3)

执行脚本后,上面的三个randints定义了一个随机颜色,稍后会在脚本中应用它。

我正在寻找关于我如何能够改变每个单块的颜色的建议。

因此,例如,一个块落下,它的randcolor为红色,然后第二个块落下,它的randcolor为蓝色等。

我想它会在每次块下降时定义3个随机整数的行,并将这三个rgb值应用于新块。我只是无法想象如何在python中实际编写它。

非常感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

class block
    def __init__(self):
     (put the colour code here)
     self.colour = (col1, col2, col3)

抱歉格式化,我在工作时在平板电脑上。

答案 1 :(得分:0)

实现此目的的一种简单方法是使用Block类,并在 init 方法中生成颜色,以便每个Block对象(您的障碍物)都具有不同的颜色。

class Block:
    def __init__(self):
        col1 = randint(1, 255)
        col2 = randint(1, 255)
        col3 = randint(1, 255)
        self.block_color = (col1, col2, col3)

请注意,将randint INSIDE放在init方法中很重要,或者随机调用一次并用于整个游戏。这样,每个块都不同。

如果你在Block类中获得了所有的图像/矩形内容,那么块的代码将变得非常简单。

b1 = Block() # Makes a block object.
b1.block_color # Will access b1's unique color.

注意:如果您不使用课程,您问题的评论可以解决问题。但是,您通常需要具有独特属性的类(尤其是在视频游戏中),例如您遇到的障碍。