0

「小惑星」のコピーのように作成しましたが、これはかなりうまく機能します。さまざまなモジュール (敵、コントロール、背景) で作成しました。今、プレイヤーがゲームをプレイしたり、ハイスコアを表示したりすることを選択できる開始画面のようなものも作成しました.

問題は、これをストーリーボードに実装する方法がわからないことです。モジュールの使用法を誤解した可能性があります。

ゲームを開始するためのイントロ + ボタンである Scene1 から始めています。次に、シーン 2 (プレイヤーがスタート ボタンを押したとき) に移動したいのですが、問題ないようで、シーン 1 がパージされます。でも死んだらまたScene1に行きたくなる。問題は、一部のリスナーが削除されず、シーンの切り替え直後にゲームがクラッシュすることです。主な問題は、シーン 2 で、require("background")、敵、およびコントロールをエンターシーンに配置したことだと思いますが、パージする必要があるときに削除する方法がわかりません。

すべてのモジュールを入力し、exitscene でパージされる同じグループにそれらを配置しましたが、すべてが削除されるわけではありません。

これを最も簡単な方法で修正するにはどうすればよいと思いますか? 私はコロナに非常に慣れておらず、まだ学習の初期段階にあります。

4

2 に答える 2

1

createScene()関数で作成され、「グループ」表示グループに追加されたdisplay.newImageRect()やdisplay.newText()などの表示オブジェクトは、シーンが削除されると自動的に削除されます。

onCompleteハンドラーを持つタイマー、トランジション、またはaudio.plays、ネットワークリクエスト、およびランタイムに接続するイベントハンドラーは、手動で削除する必要があります。作成しているさまざまなオブジェクトがこれらのいずれかを実行している場合、それらを削除するとクリーンアップされるように、それらの削除機能はこれらのアクションを元に戻す必要があります。

enterScene()で実行するランタイムハンドラーやタイマーなどを追加し、exitScene()でそれらを元に戻すのが最適です。次に、createScene()で実行されることがあれば、destoryScene()でクリーンアップする必要があります。

于 2012-12-24T03:18:01.890 に答える
-1

モジュールは、開始するには非推奨です。

第二に、他のファイルに何かを入れて「require」でそれらを呼び出すことは、実行されるコードではなく、ライブラリを呼び出すために使用されることになっています。「require」は dofile や eval ではなく、1 回だけ実行されます (ファイルの最初の「require」が作成されたとき)。

バックグラウンドの読み込みなど、他のファイルに何かを入れたい場合は、「background.load()」関数と「background.unload()」関数を含む「background.lua」ファイルを作成する必要があります。それらを適切な場所に呼び出します。

于 2012-12-21T12:33:10.260 に答える