以前、DragonRuby GTK (Game Toolkit) で遊んでみた という記事を書きました。
QiitaにHello, Worldを投稿するとだいたい飽きる(!)のですが、今回は引き続き触っています。
ふと「タイピングゲームを作りたいな」と思ったので、その練習に単純なものを作ってみました。
作ったもの
テキストが表示されて、それを入力するだけです。
タイムオーバーとかもなく、ただそれだけです。
こちらのリンクからWebブラウザでプレイできます。
https://tnantoka.github.io/typing-on-rails/
※ Firefoxだとたまにエラーになります(ページ更新で解消するはず)
ソースコードはGitHubにあります。
https://github.com/tnantoka/typing-on-rails
タイプするテキストをRails Guidesのサンプルコードから借りたので、Typing on Railsという名前になっています。
Tips
基本的にはDragonRuby GTK (Game Toolkit) で遊んでみた の内容で作れるのですが、
一部書いてないものがあったのでメモしておきます。
背景色を変える
outputs.background_color
に [R, G, B]
を設定すれば変更できます。
# 赤!!!
outputs.background_color = [255, 0, 0]
押されたキーの一覧を取る
前回使った inputs.keyboard.key_up.space
でも入力状態は取れるのですが、
今回はキーの一覧を見る実装にしてみました。
入力されたキーはinputs.keyboard.key_down.truthy_keys
で取得できます。
# aを入力
[:char, :raw_key, :a]
# A(Shift + a)を入力
[:char, :raw_key, :a, :shift]
# Command + Shift + aを入力
[:char, :raw_key, :a, :shift, :meta]
フォントによってLabelのサイズわりと違う
Label
のsize_enum
には -10
〜10
を指定できるのですが、同じ10
を指定しても、フォントによって結構サイズが違います。
例えば、以下の4つのフォントを並べてみると…
こうなります。
使うフォントによって size_enum
を調整する必要がありそうです。
公開したゲームが動かない
packageしたbuildをGitHub pagesで公開したら、動きませんでした。
原因は、
Server reported failure downloading 'app/.main.rb.swp'!
というエラーでした。
.gitignore
でGitは無視してくれますが、当然DragonRubyは無視してくれないので…。
builds/typing-on-rails-html5-0.1/manifest.json
を見ると不要なファイルが含まれていることに気づけるかもしれません。
(今回の .swp
ファイルもバッチリ入っていました)
まとめ
200行足らずで作れました。
(前回作ったPrimitives.rbの分は数えていませんが)
お手軽です。