Python Pygame返回黑屏,即使同一脚本的其他部分正在工作
我正在关注Youtube上的一个教程,它会在白色背景上显示一个红点。我得到的只是一个黑屏,而不是预期的结果 我试图在代码中找到任何错误,但找不到任何错误。当我运行代码时,我会看到一个黑色背景的窗口,上面什么也没有。代码中唯一有效的部分是退出按钮。我想如果剧本的这一部分起作用了,所有的部分都会起作用,但我想我还是搞砸了。非常感谢您的帮助 这是我的代码:Python Pygame返回黑屏,即使同一脚本的其他部分正在工作,python,Python,我正在关注Youtube上的一个教程,它会在白色背景上显示一个红点。我得到的只是一个黑屏,而不是预期的结果 我试图在代码中找到任何错误,但找不到任何错误。当我运行代码时,我会看到一个黑色背景的窗口,上面什么也没有。代码中唯一有效的部分是退出按钮。我想如果剧本的这一部分起作用了,所有的部分都会起作用,但我想我还是搞砸了。非常感谢您的帮助 这是我的代码: import pygame import random width = 800 height = 600 white = (255,255,25
import pygame
import random
width = 800
height = 600
white = (255,255,255)
red = (255,0,0)
blue = (0,0,255)
game_display = pygame.display.set_mode((width, height))
pygame.display.set_caption("2D Blob world")
clock = pygame.time.Clock()
class blob:
def __init__(self, color):
self.x = random.randrange(0,width)
self.y = random.randrange(0,height)
self.size = random.randrange(5,10)
self.color = color
def move(self):
self.x += random.randrange(-5,5)
self.y += random.randrange(-5,5)
if self.x >width:
self.x = width
elif self.x <0:
self.x = 0
if self.y >height:
self.y = height
elif self.y <0:
self.y = 0
def draw_environment(blob):
game_display.fill((white))
pygame.draw.circle(game_display, blob.color,(blob.x, blob.y), blob.size)
pygame.display.update()
def main():
red_blob = blob(red)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
draw_environment(red_blob)
clock.tick(60)
if __name__ == '__main__':
main()
draw_environment(red_blob)
导入pygame
随机输入
宽度=800
高度=600
白色=(255255)
红色=(255,0,0)
蓝色=(0,0255)
game_display=pygame.display.set_模式((宽度、高度))
pygame.display.set_标题(“2D Blob world”)
clock=pygame.time.clock()
类blob:
定义初始化(自身,颜色):
self.x=random.randrange(0,宽度)
self.y=random.randrange(0,高度)
self.size=random.randrange(5,10)
self.color=颜色
def移动(自我):
self.x+=random.randrange(-5,5)
self.y+=random.randrange(-5,5)
如果self.x>宽度:
self.x=宽度
elif self.x高度:
self.y=高度
elif self.y上述代码的问题在main方法的定义中。您将创建一个blob对象,然后进入一个无限循环,而不是先绘制环境。
要修复它,您需要将draw_environment(red_blob)从第48行移动到第41行之后,以便您的主要方法如下所示:
def main():
red_blob = blob(red)
draw_environment(red_blob)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
clock.tick(60)
您可能还需要移动时钟。勾选(60)方法也可以根据需要移动到上面的某个位置。此解决方案完全适用于我。我从来没有考虑过。非常感谢你。