Star Ruby Ruby extension library for creating 2D games

StarRuby::Game

ゲーム全体を管理するクラスです。

(Ver 0.2.0 以前はモジュールでした。)

Ver 0.2.0 からの移行

Ver 0.2.0 までは以下のように書いていました。

Game.title = "Foo"
Game.fps = 30

Game.run(320, 240) do
  Game.terminate if Input.keys(:keyboard).include?(:escape)
  Game.screen.clear
end

Ver 0.3.0 からは以下のように書くことが推奨されます。

Game.run(320, 240, :title => "Foo", :fps => 30) do |game|
  break if Input.keys(:keyboard).include?(:escape)
  game.screen.clear # Game.current.screen.clear でも可
end

クラスメソッド

Game.current

現在ゲームが実行中ならその Game オブジェクトを返します。そうでない場合は nil を返します。

Game.fps
Game.fps=(fps)

(Ver 0.3.0 からは非推奨です。代わりに Game#fps / Game#fps= メソッドを使ってください。)

FPS の目標値を取得または設定します。デフォルトは 30 です。

Game.new(width, height, options = {})

ゲームループを自分で制御する場合に使います。通常は使う必要はありません。

新しい Game オブジェクトを取得します。引数は Game.run メソッドと同じです。

ゲーム実行中に呼ぶとエラーになります。

Game.real_fps

(Ver 0.3.0 からは非推奨です。代わりに Game#real_fps メソッドを使ってください。)

実際の FPS を取得します。

Game.screen

(Ver 0.3.0 からは非推奨です。代わりに Game#screen メソッドを使ってください。)

ゲーム画面の最終出力 (Texture) を取得します。

Game.run(width, height, options = {}) {|game| ... }

ゲームを開始します。指定されたブロックを毎フレーム実行します。

ゲーム画面の解像度を、 width および height で指定します。

ブロックの引数 game は、 Game オブジェクトをとります。

options には Hash を指定します。指定できるキーと値は、以下の通りです。

キーデフォルト値
:cursorカーソルを表示するか否かを表す真偽値。 (Ver. 0.1.16 から)false
:fpsFPS をあらわす整数値。 (Ver. 0.3.0 から)30
:fullscreenフルスクリーンにするか否かを表す真偽値。 (Ver. 0.1.12 から)false
:titleタイトルをあらわす文字列。 (Ver. 0.3.0 から)""
:window_scaleウィンドウの拡大率。1

Game.run メソッドは以下のように定義されるのとほぼ同様です。

def Game.run(*args)
  game = Game.new(*args)
  begin
    loop do
      game.wait
      game.update_state
      break if game.window_closing?
      yield(game)
      game.update_screen
    end
  ensure
    game.dispose
  end
end
Game.running?

(Ver 0.3.0 からは非推奨です。)

ゲームが実行中ならば true を、それ以外の場合は false を返します。

Game.terminate

(Ver 0.3.0 からは非推奨です。代わりに break を使ってください。)

ゲームを終了させます。

Game.ticks

プログラム実行からのミリ秒を取得します。

実装の都合上、 49 日程度でオーバーフローし、 0 に戻ります。

Game.title
Game.title=(title)

(Ver 0.3.0 からは非推奨です。代わりに Game#title / Game#title= メソッドを使ってください。)

ゲームタイトルを取得または設定します。

インスタンスメソッド

dispose

ゲームループを自分で制御する場合に使います。通常は使う必要はありません。

ゲームを終了します。

disposed?

ゲームループを自分で制御する場合に使います。通常は使う必要はありません。

dispose が呼ばれていたら true を、そうでない場合は false を返します。

fps
fps=(fps)

FPS の目標値を取得または設定します。デフォルトは 30 です。

fullscreen?
fullscreen=(fullscreen)

フルスクリーンかどうかをあらわす真偽値を取得、設定します (Ver 0.3.3 から)。

real_fps

実際の FPS を取得します。

screen

ゲーム画面の最終出力 (Texture) を取得します。

title
title=(title)

ゲームタイトルを取得または設定します。

update_screen

ゲームループを自分で制御する場合に使います。通常は使う必要はありません。

画面を更新します。

update_state

ゲームループを自分で制御する場合に使います。通常は使う必要はありません。

入力状態、オーディオの状態などを更新します。

wait

ゲームループを自分で制御する場合に使います。通常は使う必要はありません。

FPS にあわせて適切にウェイトします。

window_closing?

ウィンドウが閉じられようとしたときに true を、そうでない場合に false を返します。

window_scale
window_scale=(window_scale)

ウィンドウの拡大率を取得、設定します (設定は Ver 0.3.3 から)。

© Copyright 2010 Hajime Hoshi