我要做一个像“涂鸦跳跃”这样的功能:一个球(动态体)在与平台(静体)相撞后跳跃。
以下是我如何实现这个: 1.定义自己的ContactListener:定义一个接触数组,它在BeginContact时插入体,在EndContact时擦除体 2. [self scheduleupdate]遍历联系人数组,如果一个联系人是一个平台(staticbody),则将其销毁。
问题是球在与平台发生碰撞并且平台破坏后不会跳跃。 球只会穿过前静体。
任何人都可以提供帮助吗?
答案 0 :(得分:0)
通常,您需要使用b2_kinematicBody来模拟平台,并设置它的LinearVelocity以使其移动。
考虑到滚动屏幕或跳球的错觉,你可以让平台移动。
要模拟反弹,您可以将恢复原状设置为接近1的值。
要销毁平台,您可以设置一个简单的contactListener:
//in the end of update: method
if (bodyASprite.tag == BALL_TAG && bodyBSprite.tag == PLAT_TAG)
world->DestroyBody(bodyB);
else if (bodyASprite.tag == PLAT_TAG && bodyBSprite.tag == BALL_TAG)
world->DestroyBody(bodyA);