所以我一直在尝试使我的橙色在100-650宽和-200高之间随机下降,但我输入的代码不起作用,我正在尝试的代码使我的橙色只保持随机化正确我如何使它随机化而不只是随机化正确https://gyazo.com/928b117fb01d9050ac2c50cb1d2f269f
我的随机代码
run = True
while run:
# [...]
for Platform in platforms:
if orange1.rect.colliderect(Platform.rect):
orange1.speed += 1
orange1.x = random.randint(Orange.rect.x,Orange.rect.x + Orange.rect.width)
orange1.y = random.randrange(0, 1 + 12)
我的完整代码
https://pastebin.com/aiWMQ5b5
这是因为您正在
orange_rect
矩形处绘制位图,而不是对象的位置self.rect
。稍后更改self.rect
以移动橙色,但这不会影响Orange.orange
位图的.get_rect()
返回的rect。问题的根源是当只需要一个矩形时,有两个矩形我将对此进行重新处理,以仅使用单个矩形:
当您编写面向对象的代码时,其中一个主要思想是代码中包含的数据是对象的“属性”,外部代码不应该触及
Orange.x
之类的内容。考虑到这一点,我创建了函数来支持Orange
类上的必要操作因此,与其打电话:
我们要求Orange类对自身进行更改,调用成员函数:
这会将所有
Orange
功能保留在类中。这有助于防止副作用的错误相关问题 更多 >
编程相关推荐