【发布时间】:2014-03-09 16:59:52
【问题描述】:
我正在与 sprite builder 结合使用 cocos2d v3。
这个游戏是一个简单的接球和躲避游戏,物体落下,英雄站在屏幕底部,你可以用加速度计移动他。
我有一个包含一些对象(ccnode)的关卡文件(cclayer),启用了物理。 在我的更新功能中,我将图层缓慢向下移动。
如果对象启用了物理功能,它们就会下拉。如果我将其切换到静态物理,它们会保持原位。
我能找到将对象与图层一起移动的唯一方法是完全关闭物理。但随后碰撞将不再起作用......
这让我在过去 4 小时左右的时间里一直在购买。
对于这种情况最好的方法是什么?
提前谢谢各位!
这是我的更新函数:
- (void)update:(CCTime)delta {
float maxX = winSize.width - _hero.contentSize.width/2;
float minX = _hero.contentSize.width/2;
CMAccelerometerData *accelerometerData = _motionManager.accelerometerData;
CMAcceleration acceleration = accelerometerData.acceleration;
CGFloat newXPosition = _hero.position.x + acceleration.x * 1000 * delta;
newXPosition = clampf(newXPosition, minX, maxX);
_hero.position = CGPointMake(newXPosition, _hero.position.y);
//level position
CGPoint oldLayerPosition = _levelNode.position;
float xNew = oldLayerPosition.x;
float yNew = oldLayerPosition.y -1.4f;
_levelNode.position = ccp(xNew, yNew);
}
【问题讨论】:
标签: ios iphone cocos2d-iphone