皮游戏 |每次我尝试运行它时它都会显示黑屏然后崩溃,即使它之前可以工作

问题描述

代码

import pygame

pygame.init()
space_width = 55
space_height = 40
win = pygame.display.set_mode((600,400))
pygame.display.set_caption("hi")
playerimg = pygame.image.load('001-spaceship.png')
ply = pygame.transform.rotate(pygame.transform.scale(playerimg,(space_width,space_height)),90)
print(win)


def draw_window(plyred):
    win.fill((255,0))
    win.blit(ply,(plyred.x,plyred.y))
    pygame.display.update()


def main():
    plyred = pygame.rect(100,100,space_height))


    run = True
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
        plyred += 1
    
    draw_window(plyred)
    
    pygame.quit()

我的代码无法运行,在崩溃前只显示一个临时黑屏。

解决方法

首先,代码上有这么多错误,反正在这里,这至少应该告诉你一些东西:

data2 <- list2DF(Map(unlist,data2))

需要改进的考虑和领域

  1. 缩进,缩进,缩进,Python 是少数几种编程语言之一,如果您没有正确缩进(希望如此),它就会惩罚您,如果您不这样做,其他程序员也是如此,这里 - -> Indentation in Python

  2. 最大的问题是在变量 import pygame pygame.init() space_width = 55 space_height = 40 win = pygame.display.set_mode((800,600)) pygame.display.set_caption("hi") playerimg = pygame.image.load('001-spaceship.jpg') ply = pygame.transform.rotate(pygame.transform.scale(playerimg,(space_width,space_height)),90) def draw_window(plyred): win.fill((255,0)) win.blit(ply,(plyred.x,plyred.y)) pygame.display.update() def main(): plyred = pygame.Rect(100,100,space_width,space_height) run = True while run: win.blit(playerimg,(0,0)) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False break draw_window(plyred) if __name__ == '__main__': main() 上,因为最重要的是类 plyred 而不是 Rect(这是来自 pygame.draw.rect 的函数) - ----> Here your best friend Documentation :)

  3. 另外,这是一个错误,因为 space_width,space_height 在一个元组内,所以它应该是 rect

  4. 你从不调用 pygame.Rect(100,space_height) 函数,所以一种方法是这样表达:

    if name == 'ma​​in': main()

另一个只是在脚本末尾这样调用:

main

**文档What does if name == “main”: do?


项目