# <とりかさんのコルノートvol_1:コルの初歩>
# CoRでの初歩的な文字表示と画像表示についてまとめました。
# ゲームに使用する画像のローディング
# <Check!>
# loading()メソッド
# 必須のメソッドです!
# ゲームの初期化に使う画像や speak 文の利用時の画像を読み込みます。
# loader のインスタンスへの読み込みが終わるまで繰り返し続けるようです。
# 画像の未読込でのゲーム開始を防いでいます。
# なお loader インスタンスの状態を見て処理を続けます。
# なので処理内容をすべて消した場合 loader に何も読み込まれず無限ループとなりエラーになります。
# ついでに do の後の |loader| を消すとなんかエラーが発生します。
# 画像読み込みの処理そのものはこのメソッド内処理の実行後に行われます。
# よってこのメソッド内で画像表示をはじめとする画像を使う処理は正常に利用できません。
game.loading do |loader|
# <Check!>
# [画像関係]:add(a,b)メソッド
# 画像データのローディングと呼び出し名を設定するメソッド。
# a には呼び出し時の名前=シンボル、b には画像データの実体が入る。
# 呼び出し名には間違えないように分かりやすい名前を付けると便利。
# 画像データの実体は素材追加画面から確認できる素材IDでも、実際のファイル名でも動作する。
# ただし素材がプロジェクトに追加されていないと真っ白な画像に置き換わるので注意。
# speak用window画像の指定
# :system にある "window" "gui_item" の画像を読み込むという意味。
# オリジナルの文字表示ウィンドウが作りたいなら変えてみるといい・・・かも?
loader.add :window, :system => "window"
loader.add :gui_item, :system => "gui_item"
loader.add :human_image, 30
# もしくは loader.add(:human_image, "~~~.png") でも呼び出せる。
loader.add :back_image, 37
end
# <Check!>
# on_init()メソッド
# 必須のメソッドです!
# ゲームの初期化を行うと共に初期のシーンへのシーン変更を行います。
# 画像読み込み処理が終わった後に実行されます。
game.on_init do
# set_window_image(シンボル名)
# speak メッセージ用のウィンドウ画像の設定 画像読み込みの時につけた名前を入れてみよう。
set_window_image :window
# set_gui_image(シンボル名)
# speak メッセージ用のUI画像の設定 どう違うかは実際に開発して試そう。
set_gui_image :gui_item
# scene_change(シーン名)
# オープニングのシーンへ移動します。
# たくさんシーンがあるなら見やすい場所にまとめよう。
scene_change :start_scene
end
# <Check!>
# scene()メソッド
# 必須のメソッドです!
# シーンの定義を行います。これがないと基本的にゲームができません。
# 内部に文字表示や画像表示、オブジェクトの追加などでゲームの実行内容を書きましょう。
scene :start_scene do |scene|
# loading()メソッドと同等の役割をします。内部に何もなくてもシーンは動作します。
# ただしここで読み込んだ画像データは同じシーン内でしか利用できません。
# うまく使えば読み込み回数の削減になりますが手間でもあります。
scene.loading do
end
# on_init()メソッドと同等の役割をします。内部に何もなくてもシーンは動作します。
# ここにゲームの処理内容を記述します。
scene.on_init do
# シーンに対するオブジェクトの追加…詳細はリファレンスに。いろいろ指定できる。
# ここでは生成オブジェクトの種類、スプライトのテンプレート名、中心位置を指定して左上に表示。
scene.add :image, :template => :human, :center_position => [16, 24]
scene.add :image, :template => :backG
# speak()メソッド
# 必須?とりあえず文字表示したい文字を入れてくださいな。
speak("Hello CoR World!!")
speak("ソースファイルに今回のコードの詳しい説明とかありますー。")
# <Check!>
# プロジェクト変更でスタートメニューに戻る。
# これがないとゲームの終了方法がないことに・・・。
game.change_project "start_menu"
end
end
# <Check!>
# defによる関数指定
# Rmakeと同様に def … end でユーザ関数を作成できます。
# 関数の返り値は最後に評価されたものが返ります。
# 関数内に値だけ書けばそれが返り値になります。
# 画面の幅を取得
def screen_width
game.get_screen_size[0]
end
# 画面の高さを取得
def screen_height
game.get_screen_size[1]
end
# <check!>
# sprite_template(a)メソッド。 a はスプライトのテンプレート名。テキトーに名前をつけよう。
# 画像表示するなら必須。
sprite_template :human do |st|
# <check!>
# これだけあれば画像表示は可能
# texture(a)には画像のシンボル
st.texture :human_image
# src_size(a)には画像の切り出しサイズ
st.src_size 32, 32
# dest_size(a)には切り出し画像の表示サイズ
st.dest_size 32, 32
end
#背景
sprite_template :backG do |st|
st.texture :back_image
st.src_size 450, 800
st.dest_size 450, 800
end