Python 来自玩家类的变量赢得';我不能在敌方班工作
我上了两个班:一个玩家班和一个敌人班。我想让敌人跟着玩家到处走。 要做到这一点,我需要从玩家类中获取当前玩家位置,并在敌人类中使用它。 但那不行,我不知道该怎么办 以下是代码:Python 来自玩家类的变量赢得';我不能在敌方班工作,python,pygame,Python,Pygame,我上了两个班:一个玩家班和一个敌人班。我想让敌人跟着玩家到处走。 要做到这一点,我需要从玩家类中获取当前玩家位置,并在敌人类中使用它。 但那不行,我不知道该怎么办 以下是代码: class Player(): def __init__(self,xPlayer,yPlayer): self.xPlayer = xPlayer self.yPlayer = yPlayer def display(self): pl
class Player():
def __init__(self,xPlayer,yPlayer):
self.xPlayer = xPlayer
self.yPlayer = yPlayer
def display(self):
playerRect = pygame.Rect(self.xPlayer,self.yPlayer,25,25)
pygame.draw.rect(screen,(255,0,255),playerRect)
def move(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
self.xPlayer = self.xPlayer + velPlayer
if keys[pygame.K_LEFT]:
self.xPlayer = self.xPlayer - velPlayer
if keys[pygame.K_DOWN]:
self.yPlayer = self.yPlayer + velPlayer
if keys[pygame.K_UP]:
self.yPlayer = self.yPlayer - velPlayer
player1 = Player(100,100)
#------------------------------------------------------------------------
class Enemy(Player):
def __init__(self,xEnemy,yEnemy):
self.xEnemy = xEnemy
self.yEnemy = yEnemy
def display(self):
enemyRect = pygame.Rect(self.xEnemy,self.yEnemy,25,25)
pygame.draw.rect(screen,(255,0,0),enemyRect)
def move(self):
if xPlayer < xEnemy:
xEnemy = xEnemy - velEnemy
if xPlayer > xEnemy:
xEnemy = xEnemy + velEnemy
if yPlayer < yEnemy:
yEnemy = yEnemy + velEnemy
if yPlayer > yEnemy:
yEnemy = yEnemy - velEnemy
enemy1 = Enemy(200,200)
#--------------------------------------------------------------------------
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
ecranAlb()
player1.move()
player1.display()
enemy1.move()
enemy1.display()
pygame.display.flip()
class Player():
定义初始化(self、xPlayer、yPlayer):
self.xPlayer=xPlayer
self.yPlayer=yPlayer
def显示(自):
playerRect=pygame.Rect(self.xPlayer,self.yPlayer,25,25)
pygame.draw.rect(屏幕,(255,0255),playerRect)
def移动(自我):
keys=pygame.key.get_pressed()
如果键[pygame.K_RIGHT]:
self.xPlayer=self.xPlayer+velPlayer
如果键[pygame.K_左]:
self.xPlayer=self.xPlayer-velPlayer
如果键[pygame.K_DOWN]:
self.yPlayer=self.yPlayer+velPlayer
如果键[pygame.K_UP]:
self.yPlayer=self.yPlayer-velPlayer
player1=玩家(100100)
#------------------------------------------------------------------------
职业敌人(玩家):
定义初始化(self、xEnemy、yEnemy):
self.xEnemy=xEnemy
self.yEnemy=yEnemy
def显示(自):
enemyRect=pygame.Rect(self.xEnemy,self.yEnemy,25,25)
pygame.draw.rect(屏幕,(255,0,0),enemyRect)
def移动(自我):
如果xPlayerxEnemy:
xEnemy=xEnemy+velnemy
如果yPlayeryEnemy:
是的,是的
敌人1=敌人(200200)
#--------------------------------------------------------------------------
运行=真
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
ecranAlb()
player1.move()
player1.display()
enemy1.move()
enemy1.display()
pygame.display.flip()
敌人
不得来自玩家
职业。将玩家
类的实例传递给敌人
类的移动
方法:
职业敌人(玩家):
定义初始化(self、xEnemy、yEnemy):
self.xEnemy=xEnemy
self.yEnemy=yEnemy
def显示(自):
enemyRect=pygame.Rect(self.xEnemy,self.yEnemy,25,25)
pygame.draw.rect(屏幕,(255,0,0),enemyRect)
def移动(自身,玩家):
如果player.xPlayerself.xEnemy:
self.xEnemy+=velnemy
如果player.yPlayerself.yEnemy:
self.yEnemy-=敌人
running=True
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
ecranAlb()
player1.move()
player1.display()
enemy1.移动(玩家1)#