Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! ruby -Ks
- #読み込み
- require 'dxruby'
- ##汎用pageモジュール。##
- ##元のソース=>汎用sceneモジュールscene.rb(パブリックドメイン)
- module Page
- #単なる定義
- class Exit
- end
- #ページ流しとフレームカウンター設定
- class Base
- attr_accessor :Next_page
- attr_reader :frame_counter
- #デフォルト設定
- def initialize
- @Next_page = nil
- @frame_counter = 0
- init
- end
- #フレームは1以上で始める
- def __update
- @frame_counter += 1
- update
- end
- private :__update
- def __run
- run
- end
- private :__run
- #以下4つは未設定
- def init
- end
- def __exit
- exit
- end
- private :__exit
- def update
- end
- def run
- end
- def render
- end
- end
- #fps60で起動
- def self.main_loop(page_class, fps = 60, step = 1)
- page = page_class.new
- default_step = step
- Window.caption="さんぷる"
- Window.load_icon('sample_pass/icon_sample1.ico')
- close_flag = false
- ##以下ループ処理
- Window.create
- loop do
- #強制終了
- break if $end == true
- #×ウィンドウを閉じさせない処理
- close_flag = true if Input.update
- if close_flag
- puts 'ウィンドウを閉じるにはEscボタンを押します。'
- close_flag = false
- end
- #ポインタ定義はフレームに直結するここでもう行う。
- $xpoint = Input.mousePosX
- $ypoint = Input.mousePosY
- #フルスクリーン対応
- if Input.keyPush?(K_F5)
- Window.windowed = false
- end
- if Input.keyPush?(K_F4)
- Window.windowed = true
- end
- #fpsアップダウン
- if Input.keyPush?(K_PGDN)
- step += 1
- Window.fps = fps * default_step / step
- f = fps * default_step / step
- print f,"fps"
- end
- if Input.keyPush?(K_PGUP) and step > default_step
- step -= 1
- Window.fps = fps * default_step / step
- f = fps * default_step / step
- print f,"fps"
- end
- #メインの定常処理はrun->render->update->exitとなる。
- step.times do
- break if page.Next_page
- page.__send__ :__run
- end
- page.render
- step.times do
- break if page.Next_page
- page.__send__ :__update
- page.__send__ :__exit
- end
- if page.Next_page
- page.exit
- break if Exit == page.Next_page
- page = page.Next_page.new
- end
- #自力でループを回している時は必要
- Window.sync
- Window.update
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement