2017-05-10 50 views
0

私はPythonistaを使ってPythonを学習しています。私がやった最初のことは、簡単なタッチスクリーンジョイスティック(コントローラー)を作ることでした。私は実際のゲームで作業を開始しますが、私は2つのシーンをマージまたはオーバーレイする方法がわかりません。 (1つは実際のゲーム、もう1つは別のファイルで作ったコントローラです)私はすでにインポートを実行していますが、コントローラファイルまたはゲームファイルは一度に1つしか実行できないようです。どんな助けもありがとうございます。Pythonistaで複数のシーンを実行する

+0

を使用し、私はシーンをオーバーレイする方法はないと思います。可能であれば、複数のイベントループを同時に実行し、お互いの方法でやりとりすることを意味します。同じシーンにコントローラの横に他のゲームオブジェクトを実装する必要があります。 –

+0

@SimonHibbsそれでは、どうやって複雑なゲームを作るのですか?私はいつもtouch_moved()関数に必要なものをたたくだけで面倒です。 – BrrrIce

答えて

0

私は上記のコメントよりも完全な回答を提示しようとします。

提示されている各シーンには、そのビューのタッチイベントに応答するためのビューと一連のメソッドがあります。同じタッチイベントに対して2つの異なるタッチイベントハンドラがトリガされるため、シーンを重ねて重ね合わせたり、タッチイベントに応答することはできません。

ただし、重複するビューを持たない複数のシーンを作成できる必要があります。その後、各タッチイベントは、タッチしている画面の領域を所有するシーンによってのみキャプチャされます。

シーンを別のシーンの上に重ねて表示できますが、'overlay' sceneはすべてのタッチ操作をキャプチャします。

+0

助けてくれてありがとう。ただし、ジョイスティックで作成した別の.pyファイルをインポートしてメインゲームのモジュールとして挿入し、その機能を使用すると便利です。それは私のメインゲームで1ラインになりますが、それは良いです。 – BrrrIce

0

ジョイスティックを別のシーンに置く代わりに、scene.Nodeに描画する必要があります。あなたのゲームシーンでは、別のスプライトのように、Scene.add_child()を使って追加できます。座標系を、あなたはNode.point_from_scene()を使用することができ、バックシーンの座標系に変換するために、ノードへのタッチ位置を変換するには

、あなたがNode.point_to_scene()

関連する問題