问题标签 [chipmunk]

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.

0 投票
1 回答
1424 浏览

cocos2d-iphone - 如何使用 Cocos2d、TMXTiledMaps 和 Chipmunk 实现移动平台

我在 Cocos2d 游戏中取得了缓慢但稳定的进展,但我一直在创建移动平台。

主角需要物理和碰撞检测,因此是花栗鼠的形状/身体。我编写了一个类来迭代 TMXTiledMap 以减少花栗鼠空间中的身体数量。所以有了这样的地图

不是有 5 个单独的实体(rects),而是有两个实体,一个是三格宽,另一个是两格高。

我已经设法使代码能够识别哪些图块是移动平台的一部分,并根据需要移动图块。

但是,身体需要与瓷砖一起移动才能正常工作。这就是我卡住的地方。物体是静态的,所以...

platformShape->body->p = cpv(x,y);

不做任何事情(我猜这是预期的行为)。

但是,如果我将它们的质量设置为静态以外的任何值,所有的物理特性都会发挥作用,并且物体的行为不会像预期的那样,或者它们的行为是否完美取决于你如何看待它。当它们撞到另一个身体(例如:主角)时,它们会不规律地移动并旋转。我所追求的是典型的移动平台类型,你会期望在一个典型的平台游戏中找到,它可以在任何给定的方向上平稳移动。

我的问题是;以前有没有人实现过这样的东西,你的技术是什么?或者,如果你要实现这样的东西,你会怎么做?

相关代码在这里。我把它放在一个 pastebin 里,因为我认为这更像是一个概念上的误解,而不是其他任何东西。

0 投票
1 回答
92 浏览

iphone - 如何摆动堆栈对象?

我想堆叠对象,例如 iPhone 和 Tower Bloxx 的独家游戏。我想根据加速度计将该堆栈向左和向右移动。我正在尝试通过使用花栗鼠来做到这一点。我可以堆叠,但当它从左向右移动时,我无法摆动该堆叠,反之亦然。

如果有人知道,请帮助我。

提前致谢

0 投票
4 回答
554 浏览

iphone - c和objective-c变量

让我看看我是否能清楚地表达我正在尝试做的事情......我将把它提炼到核心问题。

我有一个objective-c 程序和ac 回调函数。上下文是我在 iphone sdk 中使用 cocos2d 和花栗鼠物理。我想做的是在子弹和怪物发生碰撞时更新“分数”。除了更新分数外,一切正常。

游戏逻辑在 obj-c 中,但实际的碰撞逻辑在 ac 函数中完成,当事情发生碰撞时会调用该函数。例如,我在那里渲染了碰撞的火焰/爆炸。我也想更新分数。

这就是问题所在:但 score 是“GAME”对象的一个​​实例变量,我无法看到该实例变量。我想我可以通过引用将另一个参数传递给 c 函数,称为 &addscore 或其他东西,但我想知道是否有更明显的方法可以做到这一点,因为除了“分数”之外可能还有一堆其他变量必须在碰撞。

网络是我需要对象中的变量才能被 c 函数看到,反之亦然:那些在函数中设置的变量才能在对象中看到。

提前致谢。

0 投票
1 回答
434 浏览

iphone - Cocos2d和花栗鼠如何模拟深度?

我正在开发一个游戏,它打算扔一个物体,但不是让它被水平扔,我想模拟它沿着我的游戏中模拟深度的假想 z 轴扔。类似于任天堂的猎鸭游戏。有人可以指出我正确的方向来实现这一点吗?我的第一个想法是实现一系列“地板”来放置对象并使对象逐渐变小并沿 y 轴向对象施加力。这是否接近可能的方法?我以前从来没有做过这样的事情。任何帮助将不胜感激。

谢谢你。

-奥斯卡

0 投票
2 回答
1831 浏览

cocos2d-iphone - 弹丸运动计算与花栗鼠动力学

我需要实现一点 Ai,它可以向刚体施加脉冲以击中目标。就像从大炮发射的炮弹一样。我正在使用 Chipmunk Dynamics 作为物理引擎。

我的数学很糟糕,我的物理也很糟糕,但我一直在阅读,在 SO 的帮助下,以及来自这个维基百科条目的以下内容,我得到了这个

这应该给我一个角度,我可以从中计算发射弹丸所需的水平和垂直速度。

但是,它不起作用,这并不让我感到惊讶,原因有很多。首先是因为我的数学和物理很差,但也因为我对其他几件事感到困惑。

  1. 这种方法似乎没有考虑质量。应该是?我会认为这很重要吗?但是后来,我在大学学习艺术,所以我可能错了。

  2. Box2d 有 PTM_RATIO,但我在花栗鼠中找不到类似的东西,那么我的值如何与花栗鼠中的空间坐标对应?

  3. 我知道弧度以及它们在度数上的差异,以及如何在两者之间进行转换。但是我应该在这里使用哪个?我应该将角度 1 和角度 2 转换为度数吗?即使我这样做了,它仍然不起作用。

总之,关于物理和花栗鼠的知识有很多我不明白的。所以我在这里,寻求帮助。

花栗鼠中有什么东西可以用来解决这个问题,或者如果有人不得不自己解决这个问题,我真的很感激一些帮助。

0 投票
2 回答
5045 浏览

iphone - 花栗鼠碰撞检测

我对花栗鼠完全陌生,我刚刚使用它几天,所以我猜这很明显,但是我找不到任何文档。花栗鼠中是否有任何回调或方法告诉您 2 个给定的形状发生了碰撞?

如果不是在精灵上简单地使用 cgrectcontains 的最佳方法?

-奥斯卡

0 投票
2 回答
351 浏览

iphone - 花栗鼠的速度条件碰撞?

我正在用 cocos2d 做一个游戏,并使用花栗鼠来管理物理。我想要实现的是几乎每一个任天堂游戏都可以让你的角色跳跃并停留在更高的楼层(碰撞形状)而不会引起碰撞,只要速度为正,而一旦速度为负,碰撞确实发生了。

基本上我想根据速度值来调节 2 个形状之间的碰撞。谁能指出我如何实现这一点的正确方向?谢谢你。

-奥斯卡

0 投票
2 回答
1831 浏览

objective-c - 如何从 void 指针记录数据和类型?

我有以下代码:

你们中的一些人可能会从 iPhone 开发中使用的 Chipmunk 物理框架中认出它。基本上我在这里崩溃是因为我在其他关于 cpSpace 的代码中所做的事情,但我想弄清楚这里发送了什么对象类型并导致我的 NSLog 语句崩溃(并造成其他破坏)。

将类型和/或内容从 void 指针转储到 NSLog 调用的最佳方法是什么?

0 投票
3 回答
17821 浏览

cocos2d-iphone - Cocos2d + Box2d 或 Chipmunk

好的,我正在尝试制作我在这里制作的游戏的 iphone 版本http://scratch.mit.edu/projects/techy/781198是 box2d 或花栗鼠更好,每个都有一些教程

0 投票
1 回答
902 浏览

x11 - 获取 GLUT 程序的 X 窗口 ID?或者,如何远程控制 X 上的 GLUT 程序?

我想向 X11 上的 GLUT 程序发送击键,但我找不到 X11 客户端连接到 GLUT 程序。

我这样做,使用花栗鼠 2d 物理包的最优秀的演示程序:

并没有什么区别。

我最终的希望是我可以通过发送关键事件来控制 GLUT 程序,相当于:

所以我的问题:

  1. 如何远程控制在 linux/X11 上运行的 GLUT 程序?
  2. 有没有办法为 GLUT 程序获取 X11 窗口 ID?