gpt4 book ai didi

java - 游戏开发中的几种敌人 Action

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:49 26 4
gpt4 key购买 nike

我正在使用 LibGDX 作为主要库,用 Java 编写一个简单的射击游戏。我希望游戏中的任何敌人都可以执行任何类型的 Action ,无论其类型如何。当试图将 AI 的运动逻辑与每个敌人类别隔离时,就会出现问题。

更形象的例子:

  1. Mov A:线性,从上到下。
  2. Mov B:追逐玩家角色
  3. Mov C:出现,开枪然后逃跑。

敌人:

  1. 蜘蛛。执行 Action A
  2. 另一只蜘蛛。执行Move B
  3. 总结一下:无论敌人如何,都能够分配 Action 。

最好的方法是什么?

最佳答案

使用实体系统库,如 https://github.com/libgdx/ashleyhttps://github.com/junkdog/artemis-odb .

然后您将创建系统:

  1. 线性顶部底部运动系统
  2. ChasePlayerMovementSystem
  3. ShowUpSystem
  4. ShootSystem(您可能还需要一个BulletMovementSystem)
  5. FleeSystem

然后创建组件:

  1. LinearTopBottomMovementComponent
  2. ChasePlayerMovementComponent
  3. ShowUpComponent
  4. ShootComponent
  5. FleeComponent

当你创建敌人(实体)时:

  1. 带有 LinearTopBottomMovementComponent 的蜘蛛实体
  2. 另一个带有 ChasePlayerMovementComponent 的蜘蛛实体
  3. 带有 ShowUpComponent 的蜘蛛实体
  4. 在处理 ShowUpComponent 后(由 ShowUpSystem),删除此组件并添加 ShootComponent
  5. 在处理 ShootComponent 后(由 ShootSystem),删除此组件并添加 FleeComponent

这允许您使用所有可能的组件组合来创建敌人,并且您可以将多个组件添加到一个实体。

如果您决定添加圆形移动和永久射击敌人。只需创建 CircleMovementComponentPermanentFireComponent 以及相应的系统即可。

关于java - 游戏开发中的几种敌人 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com