【发布时间】:2021-05-04 19:09:50
【问题描述】:
我检查了与我相同的错误,但这是一个初始化问题。所以我确定我做了初始化 我使用了 pygame.init() 但发生错误。我不明白这一点。 所以我在下面的代码中指定了 Pycharm IDE 告诉我的位置。帮帮我
import pygame
import random
BLACK=(0,0,0)
pad_width=480
pad_height=640
fight_width=36
fight_height=38
enemy_width=26
enemy_height=20
def drawObject(obj,x,y):
global gamepad
gamepad.blit(obj,(x,y))
def runGame():
global gamepad,clock,fighter,enemy
x=pad_width*0.45
y=pad_height*0.9
x_change=0
enemy_x=random.randrange(0,pad_width-enemy_width)
enemy_y=0
enemy_speed=3
ongame=False
while not ongame:
for event in pygame.event.get(): #I got an error here
if event.type ==pygame.QUIT:
ongame=True
if event.type==pygame.KEYDOWN:
if event.key==pygame.K_LEFT:
x_change-=5
elif event.key==pygame.K_RIGHT:
x_change+=5
if event.type==pygame.KEYUP:
if event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT:
x_change=0
gamepad.fill(BLACK)
x+=x_change
if x<0:
x=0
elif x>pad_width-fight_width:
x=pad_width-fight_width
drawObject(fighter,x,y)
enemy_y+=enemy_speed
if enemy_y>pad_height:
enemy_y=0
enemy_x=random.randrange(0,pad_width-enemy_width)
drawObject(enemy,enemy_x,enemy_y)
pygame.display.update()
clock.tick(60)
pygame.quit()
def initGame():
global gamepad,clock ,fighter,enemy
pygame.init()
gamepad=pygame.display.set_mode((pad_width,pad_height))
fighter=pygame.image.load('fighter.png')
enemy=pygame.image.load('enemy.png')
clock=pygame.time.Clock()
initGame()
runGame() #and here
【问题讨论】:
-
如上评论所说,当我添加那个sys.exit(0)时,并没有出现错误,而是一执行就关闭了。
-
不知道为什么这个链接中的代码可以正常工作(书中的源代码),而我的代码只要按照书上的就不行。github.com/SuperGeniusAn/Practice_Python/blob/main/…
标签: python python-3.x pygame init