0

我有 3 个精灵 A、B 和 C。

A和C是对象...

B 是敌人的精灵......所以设计如下。我需要 B 在 A 和 C 之间不断移动。

A ---------- B ---------- C

我在 Update 方法中使用以下方法。这样每个帧都会调用这些方法。

ABcollision
{
if(Aistouched == YES)
{
Bvelocity.x = 5;  /// moves my sprite B right side
}
}

CBcollision
{
if(Cistouched == YES)
{
Bvelocity.x = -5; /// moves my sprite B right side
}
}

我更新速度的更新方法:

   b2Vec2 dins = dinobody->GetLinearVelocity();
   dinobody->SetLinearVelocity(Bvelocity);

上面的代码使我的精灵 B 只左右移动一次。

4

1 回答 1

0

我相信它只工作一次的问题是因为你从来没有根据我的判断重置你的 BOOL。AistouchedCistouched。尝试Aistouched = FALSE在设置之后立即添加Bvelocity.x = 5;C 和相同。

于 2012-08-10T12:51:06.253 回答