Cocos2d iphone 如何检查敌人的哪一侧击中了使用关卡助手创建的玩家精灵场景

Cocos2d iphone 如何检查敌人的哪一侧击中了使用关卡助手创建的玩家精灵场景,cocos2d-iphone,box2d-iphone,levelhelper,Cocos2d Iphone,Box2d Iphone,Levelhelper,我在levelHelper软件中开发了一个场景。但是现在我被困在了如何检查玩家/英雄精灵被敌人击中的部分,就像是从上、下、左、右被击中一样。我想做这个b/c我想让玩家在从左,右,下击时死亡。但如果它从上方击中,敌人应该像超级马里奥游戏中那样摧毁它。所以,我如何才能做到这一点,直到现在,我正在检查,如果球员的y位置大于敌人,这意味着它从上方击中。但在我的场景中,我遇到了一个问题,敌人的精灵比玩家小一点,所以它的y位置总是比玩家小,而且它的宽度也比玩家小,所以我使用了什么公式或方法来实现这一点,这要

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

你检查过文档了吗?>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
}
if(player.position.y>敌方.position.y&&fabs(player.position.x-敌方.position.x)<敌方.size.width/2){
这将确保玩家不仅在敌人上方,而且在同一水平空间。基本上,只有当你从上方而不是从侧面或下方打击敌人时,它才会触发

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