「背景を表示する」(2009/04/11 (土) 10:19:27) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
入門編・6
シューティングゲームもどきを作る
*背景を表示する
今回は内容的には、画像の表示を行います。
画像の表示はスクリプト入門の基礎編でもやりましたが、Cacheという、通常使われる技術を使っていなかったので、それを使って記述します。また、背景については作るのが大変なので、デフォルトで入っている素材から
Graphics/Parallaxesに入っているMountainsを転用します。
** 画像の表示
画像の表示は、以下の記述で行います。
> @background = Sprite.new
> @background.bitmap = Cache.parallax("Mountains")
今回は、変数名にbackgroundを使いましたが、これは何でも構いません。
1行目では、@backgroundという変数に割り当てて、新規の&bold(){スプライト}を作成しています。
スプライトは、画像を表示するための基本原理で、ゲーム画面中に存在する板のようなものです。
2行目で、そのスプライトに画像を割り当てています。
スプライトは、作成しただけでは透明な板です。そのスプライトのbitmapに画像を割り当てることで、絵を映した板になります。
** 実行のタイミング
では、この2行をどこに入れるべきでしょうか。
背景画像は、シーンのメインループが始まる前から存在しているべきですから、開始処理、startのところに記述しましょう。
startメソッドの部分を、このように書き換えます。
> def start
> @background = Sprite.new
> @background.bitmap = Cache.parallax("Mountains")
> end
実行してみると、背景画像がフェードインで表示されると思います。
** メソッドごとに分ける
さて、このままでもいいのですが、この調子でstartに記述を続けていくと、startの中身がどんどん見にくくなってしまいます。
そこで、デフォルトのスクリプトの記述にならい、別名のメソッドを作り、そのメソッドの中に処理ごとに記述を小分けにします。
背景を表示するメソッドなので、create_backgroundとでもしておきましょう。
> def start
> create_background #背景を作成
> end
startメソッドをこう書き換え、スクリプトの一番下、最後のendの上の行に、
> def create_background
> @background = Sprite.new
> @background.bitmap = Cache.parallax("Mountains")
> end
と追加しましょう。startで、create_backgroundが呼び出され、別途下に定義したcreate_backgroundが実行されることになります。実行すると同じ結果になります。
**画像を解放する
さて、スプライトを作成して画像を読み込み、表示したわけですが、このスプライト、画像は、コンピュータ内では記憶領域を確保してそこにデータを置いてあります。
そして、そのままではシーンが終了しても残ってしまいます。記憶領域がもう使わないもので占領されるため、メモリが余計に消費されてしまいます。
作成したスプライト、読み込んだ画像は、シーンが終わる時に解放するのがルールになっています。
シーンが終わる時に実行されるメソッドterminateを、以下のように書き換えましょう。
> def terminate
> dispose_background #背景を解放
> end
そして、dispose_backgroundメソッドをcreate_backgroundと同じように定義します。
> def dispose_background
> @background.bitmap.dispose
> @background.dispose
> end
これで、シーン終了時に背景画像を解放できるようになりました。
----
[[前へ>シーンを作ってみる]]・[[次へ>自機を作成する]]
----
#comment_num2(size=40,vsize=4,num=20,logpage=コメント一覧)
入門編・6
シューティングゲームもどきを作る
*背景を表示する
今回は内容的には、画像の表示を行います。
画像の表示はスクリプト入門の基礎編でもやりましたが、Cacheという、通常使われる技術を使っていなかったので、それを使って記述します。また、背景については作るのが大変なので、デフォルトで入っている素材から
Graphics/Parallaxesに入っているMountainsを転用します。
** 画像の表示
画像の表示は、以下の記述で行います。
> @background = Sprite.new
> @background.bitmap = Cache.parallax("Mountains")
今回は、変数名にbackgroundを使いましたが、これは何でも構いません。
1行目では、@backgroundという変数に割り当てて、新規の&bold(){スプライト}を作成しています。
スプライトは、画像を表示するための基本原理で、ゲーム画面中に存在する板のようなものです。
2行目で、そのスプライトに画像を割り当てています。
スプライトは、作成しただけでは透明な板です。そのスプライトのbitmapに画像を割り当てることで、絵を映した板になります。
** 実行のタイミング
では、この2行をどこに入れるべきでしょうか。
背景画像は、シーンのメインループが始まる前から存在しているべきですから、開始処理、startのところに記述しましょう。
startメソッドの部分を、このように書き換えます。
> def start
> @background = Sprite.new
> @background.bitmap = Cache.parallax("Mountains")
> end
実行してみると、背景画像がフェードインで表示されると思います。
#ref(09_04_11_1.jpg)
** メソッドごとに分ける
さて、このままでもいいのですが、この調子でstartに記述を続けていくと、startの中身がどんどん見にくくなってしまいます。
そこで、デフォルトのスクリプトの記述にならい、別名のメソッドを作り、そのメソッドの中に処理ごとに記述を小分けにします。
背景を表示するメソッドなので、create_backgroundとでもしておきましょう。
> def start
> create_background #背景を作成
> end
startメソッドをこう書き換え、スクリプトの一番下、最後のendの上の行に、
> def create_background
> @background = Sprite.new
> @background.bitmap = Cache.parallax("Mountains")
> end
と追加しましょう。startで、create_backgroundが呼び出され、別途下に定義したcreate_backgroundが実行されることになります。実行すると同じ結果になります。
**画像を解放する
さて、スプライトを作成して画像を読み込み、表示したわけですが、このスプライト、画像は、コンピュータ内では記憶領域を確保してそこにデータを置いてあります。
そして、そのままではシーンが終了しても残ってしまいます。記憶領域がもう使わないもので占領されるため、メモリが余計に消費されてしまいます。
作成したスプライト、読み込んだ画像は、シーンが終わる時に解放するのがルールになっています。
シーンが終わる時に実行されるメソッドterminateを、以下のように書き換えましょう。
> def terminate
> dispose_background #背景を解放
> end
そして、dispose_backgroundメソッドをcreate_backgroundと同じように定義します。
> def dispose_background
> @background.bitmap.dispose
> @background.dispose
> end
これで、シーン終了時に背景画像を解放できるようになりました。
----
[[前へ>シーンを作ってみる]]・[[次へ>自機を作成する]]
----
#comment_num2(size=40,vsize=4,num=20,logpage=コメント一覧)
表示オプション
横に並べて表示:
変化行の前後のみ表示: