touchesBeganメソッドを使用してノードからオブジェクトへの参照を取得します

アレック・カズマレク

基本的に、skpritenodeクラスを拡張するオブジェクトに含まれている2つのメソッドを呼び出す必要があるゲームがあります。touches beginメソッドを使用してノードのタッチを検出し、そのノードからオブジェクトへの参照をプルしてから、touchesBeganメソッド内の一時変数に参照を割り当てて、そのメソッドを呼び出せるようにします。これが不明確な場合は申し訳ありませんが、私はまだ質問を作成するための「正しい」方法に慣れようとしています。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch = touches.first
    if(atPoint((touch?.location(in: self))!) == homeButton) && scene?.isPaused == false{
        goToHomeG()
    }

    else {
        if let location = touch?.location(in: self){
            let theNodes = nodes(at: location)
            for node in  theNodes{
                if node.name == "yesText" {
                    let transition = SKTransition.flipHorizontal(withDuration: 0.5)
                    let menuSceneOB = MenuScene(fileNamed: "MenuScene")
                    menuSceneOB?.scaleMode = .aspectFill
                    self.view?.presentScene(menuSceneOB!, transition: transition)
                    node.removeFromParent()
                }
                else if node.name == "noText" {
                    for child in self.children {
                        if child.name == "goToHomeText"{
                            child.removeFromParent()
                        }
                        if child.name == "noText"{
                            child.removeFromParent()
                        }
                        if child.name == "yesText"{
                            child.removeFromParent()
                        }
                        if child.name == "box"{
                            child.removeFromParent()
                        }
                    }
                    scene?.isPaused = false
                }
                else if node.name == "enemy"{
                    //here is where I want to detect if the object is an enemy and then use the assignment to the location to modify the object with its own internal methods.
                    var modify : EnemyChar?
                    modify = node
                    modify.update
                }
            }
        }
    }

}
スイーパー

私が正しく理解していれば、あなたはただキャストする必要がありますnode

else if node.name == "enemy"{
    //here is where I want to detect if the object is an enemy and then use the assignment to the location to modify the object with its own internal methods.
    var enemy = node as? EnemyChar
    enemy.update()
}

ちなみに、このコード:

for child in self.children {
    if child.name == "goToHomeText"{
        child.removeFromParent()
    }
    if child.name == "noText"{
        child.removeFromParent()
    }
    if child.name == "yesText"{
        child.removeFromParent()
    }
    if child.name == "box"{
        child.removeFromParent()
    }
}

次のように簡略化できます。

