问题描述
源代码
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))
需要改进的考虑和领域
-
缩进,缩进,缩进,Python 是少数几种编程语言之一,如果您没有正确缩进(希望如此),它就会惩罚您,如果您不这样做,其他程序员也是如此,这里 - -> Indentation in Python
-
最大的问题是在变量
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 :) -
另外,这是一个错误,因为 space_width,space_height 在一个元组内,所以它应该是
rect
。 -
你从不调用
pygame.Rect(100,space_height)
函数,所以一种方法是这样表达:if name == 'main': main()
另一个只是在脚本末尾这样调用:
main
**文档What does if name == “main”: do?