cocos2d iphonev3(花栗鼠):如何通过施加脉冲或力量向左或向右移动CCSprite



我决定开始学习游戏编程,并选择了cocos2d V3作为我的第一个2d游戏引擎。据我所知,cocos2d iphonev3配备了花栗鼠作为物理引擎。

我设法创建了一个肖像应用程序,它在屏幕的左右两侧都有一个平台,上面有一个对象(框)

平台和盒子是CCSprite,附带CCPhysicsBody。

我想在触摸屏幕右侧时将此框向左推,在触摸屏幕左侧时将其向右推。箱子不应该跳,而应该向左或向右推。

通过查看cocos2dv3文档,我发现了以下方法:CCPhyicsBody

- (void)applyAngularImpulse:(CGFloat)impulse
- (void)applyForce:(CGPoint)force
- (void)applyForce:(CGPoint)force atLocalPoint:(CGPoint)point
- (void)applyForce:(CGPoint)force atWorldPoint:(CGPoint)point
- (void)applyImpulse:(CGPoint)impulse
- (void)applyImpulse:(CGPoint)impulse atLocalPoint:(CGPoint)point
- (void)applyImpulse:(CGPoint)impulse atWorldPoint:(CGPoint)point
- (void)applyTorque:(CGFloat)torque

通过使用applyImpulse并传递触摸位置CGPoint,我设法使盒子有点跳跃。但我的要求是让我的箱子向左或向右移动,不要跳跃。

有人能告诉我该用哪种方法吗?该方法的参数应该是什么?

提前感谢您的帮助

,通过使用applyImpulse并传递触摸位置CGPoint,我设法使方框稍微跳跃。

这就是问题所在。使用applyImpulse是正确的方法,但是需要提供脉冲的方向作为CGPoint参数。您不希望使用触摸位置作为脉冲方向。

要只向左侧施加脉冲,需要为脉冲方向创建一个新的CGPoint,该点的y值应为0:

CGPoint impulse = ccp(-10.f, 0.f);

然后将这一点传递给方法。

最新更新