-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.rb
52 lines (45 loc) · 1.61 KB
/
main.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
require 'gosu'
require_relative 'scenes/manger'
require_relative 'scenes/game/event/base'
require_relative 'scenes/game/boad/boad'
require_relative 'scenes/director_base'
require_relative 'scenes/title/director'
require_relative 'scenes/setting/director'
require_relative 'scenes/game/director'
require_relative 'scenes/game/player/card'
require_relative 'scenes/ending/director'
class GameWindow < Gosu::Window
def initialize
super(800, 600, false) # ウィンドウの幅、高さ、フルスクリーンモードの指定
self.caption = "LIFE GAME" # ウィンドウのタイトルを設定
# シーンの生成
@scene_manager = Scenes::Manager.instance
@scene_manager.add(:title, Scenes::Title::Director.new)
@scene_manager.add(:setting, Scenes::Setting::Director.new)
@scene_manager.add(:game, Scenes::Game::Director.new)
@scene_manager.add(:ending, Scenes::Ending::Director.new)
@scene_manager.set(:title)
# 作業用コード
# @scene_manager.set(:ending)
# @scene_manager.set(:title)
end
# 1フレーム分の更新処理
def update
# キーが押されたときの処理
# closeの場合window終了後も処理が継続する場合があるため、exitに変更しました。exitはwindowと処理の両方を終了します。
exit if Gosu.button_down?(Gosu::KB_ESCAPE)
opt = {
mx: self.mouse_x,
my: self.mouse_y
}
@scene_manager.update(opt)
end
# 1フレーム分の描画処理
def draw
# 描画処理を書く場所
@scene_manager.draw
end
end
# ウィンドウを作成して実行
window = GameWindow.new
window.show