「背景を表示する」の編集履歴(バックアップ)一覧はこちら

背景を表示する」の最新版変更点

追加された行は青色になります。

削除された行は赤色になります。

 入門編・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=コメント一覧)