我的Python pygame的代碼無法正常工作,它顯示'雪碧' 對象有沒有屬性 'K'
AttributeError: 'Sprite' object has no attribute 'k'
import pygame, sys
from pygame.locals import *
screen_width=1360
screen_height=768
screen = pygame.display.set_mode([screen_width,screen_height])
class Sprite:
def p(self):
self.s = pygame.Rect(160, 150, 50, 50)
self.k = pygame.Rect(160, 200, 500, 50)
return s.colliderect(k)
while True:
s1 = Sprite()
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit(0)
pressed = pygame.key.get_pressed()
if pressed[pygame.K_d]:
s1.k.x += 1
if pressed[pygame.K_a]:
s1.k.x -= 1
if pressed[pygame.K_w]:
s1.k.y -= 1
if pressed[pygame.K_s]:
s1.k.y += 1
if s1:
s1.k.x = 200
screen.fill((0, 0, 0))
square = pygame.draw.rect(screen, (0, 0, 255), s1.k)
sprite = pygame.draw.rect(screen, (200, 0, 0), s1.s)
pygame.display.flip()
這是我的調試信息:
line 33, in s1.k.x = 200
AttributeError: 'Sprite' object has no attribute 'k'
'如果你打電話'p'第一Sprite'不僅具有屬性'k'。 –
@CoryMadden當我嘗試做s1.p.k.x它顯示我AttributeError:'函數'對象沒有屬性'k' – Maksymilian
'p'是一種方法。你必須這樣稱呼它。 's1.p()'然後's1.k.x'。但請閱讀@蝙蝠俠的回答。我很確定這就是你想要做的。 –