我知道我之前发过,但这次我希望能够真正理解我的代码的所有基础知识,并希望能更好地理解类。知道我对课程缺乏经验,所以很多这些都是非常愚蠢的东西。这是我的代码
class Player(pygame.sprite.Sprite):
def __init__(self):
global player
pygame.sprite.Sprite.__init__(self)
self.pos=(350,200)
self.image=pygame.image.load("arrowtest.png").convert()
self.rect=self.image.get_rect()
screen=pygame.display.get_surface()
self.area=screen.get_rect()
self.speed=10
self.state="still"
self.reinit()
我有一个
player = Player()
在我的主循环开始时
我的blit是
screen.blit(player.image, player.pos)
我解决了这个问题,但现在我的问题是当我使用一个函数来调整精灵的角度时。在我的播放器类中是这个
def angleplayer(self):
mouse_pos=pygame.mouse.get_pos()
dx=mouse_pos[0]-player_x
dy=mouse_pos[1]-player_y
rads=math.atan2(-dy, dx)
rads %= 2*pi
angle = math.degrees(rads)
print angle
rot_player.image=pygame.transform.rotate(player.image, angle-90)
但是当我尝试使用它时,例如
if event.type == pygame.KEYDOWN:
angleplayer()
它表示没有定义角度播放器。
我猜测答案会相当简单,但期待它。
谢谢
答案 0 :(得分:1)
这意味着当前范围内没有函数angleplayer
。
由于angleplayer
函数是Player
类的一部分,因此必须通过该类的实例调用它。
if event.type == pygame.KEYDOWN:
player.angleplayer()
(您没有显示完整的代码,我猜这里可以访问player
。)