= 825) && (playerPosX = 17-6ren">
gpt4 book ai didi

java - Java 游戏中的边界, "professionals"是怎么做到的?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:29:41 28 4
gpt4 key购买 nike

专业人士如何在 2D 游戏中设置边界?我的做法是说我不想让 Sprite 移动到某个区域:

//Example
if ((playerPosX >= 825) && (playerPosX <= 910)&& (playerPosY >= 170) && (playerPosY <= 255)) {
//do nothing
}else{
//move
}

但是有些游戏有很多界限,所以我想知道是否有更简单的方法。我不认为有人会在整个游戏中使用上述方法,只是为了阻止移动。

编辑:我的问题主要是关于一个你可以四处走动的游戏,类似于口袋妖怪或最终幻想

最佳答案

这取决于游戏。

  • 在基于网格的游戏中,当 Sprite 移动时,您通常会在网格中查找,以检查它是否已移动到“阻塞”区域。如果是这样,检测碰撞和/或对 Sprite 执行一些纠正运动。这既简单又高效,唯一的问题是它限制了您围绕网格结构设计关卡/场景。
  • 在具有非常动态环境(例如,大量移动的小行星)的游戏中,您通常会有一个基于空间分区(例如,四叉树)的碰撞检测系统,用于检测任意对象之间的碰撞.每个对象通常都有一个边界框
  • 在具有由 vector 定义的复杂但固定几何形状的游戏中,您可以预先计算 BSP 树并将其用于快速检测与场景的碰撞。这种技术在 3D FPS 游戏中很常见,但它也适用于 2D。

许多游戏实际上会使用上述的组合:例如例如,固定场景的 BSP 树和由物理子系统管理的动态对象的四叉树。

关于java - Java 游戏中的边界, "professionals"是怎么做到的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14080005/

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