问题标签 [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 回答
215 浏览

objective-c - 使用 iterateFunc 调用目标 c 方法

使用 spacemanager,我需要在每一步之后对选定的主体执行一个操作,所以我认为为 iterateFunc 定义我自己的 C 函数将是可行的方法。

一切都很好,除了我不确定如何在同一个类中调用 obj c 方法。换句话说,一个 obj c 类既包含替换 iterateFunc 的 c 函数,也包含需要调用的方法。我不知道如何告诉 c 函数“自我”是什么,以便我可以调用该方法。据我所知,没有办法将任何额外信息传递给新的 iterateFunc。

有什么想法,或者更好的处理方式吗?

更新:

感谢您的回复。声明一个新的 spacemanager,可以重新定义它的 iterateFunc:

在同一个类中,可以声明一个“doThisFunc”函数。

在 spacemanager 中,这iterateFunc是从“step”方法调用的:

所以我的第一个想法是继承spacemanager,并在我的自定义步骤方法中,cpSpaceHashEach使用我自己的类而不是self(即spacemanager)调用。到了一半,我意识到我什至不必这样做,因为我需要做的只是子类化和定义我自己的 step 方法。我的新步骤方法:

谢谢,bbum 你的回答,并帮助我在未来提出更好的问题。

0 投票
2 回答
526 浏览

iphone - 检查花栗鼠物理中的碰撞速度

我正在使用带有 Cocos2D 的 iPhone 版 Chipmunk 5。在两个特定对象之间发生碰撞时,我想运行一个方法来检查该碰撞的速度,如果超过 x 则运行一组代码,如果低于 x 则运行另一组代码。

现在,我了解了基础知识,但我无法计算出运行碰撞检测方法的代码以及检查冲击速度的代码。

任何帮助或指示将不胜感激。

干杯。

0 投票
2 回答
796 浏览

cocos2d-iphone - Cocos2D 小行星

在学校我必须为我的 iPod touch 制作一个游戏,我选择做一个小行星游戏。我刚开始使用 cocos2d,但已经阅读了 wenderlich 博客。我想在我的游戏中使用花栗鼠,我想要船的真实运动。是否有关于创建小行星运动的教程?

谢谢。

0 投票
1 回答
418 浏览

c - 如何将 SpaceManager cpShape 存储在类似数组的位置?

我正在尝试使用 Cocos2d 和 Chipmunk(通过 SpaceManager)创建一个柔软的球,使用一堆 rects 全部链接在一起,然后用弹簧连接到一个中央主体。

像这些例子

但是为了做到这一点,我认为我需要在创建它们之后将所有 cpShapes 存储在一个数组中,这样我就可以循环遍历数组以将它们与约束链接在一起。

但是,当我尝试将 cpShapes 放入数组时,我收到一个错误消息,告诉我它是“不兼容的指针类型”。所以......我要么需要使用数组以外的东西(我已经尝试过一个集合,但也没有用)或者我需要对形状做一些事情以使其兼容......但是什么?或者我需要另一种方法。

有任何想法吗?

这是到目前为止的代码应该是相关的......

0 投票
1 回答
555 浏览

physics - 射弹在其路径的顶点命中坐标

我有一个弹丸,我想通过其路径顶点的特定坐标。我一直在使用 giogadi在这里概述的一个极好的方程,将它产生的速度值插入花栗鼠的 cpBodyApplyImpulse 函数中。

该等式有一个我无法弄清楚的缺点。它仅在我想要击中的坐标值高于大炮(我的射弹开始的地方)时才有效。这意味着我不能以向下的角度拍摄。

任何人都可以帮我找到一个合适的方程,无论目标与大炮的关系在哪里?

0 投票
1 回答
4277 浏览

cocos2d-iphone - 附加到静态主体时更改 CCSprite 锚点

我正在花栗鼠中创建一个静态形状(使用 SpaceManager)并将 cpCCSprite 附加到它。

但是,我需要精灵的锚点偏离中心,但是当我更改精灵的锚点时,形状和精灵不再对齐。

所以如果我像这样改变锚点

相应地绘制了精灵,但我希望形状会随之“移动”。这是我的意思的图片。

大炮的外观 http://www.tomelders.com/bin/cannon.png

左边是正确对齐的形状和精灵。我没有改变锚点。

右边是带有锚点的精灵ccp(0.5, 0.3)

我也在每帧重新散列静态形状。

这是它的创建方式

0 投票
2 回答
544 浏览

cocos2d-iphone - 使用 Chipmunk 身体位置驱动 Cocos2D Parallax

我在 Cocos2D 中使用带有 SpaceManager 的 Chipmunk。我有一个随着脉冲移动的身体,我希望能够使用那个身体位置来驱动 Cocos2D 中的视差节点。

因此,当身体“a”向左移动时,视差随之而来,但具有较小的时间偏移或弹性效应。如果您了解 AS3 和 Flash,则可以将其视为使用影片剪辑的 x 和 y 位置来驱动不断更新的补间并具有缓出效果。这就是我想要实现的目标,昨晚没睡觉试图解决这个问题后,我决定问你更有经验的人:)

谢谢。

0 投票
1 回答
569 浏览

cocos2d-iphone - 花栗鼠的身体随着视差移动?

我正在使用 Cocos2D、SpaceManager 和 Chipmunk。我有一个有 4 层的视差节点,这与可玩的花栗鼠身体的位置有关。该物体需要与其中一个视差层上的静态物体发生碰撞,静态物体必须从屏幕开始,然后移动到屏幕并发生碰撞。

我知道你不应该用花栗鼠移动静态物体,除非你重新哈希。但是,每秒重新散列 60 次以跟上帧速率似乎很混乱。谁能想到另一种方法来做到这一点?

干杯。

0 投票
1 回答
2298 浏览

iphone - 花栗鼠:如何去除形状和身体?

首先,对不起我的英语,我不是美国人。我的问题是如何从空间中移除形状和身体,这与碰撞检测无关。我试图通过触摸事件来做到这一点,特别是我正在尝试清除一个触摸它的球(我在空间中有很多球),但我不知道该怎么做,我一直在寻找互联网和找不到任何关于如何做的帮助,所有这些都与碰撞有关,这不是我需要的。

我阅读了很多次文档,但没有包含任何有用的信息如何做到这一点。只有如何用碰撞删除。我知道如何用碰撞删除:

静态 void postStepRemove (cpSpace *space, cpShape *shape, void *data) {

}

静态 int 冲突(cpArbiter *arb,cpSpace *space,void *data){

}

我将它与碰撞一起使用,但我需要一些没有碰撞的示例。

0 投票
1 回答
1011 浏览

iphone - 滚球音效

我正在使用 Chipmunk 和 openAL 为 iPhone 开发一个迷宫风格的应用程序。除了滚球的声音,我让一切正常。我尝试的是在每次更新球的位置时播放一个小声音,这样整体效果听起来就像球在滚动。根据这个论坛上的建议,我厌倦了使用球的速度来调整声音的音高。我有以下问题:

  1. 当我在花栗鼠回电中播放此声音时,我根本听不到声音。我可以在别处听到。
  2. 即使我以某种方式完成了这项工作,我应该播放的声音也必须非常非常短,因为球不会花费太长时间来滚动。必须有另一种方式。

有人可以帮忙吗?如果声音也包括在内,我什至可以为一个简单的应用程序付费。