Upload
yousuke-kuroda
View
7
Download
2
Embed Size (px)
DESCRIPTION
第一回kuniaki.rbで発表した資料です。 プレゼン中の実行可能なソースコードは以下にあります。 https://core.rmake.jp/projects/166 また、実際に試したい方は以下からダウンロードしてください。 https://core.rmake.jp/about
Citation preview
自己紹介
• Twitter: @akasata
• (株)Rmakeという会社をやってます
• ゲームを共有して作成するウェブサービス
「Rmake」を運営してます
– Rails2.3(Ruby 1.8)と4.0(Ruby2.0)が混在・・・orz
• 最近は提督業もやってます
mrubyとは?
• まつもとさん作の新しいRuby処理系
• 組み込みに特化したRuby
–アプリケーション組み込み
– Embedded System
• 例:LEGO MINDSTORMS NXTにも搭載 – ROM 256KB、RAM 64KBの環境
mrubyの組み込みは簡単
mrb_state* mrb = mrb_open();
mrb_load_string(mrb, "puts 'hoge'");
mrb_close(mrb);
3行でrubyを組み込めます!
様々な環境で動かす
• 高いポータビリティ
– mrubyはC99の範囲内で実装
• 小さな言語仕様
–でもmrbgemsを適用することで高機能化も
• mrbgems: ビルド時にライブラリを組み込む機構
• 停止時間の短いGC
• PC/スマホ/ブラウザで動かしたい
– (ブラウザはまだ・・・)
パフォーマンスを落とさない
• スマホでも動かしたい
• Rubyはグルー(糊)言語
–処理の大半はネイティブ(C/C++)で記述
• あたり判定
• アニメーション/モーション
–ゲームを構成する中核部分だけを
RubyをベースにしたDSLで記述
Rubyらしい記述 – スプライト
# スプライト「human」の定義 sprite_template :human do |st| st.texture :human_image st.src_size 32, 32 # 描画元のサイズ st.dest_size 32, 32 # 描画先のサイズ st.center_offset 32/2, 32/2 # 中心位置 end # 座標(450, 16)に「human」を表示 scene.add :image, :template => :human, :center_position => [450, 16]
Rubyらしい記述 – アニメーション
# 足踏みを定義する
# 16フレームごとに表示画像を切り替え
st.animation :down do |c|
c.loop true
c.copy_rect :frame => 16, :src => [0, 0]
c.wait_animation
c.copy_rect :frame => 16, :src => [1, 0]
c.wait_animation
end
Rubyらしい記述 – モーション
st.motion :default do |commands|
commands.proc_call do |sprite|
sprite.change_animation :down
end
# 座標(384, 209)に4px/frameの速度で移動
commands.move_to_v 384, 209, 4
end
Rubyらしい記述 – イベント処理
scene :start_scene do |scene| scene.on_init do scene.add :image, :name => :human1, :template => :human, :center_position => [450, 16] # スプライト「 :human1 」タップすると文章を表示 scene.event :human1, :on_click do speak "タップすると文章を表示します“ end end end