Sinatra風nマルチメディアnプログラミング¶ ↑
# : subtitle # Sinatraっぽい文法でゲームを書こう : author
@myokoym
# : institution # Sinatra札幌 : content-source
勉強会@Sinatra札幌
: date
2014/05/10
: allotted-time
5m
: theme
nyankosakana
自己紹介¶ ↑
* 横山昌史(@myokoym) * Rabbitショッカー * Ruby-GNOME2 Project Team * Groonga勉強会@札幌
よろしくお願いします。nnm(_ _)m¶ ↑
ここでクイズです。¶ ↑
Q. Sinatraは好きですか?nnA. 好きです¶ ↑
Q. ゲームは好きですか?nnA. 好きです¶ ↑
Q. プログラミングは?nnA. 好きです¶ ↑
そんなあなたに¶ ↑
((‘tag:center’)) Sinatraっぽい文法でゲームを書けるライブラリのご紹介です。
その名は…nnGosu::Zen¶ ↑
その名は…nn((Gosu))::Zen¶ ↑
Gosu is 何¶ ↑
# blockquote # title = http://www.libgosu.org/ Gosu is a 2D game development library for the Ruby and C++ programming languages, available for Mac OS X, Windows, and Linux.
Gosu is 何¶ ↑
* 2Dゲーム開発ライブラリ * RubyとC++向け * マルチプラットフォーム * Mac OS X * Windows * Linux
Gosu 0.7.x¶ ↑
* 現時点での最新リリース版 * SDLベース * C++版はiOSに対応
インストール¶ ↑
gem install gosu
((‘note:・WindowsはRuby1.9のみ対応’))n ((‘note:・Linuxでは事前にSDLなどをインストールしておく(See github.com/jlnr/gosu/wiki/Getting-Started-on-Linux)’))n ((‘note:・OS Xは?(試してみてください!)’))
こんな感じで書きます¶ ↑
# coderay ruby require "gosu" # 1フレームごとにupdateとdrawが呼ばれる class Window < Gosu::Window def update # 主要ロジック(移動、衝突判定など) end def draw # 描画コード(ロジックは含めない) end end
実行例¶ ↑
# coderay ruby width = 800 height = 600 fullscreen = false window = Window.new(width, height, fullscreen) # メインループ開始(デフォルトは60fps) window.show
Gosu 0.8¶ ↑
* 次期リリース版 * gem install gosu --pre * SDL((*2*))ベース * Raspbian(Raspberry Pi)対応 * Android対応予定
以下本題。¶ ↑
Gosu::((Zen))¶ ↑
Gosu::Zen is 何¶ ↑
* GosuのSinatra風ラッパー * Zen was inspired by: * http://www.sinatrarb.com/configuration.html * まだ実験段階(仕様変更あり)
こんな感じで書きます¶ ↑
# coderay ruby require "gosu/zen" include Gosu::Zen update do # 主要ロジック(移動、衝突判定など) end draw do # 描画コード(ロジックは含めない) end
デモ¶ ↑
property¶ ↑
:as_large_as_possible
true
次回予告¶ ↑
* OSC 2014 Hokkaido * http://www.ospn.jp/osc2014-do/ * Sinatra札幌も出展します * 6/14(土) 10:00〜16:00 * 札幌市産業振興センター * Please remember it!