-2

levelHelper ソフトウェアでシーンを開発しました。しかし、今、私は、プレイヤー/ヒーロースプライトが上、下、左、右からヒットしたような敵にヒットしたことを確認する方法で立ち往生しています。私はこれをやりたい/左、右、下からヒットしたときにプレイヤーが死ぬようにしたい. でも、スーパーマリオのように上から当てると敵が壊滅するはずです。今までこれをどのように行うことができますか?プレイヤーの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 に答える