Skip to content

Instantly share code, notes, and snippets.

@whity-82
Created April 17, 2013 14:15
Show Gist options
  • Save whity-82/5404633 to your computer and use it in GitHub Desktop.
Save whity-82/5404633 to your computer and use it in GitHub Desktop.
Sample of keyboard event handling on Gosu
#coding:utf-8
require 'gosu'
class GameWindow < Gosu::Window
# 1行の高さ(=フォントサイズ)
LINE_HEIGHT =20
# ウィンドウの高さ(行数)
LINES_IN_WINDOW = 24
def initialize
super(640, LINE_HEIGHT * LINES_IN_WINDOW, false)
self.caption = "ゲーム画面サンプル"
@font = Gosu::Font.new(self, Gosu::default_font_name, 20)
# 選択中メニュー
@menu_id = 1
end
def update
end
def draw
# タイトル描画
@font.draw("サンプルゲームタイトル", 0, 0, 1, 1.5, 1.5, Gosu::Color::RED)
# 選択されてるメニューの設定
menu1_color = (@menu_id == 1) ? Gosu::Color::CYAN : Gosu::Color::WHITE
menu2_color = (@menu_id == 2) ? Gosu::Color::CYAN : Gosu::Color::WHITE
menu3_color = (@menu_id == 3) ? Gosu::Color::CYAN : Gosu::Color::WHITE
menu4_color = (@menu_id == 4) ? Gosu::Color::CYAN : Gosu::Color::WHITE
menu5_color = (@menu_id == 5) ? Gosu::Color::CYAN : Gosu::Color::WHITE
# メニュー描画
@font.draw("1. ダンジョンに潜る", 30, LINE_HEIGHT * 3, 1, 1.0, 1.0, menu1_color)
@font.draw("2. 宿屋に泊まる", 30, LINE_HEIGHT * 4, 1, 1.0, 1.0, menu2_color)
@font.draw("3. 商店街に行く", 30, LINE_HEIGHT * 5, 1, 1.0, 1.0, menu3_color)
@font.draw("4. お城に行く", 30, LINE_HEIGHT * 6, 1, 1.0, 1.0, menu4_color)
@font.draw("5. 街はずれに行く", 30, LINE_HEIGHT * 7, 1, 1.0, 1.0, menu5_color)
end
def button_down(id)
# ゲーム終了
close if id == Gosu::KbEscape
# 選択されているメニューの変更
@menu_id += 1 if id == Gosu::KbDown
@menu_id -= 1 if id == Gosu::KbUp
@menu_id = 1 if @menu_id < 1
@menu_id = 5 if @menu_id > 5
end
end
window = GameWindow.new
window.show
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment