目次へもどる

ブロックを描画しよう

ゲームウインドウができたので早速画面にフィールドを描画してみたいと思うのが人情.

Block

まずはブロックを画面に描画する機能を追加した.

class Block
  def get_color
    case @color
    when :r
      StarRuby::Color.new(255,128,128)
    when :g
      StarRuby::Color.new(128,255,128)
    when :b
      StarRuby::Color.new(128,128,255)
    when :y
      StarRuby::Color.new(255,255,128)
    when :p
      StarRuby::Color.new(255,128,255)
    end
  end

  def draw(ox,oy,size)
    x = ox + @row * size
    y = oy - @line * size
    screen = GameMain.screen
    screen.render_rect(x, y, size, size, get_color)
  end
end

フィールド自体の描画位置とブロックサイズを受け取って,自分のテーブルの位置に基づいて矩形を描画する. 色は適当にとってくる.

Field

あとはフィールドを描画する処理を加えれば終わりだ.

class Field
  def initialize(..., block_s)
    @block_s = block_s
  end
  def draw_field(x,y)
    y = @line_s * @block_s + y
    @blocklist.each do |block|
      block.draw(x,y,@block_s)
    end
  end
end

フィールドを作るときにブロックのサイズを受けとるようにした. 描画するブロックはブロックリストで既に保持しているのでループでぶん回してdrawメソッドを呼びまくればオーケー.

実行

さあブロックが描画できるようになったので,適当に連鎖をセットしてみよう. フォールダウンとコネクションチェックの間に適当にウェイトを挟んだ.

Loading the player ...

添付ファイル: filePuyoPuyoChap5.flv 668件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-08-30 (金) 22:08:17 (3983d)