0
私はこのコードを作成することを、プレイヤーが三角形メッシュを持って、SpriteKitベースを使用してスウィフトにIOSのゲームを作っています:スウィフトSpriteKitベースの変更枠形状
let viewpath = CGPathCreateMutable();
CGPathMoveToPoint(viewpath, nil, 200, 0);
CGPathAddLineToPoint(viewpath, nil, 0, 400);
CGPathAddLineToPoint(viewpath, nil, 400, 400);
CGPathAddLineToPoint(viewpath, nil, 200, 0);
let playerviewshape = SKShapeNode(path: viewpath);
playerviewshape.fillColor = SKColor(red: 1, green: 1, blue: 1, alpha: 0.1)
playerviewshape.strokeColor = SKColor(red: 1, green: 1, blue: 1, alpha: 0.2)
playerview = SKSpriteNode(texture: view.textureFromNode(playerviewshape));
playerview.zPosition = 0;
playerview.position = CGPoint(x: 0, y: 200);
player.addChild(playerview);
私はどんな敵が内部にあるかどうかを知りたいです三角形なので、更新ループではif(enemy.intersectsNode(playerview)) {
を使用しますが、これはノードのフレーム内にあるかどうかをチェックします。これは三角形の周りの矩形です。三角形をSKShapeNodeとして使ってみましたが、intersectsNodeの代わりにcontainsPointを使ってみました。
フレームをどのように変更すればいいですか?交差を検出する方法は、三角形の内側にある場合のみスプライトを検出しますか?
そのような種類の検出が必要な場合は、SKPhysicsBodyを使用する必要があります – Knight0fDragon
SKShapeにはまだ問題がありますので、SKShapeを作成してから、ビューの内部にtextureFromNodeという名前のテクスチャを作成することをおすすめしますまたは、新しいSKViewをスポーンすることはできますが、問題はありません)、そのテクスチャをSKSpriteNodeにフィードします。その後、あなたのSKPhysicsBodyを使用すると、希望の形状に基づいて衝突を処理できるはずです – Knight0fDragon
@ Knight0fDragonどのようにして、物理的なボディをノードに追加すれば、どうやって互いに影響を与えるのを止めることができますか。お互いを押す? – HarveyBrCo