Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 来自玩家类的变量赢得';我不能在敌方班工作_Python_Pygame - Fatal编程技术网

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)#