gpt4 book ai didi

python - 游戏代码中存在缩进问题

转载 作者:行者123 更新时间:2023-12-01 05:21:38 25 4
gpt4 key购买 nike

import pygame, sys
from pygame.locals import *

CHARSPEED = 3

pygame.mixer.init()
pygame.mixer.music.load("nq-rotmg.mp3")
pygame.mixer.music.play(-1)

FPS = 30
fpsClock = pygame.time.Clock()

pywindow = pygame.display.set_mode((500, 500), 0, 32)
pygame.display.set_caption('God of the Mad Realm')

background = pygame.image.load("Background.jpg")
background = background.convert()
pywindow.blit(background, (0, 0))
pygame.display.flip()

Assassin = pygame.image.load("Assassin_L.png")

Assassin_R.set_colorkey((255, 255, 255))
Assassin_L.set_colorkey((255, 255, 255))
assassinx = 10
assassiny = 10
pygame.key.set_repeat(10, 10)

while True:
pywindow.blit(background, (0, 0))

pywindow.blit(Assassin, (assassinx, assassiny))

for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()

if event.type == KEYDOWN:
if (event.key == K_LEFT):
Assassin=pygame.image.load('Assassin_L.png')
elif (event.key == K_RIGHT): <<<-------------------------------------
Assassin=pygame.image.load('Assassin_R.png')
elif (event.key == K_UP):
Assassin=pygame.image.load('Assassin_L.png')
elif (event.key == K_DOWN):
Assassin=pygame.image.load('Assassin_L.png')

keys_pressed = pygame.key.get_pressed()

if keys_pressed[K_LEFT]:
assassinx -= CHARSPEED

elif keys_pressed[K_RIGHT]:
assassinx += CHARSPEED

elif keys_pressed[K_UP]:
assassiny -= CHARSPEED

elif keys_pressed[K_DOWN]:
assassiny += CHARSPEED

pygame.display.update()
fpsClock.tick(FPS)

就在我放置箭头的地方,我不断收到一条错误消息:

Traceback (most recent call last):
File "Character.py", line 42, in <module>
elif (event.key == K_RIGHT):
AttributeError: event member not defined

我确信这是一个愚蠢的错误,但它确实开始给我带来麻烦。

最佳答案

您的缩进还不正确。 AttributeError 的出现是由于 event 变量没有在正确的范围内定义。你的代码...

for event in pygame.event.get():# <<<--------
if event.type==QUIT:
pygame.quit()
sys.exit()

if event.type == KEYDOWN: # <<<--------
if (event.key == K_LEFT):

if event.type == KEYDOWN嵌套for 循环下,以便 event 成为正确定义。因此,正确的代码应该是,

for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()

if event.type == KEYDOWN: # one more indented
if (event.key == K_LEFT): # corresponding appropriate indent
Assassin=pygame.image.load('Assassin_L.png')
elif (event.key == K_RIGHT):
Assassin=pygame.image.load('Assassin_R.png')
elif ...

此外,所有游戏执行代码都应位于 while True block 下。

while True:
pywindow.blit(background, (0, 0))

pywindow.blit(Assassin, (assassinx, assassiny))

for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()

if event.type == KEYDOWN:
if (event.key == K_LEFT):
Assassin=pygame.image.load('Assassin_L.png')
elif (event.key == K_RIGHT):
Assassin=pygame.image.load('Assassin_R.png')
elif (event.key == K_UP):
Assassin=pygame.image.load('Assassin_L.png')
elif (event.key == K_DOWN):
Assassin=pygame.image.load('Assassin_L.png')

keys_pressed = pygame.key.get_pressed()

if keys_pressed[K_LEFT]:
assassinx -= CHARSPEED

elif keys_pressed[K_RIGHT]:
assassinx += CHARSPEED

elif keys_pressed[K_UP]:
assassiny -= CHARSPEED

elif keys_pressed[K_DOWN]:
assassiny += CHARSPEED

pygame.display.update()
fpsClock.tick(FPS)

关于python - 游戏代码中存在缩进问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22188448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com