我正在开发一个简单的游戏,就像破砖机一样。
现在与砖碰撞,玩家应该反弹,它运作正常。 但是在与硬币碰撞时,玩家不应该反弹,硬币应该消失。
为此,我尝试过对钱币进行负面赔偿。像这样改变了b2MixRestitution:
/// Restitution mixing law. Feel free to customize this.
inline float32 b2MixRestitution(float32 restitution1, float32 restitution2)
{
//return restitution1 > restitution2 ? restitution1 : restitution2;
float mixRest = 0.0f;
if(restitution1 > 0.0f && restitution2 > 0.0f)
mixRest = (restitution1>restitution2)?restitution1:restitution2;
else
mixRest = (restitution1<restitution2)?restitution1:restitution2;
return mixRest;
}
但是球员自然会自然反弹。
对于硬币,恢复原状是-1.00f。 对于玩家来说,恢复原状是0.50f。
甚至可以在Box2d中对身体进行负面恢复?
我只是想知道这对于两个身体是否可能,如硬币(静电)&amp;玩家(动态)意图碰撞,动态碰撞后不反弹。
我可以这样做吗?
答案 0 :(得分:0)
我认为你不应该使用Box2d身体作为硬币。仅使用精灵。使用一些算法来检测玩家和硬币之间的碰撞。
例如,您可以比较链接到玩家身体的精灵和硬币精灵的位置。
答案 1 :(得分:0)
您应该将硬币夹具设置为传感器/