0

源代码

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, 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:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
        plyred += 1
    
    draw_window(plyred)
    
    pygame.quit()

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

4

1 回答 1

0

首先,代码有很多错误,无论如何,这至少应该告诉你一些东西:

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, 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()

您应该改进的注意事项和领域

  1. 缩进,缩进,缩进, Python是少数编程语言之一,如果你没有正确缩进(希望如此),它会惩罚你

  2. 最大的问题是变量plyred,因为最重要的是类Rect而不是rect(这是来自 pygame.draw.rect 的函数)----->这是你最好的朋友文档 :)

  3. 此外,由于 space_width, space_height 在元组内,因此会出现错误,因此应该pygame.Rect(100, 100, space_width, space_height)改为。

  4. 您永远不会调用该main函数,因此一种方法是这样表达:

    如果名称== '主要': main()

另一个只是在脚本末尾这样称呼它:

main()

**文档if name == “<strong>ma​​in”: 做什么?


项目

于 2021-01-18T19:25:15.560 回答