问题标签 [game-ai]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
finite-automata - 街机格斗游戏 AI
我需要在街机风格的格斗游戏中为对手构建 AI,非常类似于真人快打。
我不想对计算机使用随机动作,但我想要一个更难击败的 AI。
我可以从哪里开始寻找资源?您知道此类项目的任何实施吗?
python - 游戏ai Line of Sight Python
我如何检查玩家是否在暴徒的范围内?(我正在 pyglet 中制作一个自上而下的游戏)我正在制作它,以便如果玩家在一定距离内,小怪会跟随并攻击玩家,但我不确定如何有效地做到这一点。我需要做一个“if”语句来查看 x > mob.x - 50 和 x < mob.x + 50 等吗?
我有一个针对暴徒的课程
然后我使用了几个函数作为他们可以做的不同动作
玩家的位置是“player.x”和“player.y”(对于小怪来说相同,但用“zombie而不是player”)
正如 Joran 所说,我认为找到生物与玩家坐标之间的距离是最好的方法,我将制作另一个函数来检查距离。
抱歉,如果不清楚
visual-c++ - C++/OpenGL国际象棋游戏程序设计建议
我正在制作一个用 OpenGL 渲染的国际象棋游戏。
我不是在找人来告诉我所有的答案,我想自己弄清楚代码,但我真正需要的是指出正确的概念。在这一点上,我不知道从哪里开始。这是我发现的:
一个枚举,TurnState
,具有以下值:
playerOneTurn
playerTwoTurn
Stopped
一个枚举,GameState
,具有以下值:
playerOneCheck
playerTwoCheck
playerOnecCheckMate
PlayerTwoCheckMate
InitializingGame
Tie
NormalPlay
一个抽象类 ,Player
和一个子类 , Computer
。
具有以下字段的类ChessGame
:
具有以下字段的类Move
:
具有以下字段的类Location
:
一个类, ChessBoard
, 有一个方法, isValid
, 它接受 aMove
并检查移动是否有效。
具有以下方法的抽象类ChessPieces
:
以及以下子类:
Pawn
Rook
Queen
King
Knight
python - 高效的碰撞检测
我在 2d 游戏中使用 python 和 pyglet,但在碰撞检测中遇到了问题。我检查碰撞的代码如下所示:
它检查与每个精灵的距离,其中“目标”是另一个精灵。我不确定的是“我应该检查所有精灵之间的碰撞吗?” 我有超过 200 个小怪(我希望在成品中更多),当检查碰撞时它变得无法播放。有没有办法只检查一定距离内的精灵而不会失去速度?
编辑:
我在 google 上进行了阅读,发现很多速度都花在了相同的碰撞上。即 sprite1 用 sprite2 检查, sprite2 用 sprite1 检查。所以我对检查碰撞功能进行了一些更改,它现在运行得更快但仍然低于 20 fps
(它可能包含一些低效的代码/无用的东西。我玩了一下)
编辑2:
我决定使用 rabbyt 作为精灵库。碰撞又快又容易。我将^^上面的代码替换为:
这将返回一个包含碰撞对象的列表列表(我不确定这是否是正确的术语)。我仍在研究如何将其转换为“如果碰撞:”类型声明,但我正在取得进展。如果有人遇到类似情况,我建议使用 rabbyt。
python - 如何从敌人那里找到玩家所在的方向?
我已经设法使用以下代码(python 和 pyglet)让敌人 AI 向玩家移动:
但是我不确定如何旋转敌人的精灵,让他们面对玩家。我很确定我可以使用上面的一些代码并相应地旋转播放器,但我无法找到一种可行的方法。
java - 游戏编程ai:爬墙寻找玩家?
我一直在研究这种人工智能方法。int
如果一堵墙挡住了通往玩家的道路,它基本上有一个敌人可以去的每个方向。这在大多数情况下不起作用。有时敌人会穿过它无法穿过的裂缝。其他时候,它会卡在有明显缝隙的墙上。我将附上我的代码,但如果它看起来效率太低或者不是解决它的方法,我不反对完全改变我的方法。我只是想知道这些事情是如何正常完成的,以便我可以以更好(并且有效!)的方式实现它。
我的代码:
java - 使用线性坐标检查 AI
我正在研究一些人工智能,我希望我的人工智能不会遇到给定的坐标,因为这些是墙/边界的参考。
首先,每次我的 AI 撞墙时,它都会引用那个位置 (x, y)。当它击中同一面墙三次时,它使用线性检查点来“想象”有一堵墙穿过这些坐标。
我现在想阻止我的 AI 再次进入那堵墙。
为了检测我的坐标是否成直线,我使用:
如果给定的点彼此线性,则返回 true。
所以我的问题是:
如何确定我的机器人是否正在从其当前轨迹接近墙壁?
不是 Java 的“想象”,而是从 1 到 3 的一条线。但是要“想象”一条线一直穿过这些线性坐标,直到无穷大(或接近)。
我有一种感觉,这将需要一些令人困惑的三角函数?
java - 如何将 AI 写入我的应用程序
嘿,我正在编写一个 android 应用程序来玩一个简单的纸牌游戏(Dutch Blitz) 我已经制作了一个简单的算法,但我想知道我是否需要将 AI 作为新线程运行或以某种方式将其集成到主线程中,或者如果其他人有一些好主意,我很想听听他们...
感谢您的任何想法!
java - Snake AI 怪异动作(错误动作)
所以,我用人工智能创建了我自己的蛇游戏,但现在我有非常非常奇怪的蛇动作。
所以,我的算法是:
- 获取地图:1 - 路径清晰,0 - 没有路径(墙壁,蛇)
- 获取水果位置
- 获取 SnakeAI 头部位置
- 将其发送到 A* 算法(正常工作)
- 获取路径(点阵;end为水果位置,start为snakeAi头部)
- 设置snakeAI的方向
所以,我在一周左右与那个错误的动作作斗争,我真的不知道错误在哪里。尤达大师,帮帮我。
java - Java Slick使字符旋转到选定的度数
我在编写游戏时遇到了问题。我正在使用 Slick 库和轻量级 Java 游戏库。我试图让我的玩家(飞机)去地图上的某个区域。例如,如果我将目标坐标设置为 (50,50),我的飞机将在 X 上转到 50,然后在 Y 上转到 50。但我被困在旋转中。我试图让我的飞机旋转到 90 度,就像玩家控制它时那样,所以我不想只设置我希望它以正常速率(0.2*delta)旋转的旋转,直到它达到 90 度。
下面的代码仅在飞机当前向左旋转时才有效。
这是我当前的代码。
它目前的作用:如果飞机向左旋转超过 90 度并且 AI 开启,那么它将慢慢将其旋转到 0 度。这是我不明白的。
我试图让它做的事情:如果飞机向左旋转超过 90 度,则将飞机旋转到 -90 度然后停止。