質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • Swift

    7228questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

SKShapeNode と SKSpriteNode の衝突判定

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 237

massuuuu

score 33

SKShapeNode と SKSpriteNode の衝突判定について
衝突判定がうまいこと行きません。
やはりSKShapeNode と SKSpriteNode ではうまく衝突しないようになっているのですか?
SKShapeNode から SKSpriteNode に衝突するとうまくいくのですが
SKSpriteNode から SKShapeNode に衝突するとうまいこといきません。

class GameScene: SKScene, SKPhysicsContactDelegate  {

    var backgroundNode: SKSpriteNode!
    var aNode = SKSpriteNode(imageNamed: "anode")
    var bNode = SKSpriteNode(imageNamed: "bnode")
    var lightNode : SKShapeNode!
    var touchedNode: SKNode?

    override func didMove(to view: SKView) {

        physicsWorld.gravity = CGVector(dx:0, dy:0)//重力
        self.physicsBody = SKPhysicsBody(edgeLoopFrom: self.frame)
        physicsWorld.contactDelegate = self

        aNode.position = CGPoint(x:self.frame.midX, y:self.frame.midY + 150)
        aNode.physicsBody = SKPhysicsBody(rectangleOf: aNode.size)
        aNode.setScale(0.1)
        addChild(aNode)

        bNode.position = CGPoint(x:self.frame.midX, y:self.frame.midY - 150)
        bNode.physicsBody = SKPhysicsBody(rectangleOf: bNode.size)
        bNode.setScale(0.1)
        addChild(bNode)

        lightNode = SKShapeNode(rectOf: CGSize(width: 50.0, height: 50.0))
        lightNode.position = CGPoint(x:self.frame.midX, y:self.frame.midY)
        lightNode.physicsBody = SKPhysicsBody(rectangleOf: lightNode.frame.size)
        lightNode.fillColor = UIColor.blue
        addChild(lightNode)

//        aNode.physicsBody?.categoryBitMask = 0b0001
//        bNode.physicsBody?.categoryBitMask = 0b0010
//        lightNode.physicsBody?.categoryBitMask = 0b0001
//        
//        aNode.physicsBody?.collisionBitMask = 0b0001
//        bNode.physicsBody?.collisionBitMask = 0b0001
//        lightNode.physicsBody?.collisionBitMask = 0b0001


    }
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Swift2, SpriteKitのSKActionについて質問です

    問題を出題して、違う答えをタップしたら ×と表示させて、その後消える。 と言った動きをしたいのですが、上手くいきません。 最初の一回目は上手くできるのですが、2回目以降が上手く

  • 解決済

    SKActionが終わった後に何か動作をさせたい時

    SKActionが実行され、そのアクションが終わった時に呼ばれる関数というものは存在しますか?

  • 解決済

    SpriteKit: アイテムを一定時間に出現させるには?

    前提・実現したいこと 初投稿失礼します。 現在SwiftとSpriteKitを使った2Dゲームを作成しております。 そこで一定時間が経過したらハートをフィールドに出現させる方

  • 解決済

    touchesBeganが動作しない

    Swift Playgroundで以下のようなプログラムを作成しています(前に質問させていただいたものと同じです) import UIKit import SpriteKit

  • 解決済

    Xcodeのシュミレータに何も表示されない

    xcodeのシミュレータが、起動はするのですが自分なりに正しいコードは書いているつもりなのですが何も表示されません。色んなコードを試してみて原因究明をはかったのですがどのコードも動

  • 解決済

    xcodeでシミュレータに表示されない

    連投になってしまって申し訳御座いません。前回の質問がまだ解決していないのにベストアンサーをつけてしまい解決済みになってしまいました。本格的に使うのは初めてでして何分ご容赦を。

  • 解決済

    SpriteKitによる画像のドラッグ

    swift SpriteKit で画像を横にスライドした分だけx軸方向にスライドさせるプログラムを組みたいです。画像は表示されるのですが画像をドラッグすることができません。何が足り

  • 解決済

    敵が表示されない

    無限に敵が上から出てくるプログラムを組みたいです。このままビルドすると背景は表示されるのですが、敵が表示されません。しかも無限に繰り返せるか微妙です。どうしたら良いですか?

同じタグがついた質問を見る

  • Swift

    7228questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています