Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pygame返回黑屏,即使同一脚本的其他部分正在工作_Python - Fatal编程技术网

Python Pygame返回黑屏,即使同一脚本的其他部分正在工作

Python Pygame返回黑屏,即使同一脚本的其他部分正在工作,python,Python,我正在关注Youtube上的一个教程,它会在白色背景上显示一个红点。我得到的只是一个黑屏,而不是预期的结果 我试图在代码中找到任何错误,但找不到任何错误。当我运行代码时,我会看到一个黑色背景的窗口,上面什么也没有。代码中唯一有效的部分是退出按钮。我想如果剧本的这一部分起作用了,所有的部分都会起作用,但我想我还是搞砸了。非常感谢您的帮助 这是我的代码: import pygame import random width = 800 height = 600 white = (255,255,25

我正在关注Youtube上的一个教程,它会在白色背景上显示一个红点。我得到的只是一个黑屏,而不是预期的结果

我试图在代码中找到任何错误,但找不到任何错误。当我运行代码时,我会看到一个黑色背景的窗口,上面什么也没有。代码中唯一有效的部分是退出按钮。我想如果剧本的这一部分起作用了,所有的部分都会起作用,但我想我还是搞砸了。非常感谢您的帮助

这是我的代码:

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)方法也可以根据需要移动到上面的某个位置。

此解决方案完全适用于我。我从来没有考虑过。非常感谢你。