- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个基于网格的 2D 吃 bean 人游戏。所有图 block 的尺寸均为 8x8。在游戏中, map 图 block 被视为 16x16,角色(吃 bean 人和幽灵)被视为 32x32。实际上,它们都是从 8x8 block 的 spritesheet 中提取的。我将位置存储为每个角色的中心点。由于角色图 block 比 map 图 block 大,因此 map 的构建方式要求角色能够“重叠”到被阻挡的图 block 上。
为了解决这组问题,我创建了一个不可见的矩形并将其附加到角色的位置。如果位置是 (x,y)
点,则矩形是围绕该点的框。这个矩形在游戏中基本上是 16x16,并且位于角色的中心,这允许必要的重叠。
如果您使用 8px 作为全局移动速度,则效果很好,但我想将 8px 视为“100% 速度”,并使用 [0 范围内的 double 值来完全控制字符速度,1).位置存储为双点,因此在该级别上,这很好。不过,我将位置读回为整数,因为我正在处理像素。
所以我问的问题本质上是“如果现在向 Y 方向移动 X 像素量,我的碰撞盒会接触到被阻挡的图 block 吗?但是如果您一次移动 5px,这最终会导致非常明显的结果问题。假设你在 x = 0 处,向右移动。如前所述,游戏中的图 block 为 16x16,并且其中两个在第三个之前打开,第三个被阻止。所以你移动,x = 5,x = 10, x = 15, x = 20,我们刚刚到达第二 block ,x = 25, x = 30, x = 35 现在我们在第三 block ...但是等等。我们不能去那里,因为 X = 35 发生碰撞。不幸的是,我们需要转弯并开始向下移动,但我们不能,因为现在我们的 Y 轴没有与网格正确对齐。我们的 X 位置需要为 32,但可以't。
我想问大家的问题是,我有什么选择?您有什么想法或见解?我有一种感觉,我让事情变得比我需要的更加困难。
最佳答案
听起来你有...
为什么不给你的“吃 bean 人” Sprite 一个速度 vector ?该 vector 不仅会描述“吃 bean 人”行进的速度,还会描述其方向,这意味着您可以看到前方。
“吃 bean 人”应该根据以下对话进行计算并最终做出决定......“嘿,以这个速度朝这个方向移动......在这么多秒内我将撞到墙上,那什么时候发生?”。秒甚至不必是秒......它们可以是“正方形”。
您需要一个函数,它接受初始运动 vector (方向和速度),该函数返回 X,Y 点的坐标,“吃 bean 人”必须在该点停止,在那里他不能走得更远并且必须改变方向(与墙相邻的瓷砖的中心)。每次“吃 bean 人”改变方向时,再次运行此计算......您不需要不断检查下一个方格是否可以通过。如果他的方向没有改变并且速度恒定..你只需要计算一次,让坐标系完成剩下的工作。
通过这种方法,方 block 的大小和速度是无关紧要的......直到“吃 bean 人”击中或在他的下一个运动中超过停止点,继续沿 vector 移动。
关于java - 不同角色速度的 Pacman 碰撞检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20088215/
我正要安装一个包,但它总是失败,因为文件已经存在。由于 --force 选项已从 pacman 中删除。我一直在尝试通过 --overwrite 选项覆盖目录,但不幸的是,这个选项也不起作用 我运行的
我正要安装一个包,但它总是失败,因为文件已经存在。由于 --force 选项已从 pacman 中删除。我一直在尝试通过 --overwrite 选项覆盖目录,但不幸的是,这个选项也不起作用 我运行的
对不起各位,我不知道标题是否是解释它的最佳方式。我正在使用 libgdx 在 java 中制作 pacman 克隆。我已经在瓷砖上渲染了 map 和碰撞检测。唯一的问题是,无论发生什么情况,吃 bea
我在新的 arch 系统中使用 pacman 遇到了很多问题。我无法安装任何东西。 [root@life ~]# pacman -S pacaur 错误:找不到目标:pacaur 我已经尝试了所有方法
我有 Arch Linux 软件包 babel-cli安装(此包与包 openbabel 冲突,未 安装)。 我编写自定义 PKGBUILD: pkgname=openbabel-fake pkgve
我已经了解了 A*、BFS、DFS,并且可以很好地实现它们。但是,当我尝试解决 pacman 寻路问题时,会出现一些问题。让我们假设只有两种类型的迷宫:一种有完整的元素,因为没有空白方块,一切都是吃
我一直在尽力解决 Pacman 和墙壁之间的碰撞检测问题,但是我的实现似乎无法正常工作 碰撞检测是否有效?是的 它的行为正确吗?否 目前表现如何?当你撞到墙时,吃 bean 人就会停下来移动这没关系,
我打算从头开始用 C 语言编写 Pacman 游戏。我面临的最基本的挑战是如何同时维护多个控制流。我的意思是吃 bean 人如何移动,幽灵如何移动,分数如何更新——所有这些都是同时进行的。一般来说,这
我目前正在开发一个 C++ 项目来制作 PacMan 克隆。基本上我已经完成了游戏所做的几乎所有事情。但是我还没有想出如何实现广度优先搜索以便鬼魂追逐pacman。在过去的几天里,我阅读了很多关于 B
除了 A*、BFS、DFS 等,Pacman 中还有哪些其他常用的寻路算法/启发式算法?如果 pacman 可以找到不止一种水果,我认为我提到的方法不会起作用。 我需要一些好的寻路算法,PacMan
有人知道如何为 PACMAN ARCADE 游戏创建用例图吗?这些是一些功能: 幽灵运动与行为 当能量被吃掉时,幽灵会变成蓝色并逃离吃 bean 人 四色鬼追手 增能器和动力颗粒以及迷宫生成, 增能器
我正在尝试为 PACMAN 问题找到一个解决方案,即找到一条能吃掉大迷宫中所有点的短路径(不是最短的,而是一条好的路径)。我看到很多人在谈论 TSP、Dijsktra、BFS、A*。我不认为这是一个
Closed. This question is off-topic。它当前不接受答案。 想要改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。 已关闭
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 4年前关闭。 Improve this
我找到了this pacman 动画的代码,它可以工作,但我无法理解那里发生了什么。 因此,我尝试使用以下代码创建更简单的动画以获得相同的效果: function name2(){ $('.pac
我正在通过 pacman -Ss boost-libs 安装 C++ boost 库。安装后,我想知道我的软件包安装在系统中的哪个位置。 有没有 pacman 命令可以做到这一点? 最佳答案 我现在不
我在使用 Arco Linux(最基本的)。 我已经用 pacman 安装了 nodejs 包。 现在,当我运行 sudo pacman -Su 时,我得到 nodejs-lts-gallium 和
我在使用 Arco Linux(最基本的)。 我已经用 pacman 安装了 nodejs 包。 现在,当我运行 sudo pacman -Su 时,我得到 nodejs-lts-gallium 和
我正在编写一个基于网格的 2D 吃 bean 人游戏。所有图 block 的尺寸均为 8x8。在游戏中, map 图 block 被视为 16x16,角色(吃 bean 人和幽灵)被视为 32x32。
在使用 C# 的 Unity 中,如何使 UI 元素在到达边界时“传送”到屏幕的另一边,但不是全部都在一起? 我有一个瞄准圈,可以在屏幕上自由移动,就像在旧的“on rails”射击游戏中一样,但是当
我是一名优秀的程序员,十分优秀!