【问题标题】:Detecting sprite object within a sprite group on collision在碰撞时检测精灵组中的精灵对象
【发布时间】:2014-04-07 01:28:37
【问题描述】:

我是 pygame 的新手,我正在开发一款分布式点对点多人游戏。我尝试执行以下操作,但我无法弄清楚如何。

我有一个玩家类和一个敌人类。玩家和敌人都是不同精灵组的一部分。假设在一个 4 人游戏中,有一个玩家对象和 3 个敌方对象,当玩家开火时,我使用 spritecollide 方法检查与敌方精灵组的碰撞。但我想具体确定在精灵组中哪个敌人被击中。我完全无法弄清楚。这甚至可能吗?

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    听起来敌人对象和玩家对象可以做同样的事情,也许您应该为enemyplayer 提供一个通用类。

    这可以称为例如creature 类。然后根据creatureenemy 还是player,您可以使用EnemyAI 类或UserInput 类来控制它。

    至于识别谁被击中,您可以在声明新的creature 时定义的每个creature 类中轻松添加name 变量。然后,当您评估命中时,您可以让函数返回被命中的creaturename

    【讨论】:

    • 我为每个类设置不同类的原因是,玩家将被本地控制,而敌方对象的位置和他们的动作将由其他玩家通过网络更新。当他们执行动作时进行游戏。我不太明白最后一部分。例如,假设我有一个扩展 pygame.sprite.Sprite 的enemyAI 类。在这个类中,我必须覆盖更新函数,并且在这个更新函数中,我会检查与敌人精灵组的碰撞。如何识别组内对象的名称?
    • @user3416372,我不会将该生物扩展为 EnemyAI,我只会给它一个您想要控制的生物的引用,以及它必须与之战斗的其他生物的列表。这样每个玩家或敌人都可以根据自己的观点进行评估。然后将这个生物列表放在一个主要更新中,它将控制诸如移动和绘图之类的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多