如何通过在 pygame 中传递按键来操纵精灵以进行自我播放?

问题描述

我正在尝试让神经网络 (NEAT) 来学习和控制游戏,到目前为止,精灵是通过键盘控制的。

我试过 pyautogui ,没有用。

pygame.event.post 另一方面,如果从 Game 类内部传递,则可以单击字母,例如,我设置 m 用于 Game 类中的音乐,它处理成功但没有LEFTRIGHT,因为它们来自 Player 类。 最后,我尝试了一些继承,但这给了我永无止境的迭代/加载。

我知道 pygame 类非常复杂,我想任何形式的帮助解决问题。

这是我尝试解决问题的示例。

class Game(pygame.sprite.Sprite):
def __init__(self,scrn_width,scrn_height,score,..):
    super().__init__()
    'reponsible for game enviroment'
    'inits screen,inits group sprite,keeps increments score'
    self.player = Player()
    self.enemy = Enemy()
    self.player_group.add(self.player)
    self.enemy_group.add(self.enemy)
    self.score...
    
def run(self):
    pass
    
class Player(pygame.sprite.Sprite):
    def __init__(self,path = r'..\player.png'):
        super().__init__(self)
        ..
        self.image = pygame.image.load(path)
        self.rect.center = [0,0]
        
    def move(self):
        'allows'


class Controller(Player,Game):
def __init__(self):
    super().__init__()
    
def begin(self):
    Start_Game._run(self)        

    if self.score == 1:
        pyautogui.press['Left','Left','Left'] #try 1

        self.rect.top = 0 #try 2

        newevent = pygame.event.Event(pygame.locals.KEYDOWN,key=pygame.locals.K_LEFT)  #try 3
        pygame.event.post(newevent)

""" 
I would like this class to pass coordinates to update player sprite's position
based on information from Game such as score,collision,enemy.
"""

    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)