为什么cocos2d-js + chipmunk,只能用于web构建

时间:2014-04-08 05:33:18

标签: javascript ios cocos2d-x chipmunk

我已经实现了基于this

的简单示例

我的例子使用了chipmunk和cocos2d-js。 问题是物理仅适用于Web构建。使用其他构建(本机的 - ios,mac,win32),所有对象都会显示,但它们只是挂起 - 没有动画。 我的update方法是用指定的间隔调用的,我在空间对象上执行“step”方法。 我的所有精灵都是使用PhysicSprite类加载的。

PS:我正在使用cocos2d-js v3.0alpha

2 个答案:

答案 0 :(得分:0)

使用本教程: http://www.cocos2d-x.org/docs/tutorial/framework/html5/parkour-game-with-javascript-v3.0/chapter6/en

我在浏览器和iphone模拟器中都尝试了它,它运行得很好。

答案 1 :(得分:0)

你应该对你的物理身体施加冲动,它们肯定会移动但是如果你试图通过改变每个呼叫的坐标来调整身体的日程,那么它们将在网络上工作,而不是像iOS或mac这样的本地工作。 / p>

例如: -

var mass = 1;    
var width = 1, height = 1;
playerBody = new cp.Body(mass , cp.momentForBox(mass, width, height));
playerBody.applyImpulse(cp.v(200, 300), cp.v(0, 0));// now you can move your playerBody

它可以在所有平台上运行良好但是如果你尝试我的替代解决方案 即:

 init: function{
   var mass = 1;    
   var width = 1, height = 1;
   this.playerBody = new cp.Body(mass , cp.momentForBox(mass, width, height));
   this.schedule(this.move);
},
move: function(dt){
   this.playerBody.getPos().x += 2 * dt;
   this.playerBody.getPos().y += 2 * dt;
 }

这将在网络上运行,但在iOS或Mac等本机平台上,它根本不会移动playerBody。我不知道原因,如果我有一个我会让你知道