Python关于类与对象调用变量问题
本帖最后由 还差几 于 2020-8-20 16:30 编辑如何才能调用 方法move 中调用 direction变量
不知为什么代码每次复制上去只剩这个{:5_94:}完整代码在第一条回复
class Bullet3(pygame.sprite.Sprite):
def __init__(self,position):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('images/bullet1.png').convert_alpha()
self.rect=self.image.get_rect()
self.rect.left,self.rect.top=position
self.uspeed=12
self.active=False
self.mask=pygame.mask.from_surface(self.image)
direction = -1#这个是类成员变量,调用的时候需要使用类名.成员变量名
def move(self):
Bullet3.direction+=1
lspeed=(1,1,2,2,3,3,4,5,5,6,6,7,7,8,8,9,10,10,11,12,12,11,10,10,9,8,8,7,7,6,6,5,5,4,3,3,2,2,1,1)
self.rect.top -=self.uspeed
self.rect.left += lspeed
if self.rect.top<0|self.rect.left<0:
self.active=False
def reset(self,position):
self.rect.left,self.rect.top=position
self.active=True 本帖最后由 还差几 于 2020-8-20 16:28 编辑
class Bullet3(pygame.sprite.Sprite):
def __init__(self,position):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('images/bullet1.png').convert_alpha()
self.rect=self.image.get_rect()
self.rect.left,self.rect.top=position
self.uspeed=12
self.active=False
self.mask=pygame.mask.from_surface(self.image)
direction = -1#这里明明已经定义
def move(self):
global direction
direction+=1#但在这却报错 NameError: name 'direction' is not defined 名称错误:未定义名称“direction”
lspeed=(1,1,2,2,3,3,4,5,5,6,6,7,7,8,8,9,10,10,11,12,12,11,10,10,9,8,8,7,7,6,6,5,5,4,3,3,2,2,1,1)
self.rect.top -=self.uspeed
self.rect.left += lspeed#还有这,同上
if self.rect.top<0|self.rect.left<0:
self.active=False
def reset(self,position):
self.rect.left,self.rect.top=position
self.active=True
页:
[1]