for child in self.children {
    if ["goToHomeText", "noText", "yesText", "box"].contains(child.name) {
        child.removeFromParent()
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

他のクラスからメソッドが呼び出されたときに、メソッドオブジェクトへの参照を取得します(javascript)

分類Dev

onPauseメソッドのパラメーターとしてonCreateからオブジェクトを取得するメソッドの使用方法

分類Dev

キーの値を使用して、JSON / JSオブジェクト内の任意の(深い)ネストされたノードへの参照を取得します

分類Dev

JAVA ArrayListは、ArrayListメソッドからすべてのオブジェクトを取得します

分類Dev

スプレッドを使用して既存のオブジェクトへの参照を更新しますか?

分類Dev

Android BroadcastReceiver:onReceiveメソッドからオブジェクトを取得します

分類Dev

TypeScriptを使用して作成されたすべてのオブジェクトまたは参照への拡張メソッドを作成したい

分類Dev

それが反射して、オブジェクトからメソッド参照や関数オブジェクトを取得することは可能ですか?

分類Dev

関数から受け取ったオブジェクトのメソッドの参照を格納します

分類Dev

perlは関数へのパラメータとしてオブジェクトメソッド参照を渡します

分類Dev

JavaScript-オブジェクトのメソッドを使用して親配列からオブジェクトを削除します

分類Dev

別のクラスから値を取得するときに、nullオブジェクト参照で仮想メソッドを呼び出そうとします

分類Dev

Groovy:プロパティ内のメソッドへの参照を親オブジェクトに追加します

分類Dev

ノードクラスメソッド内から新しいオブジェクトを作成する

分類Dev

constメソッドは、参照を使用してオブジェクトを変更します

分類Dev

オブジェクトAの参照をオブジェクトBに渡して、BがAの参照を使用してAのフィールドとメソッドに直接アクセスできるようにするのは正しいですか?

分類Dev

C ++のremoveメソッドを使用してリストからStructオブジェクトを削除する

分類Dev

C ++のremoveメソッドを使用してリストからStructオブジェクトを削除する

分類Dev

IDからスレッドオブジェクトへの参照を取得する

分類Dev

インターフェイスとメソッドからクラスを作成して、オブジェクトを文字列として使用します

分類Dev

JOptionPane静的メソッドによって作成されたオブジェクトへの参照を取得する

分類Dev

呼び出しメソッドのオブジェクトを取得します

分類Dev

shutdownNow()メソッドの使用時に、ScheduledThreadPoolExecutorを使用してスケジュールしたRunnableオブジェクトを取得します。

分類Dev

「オブジェクトA」を使用して「オブジェクトB」からメソッドを呼び出すと、javaNullPointerExceptionが発生します

分類Dev

「オブジェクトA」を使用して「オブジェクトB」からメソッドを呼び出すと、javaNullPointerExceptionが発生します

分類Dev

MOQは、パラメーターを使用してメソッドから新しいオブジェクトを返します

分類Dev

Java 8を使用してオブジェクトのリストをtoString()メソッドから取得した文字列に変換する

分類Dev

clear()メソッドはオブジェクトによって参照される値を空にしますか?

分類Dev

AndroidのcreateChooserメソッドのIntentSenderオブジェクトを取得します

Related 関連記事

  1. 1

    他のクラスからメソッドが呼び出されたときに、メソッドオブジェクトへの参照を取得します(javascript)

  2. 2

    onPauseメソッドのパラメーターとしてonCreateからオブジェクトを取得するメソッドの使用方法

  3. 3

    キーの値を使用して、JSON / JSオブジェクト内の任意の(深い)ネストされたノードへの参照を取得します

  4. 4

    JAVA ArrayListは、ArrayListメソッドからすべてのオブジェクトを取得します

  5. 5

    スプレッドを使用して既存のオブジェクトへの参照を更新しますか?

  6. 6

    Android BroadcastReceiver:onReceiveメソッドからオブジェクトを取得します

  7. 7

    TypeScriptを使用して作成されたすべてのオブジェクトまたは参照への拡張メソッドを作成したい

  8. 8

    それが反射して、オブジェクトからメソッド参照や関数オブジェクトを取得することは可能ですか?

  9. 9

    関数から受け取ったオブジェクトのメソッドの参照を格納します

  10. 10

    perlは関数へのパラメータとしてオブジェクトメソッド参照を渡します

  11. 11

    JavaScript-オブジェクトのメソッドを使用して親配列からオブジェクトを削除します

  12. 12

    別のクラスから値を取得するときに、nullオブジェクト参照で仮想メソッドを呼び出そうとします

  13. 13

    Groovy:プロパティ内のメソッドへの参照を親オブジェクトに追加します

  14. 14

    ノードクラスメソッド内から新しいオブジェクトを作成する

  15. 15

    constメソッドは、参照を使用してオブジェクトを変更します

  16. 16

    オブジェクトAの参照をオブジェクトBに渡して、BがAの参照を使用してAのフィールドとメソッドに直接アクセスできるようにするのは正しいですか?

  17. 17

    C ++のremoveメソッドを使用してリストからStructオブジェクトを削除する

  18. 18

    C ++のremoveメソッドを使用してリストからStructオブジェクトを削除する

  19. 19

    IDからスレッドオブジェクトへの参照を取得する

  20. 20

    インターフェイスとメソッドからクラスを作成して、オブジェクトを文字列として使用します

  21. 21

    JOptionPane静的メソッドによって作成されたオブジェクトへの参照を取得する

  22. 22

    呼び出しメソッドのオブジェクトを取得します

  23. 23

    shutdownNow()メソッドの使用時に、ScheduledThreadPoolExecutorを使用してスケジュールしたRunnableオブジェクトを取得します。

  24. 24

    「オブジェクトA」を使用して「オブジェクトB」からメソッドを呼び出すと、javaNullPointerExceptionが発生します

  25. 25

    「オブジェクトA」を使用して「オブジェクトB」からメソッドを呼び出すと、javaNullPointerExceptionが発生します

  26. 26

    MOQは、パラメーターを使用してメソッドから新しいオブジェクトを返します

  27. 27

    Java 8を使用してオブジェクトのリストをtoString()メソッドから取得した文字列に変換する

  28. 28

    clear()メソッドはオブジェクトによって参照される値を空にしますか?

  29. 29

    AndroidのcreateChooserメソッドのIntentSenderオブジェクトを取得します

ホットタグ

アーカイブ