Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.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_Pygame - Fatal编程技术网

Python 如何修复我的pygame窗口,始终是一个黑屏

Python 如何修复我的pygame窗口,始终是一个黑屏,python,pygame,Python,Pygame,这是我第一次在堆栈上溢出,首先,如果我格式化错误,请不要杀了我,但我正在尝试运行这段代码,但每次我执行Pygame时,屏幕都会变黑,每次我的光标移到屏幕顶部,它都会变成一个旋转的甜甜圈,这意味着windows处理起来很困难。如果有人能帮助我,找出问题所在,我将不胜感激,顺便说一句,thx提前 代码如下: import pygame pygame.init() ss_images = [ pygame.transform.scale(pygame.image.load('C:/User

这是我第一次在堆栈上溢出,首先,如果我格式化错误,请不要杀了我,但我正在尝试运行这段代码,但每次我执行Pygame时,屏幕都会变黑,每次我的光标移到屏幕顶部,它都会变成一个旋转的甜甜圈,这意味着windows处理起来很困难。如果有人能帮助我,找出问题所在,我将不胜感激,顺便说一句,thx提前

代码如下:

import pygame

pygame.init()

ss_images = [
    pygame.transform.scale(pygame.image.load('C:/Users\\Wonka101\\PycharmProjects\\Images\\ss1.png'), (64, 64)),
    pygame.transform.scale(pygame.image.load('C:/Users\\Wonka101\\PycharmProjects\\Images\\ss2.png'), (64, 64))
]

screen = (500, 500)

bg = pygame.image.load('C:/Users\\Wonka101\\PycharmProjects\\Images\\space v.2.jpg')
bg = pygame.transform.scale(bg, screen)

win = pygame.display.set_mode(screen)

clock = pygame.time.Clock()


class Player(object):
    def __init__(self, x_position, y_position, width, height):
        self.x_position = x_position
        self.y_position = y_position
        self.width = width
        self.height = height
        self.velocity = 5
        self.left = False
        self.right = False
        self.fly_count = 0

    def draw(self):
        while True:
            win.blit(ss_images[self.fly_count], (self.x_position, self.y_position))
            self.fly_count = self.fly_count + 1
            if self.fly_count == 2:
                self.fly_count = 0


def game_window():
    global fly_count
    win.blit(bg, (0, 0))
    ss.draw()
    pygame.display.update()


ss = Player(250, 250, 64, 64)
running = True
while running:
    pygame.time.delay(100)
    clock.tick(60)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    game_window()

您的draw函数中有
while True
,没有退出条件(
break
),这是一个无限循环,那么我该如何解决这个问题呢???这取决于具体情况,您为什么要在循环中对这些图像进行快速切换?您的意思是在交替帧上渲染每个图像吗?是的,顺便说一下,如果您只删除while循环,那么您的代码将完全按照您的需要工作。在每次绘制时,
fly\u count
都会增加,这意味着下一次绘制将在没有退出条件(
break
)的绘制函数中闪烁下一幅图像,而True),这是一个无限循环,那么我该如何解决这个问题呢???这取决于,为什么要在循环中闪烁这些图像?您的意思是在交替帧上渲染每个图像吗?是的,顺便说一下,如果您只删除while循环,那么您的代码将完全按照您的需要工作。在每次绘制时,飞行计数将增加,这意味着下一次绘制将闪烁下一幅图像