微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何通过在 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 举报,一经查实,本站将立刻删除。