Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2006-04-10

ネームスペース

require 'mygame'

MyGame::init
screen = MyGame::Screen.new(320, 240)

MyGame::loop do
  exit if MyGame::key_press?(MyGame::Key::ESCAPE)
  MyGame::draw_image screen, 'ball.bmp', 100, 50
end

うわあ MyGame:: ウザッ。

require 'mygame'
include MyGame

game_init
screen = Screen.new(320, 240)

game_loop do
  exit if key_press?(Key::ESCAPE)
  draw_image screen, 'ball.bmp', 100, 50
end

とすればいいかなあ。

いままでよく考えずに screen を使っていたけど、これサーフェイスだから描画命令が書き込むサーフェイスを screen に固定してしまえばよりシンプルにできる。

require 'mygame'
include MyGame

game_init 320, 240

game_loop do
  exit if key_press?(Key::ESCAPE)
  x = (screen.w - image_size('ball.bmp').w) / 2
  y = (screen.h - image_size('ball.bmp').h) / 2
  draw_image 'ball.bmp', x, y
end

とした方がいいかな。 screen メソッドも用意しておく。

サーフェイスを指定する場合はこれで。

draw_surface_image surface 'ball.bmp', 100 50

ここでは関係ない話だけどこう書きたくなってくる。

require 'mygame'
include MyGame

game_init 320, 240
ball = Image.new('ball.bmp')
ball.x = (screen.w - ball.w) / 2
ball.y = (screen.h - ball.h) / 2

game_loop do
  exit if key_press?(Key::ESCAPE)
  ball.draw
end