-2

我在 levelHelper 软件中开发了一个场景。但是现在我被困在如何检查玩家/英雄精灵被敌人击中的部分,比如它是从上、下、左、右击中的。我想做这个 b/ci 希望玩家从左、右、下击中时死亡。但是如果它从上方击中敌人应该像超级马里奥游戏一样摧毁。所以我怎么能做到这一点,直到现在我正在检查玩家的 y 位置是否大于敌人,这是否意味着它从上方击中。但是我在我的场景中遇到了一个问题,即敌人的精灵比玩家小一点,所以它的 y 位置总是小于玩家,而且它的宽度也是如此,所以我使用什么公式或方法来使这件事发生提前谢谢。

4

2 回答 2

0
if ( player.position.y > enemy.position.y && fabs( player.position.x - enemy.position.x ) < enemy.size.width / 2 ) {

这将确保玩家不仅位于敌人上方,而且玩家处于相同的水平空间。基本上,它只会在你从上方击中敌人时触发,而不是从侧面或下方。

于 2013-03-09T07:54:10.347 回答
0

你检查过文档吗?http://www.gamedevhelper.com/documentation/documentation.html > LHContactInfo 类

基本上你应该在 SpriteHelper 中创建固定装置,你可以像提供的示例代码一样检查碰撞。

NSString* fixNameA = [contact fixtureNameA];
NSString* fixNameB = [contact fixtureNameB];

if(fixNameA != NULL && 
([fixNameA isEqualToString:@"LegRight"] || [fixNameA isEqualToString:@"LegLeft"]))
{
//apply 30% damage
}

if(fixNameA != NULL && 
([fixNameA isEqualToString:@"RightArm"] || [fixNameA isEqualToString:@"LeftArm"]))
{
//apply 50% damage
}

if(fixNameA != NULL && [fixNameA isEqualToString:@"Head"])
{
//apply 100% damage
}
于 2013-03-09T00:48:30.940 回答