StarRubyを使ってみた。。

使ってみたというか使えてないかも。
そもそもRuby自体が初めて。
たのしいRubyの前半(第2部)までにさっと目を通して書き始めた。
おかげで何回も本を見直しながら書くはめに。
も〜読んでる最中から書きたくて仕方なくなるから、ゆっくり熟読なんて出来ない。
それで書いてみたのがこれ

#!/usr/bin/env ruby

require "starruby"
include StarRuby

class Chara
  # クラス変数
  @@up = 0
  @@down = 1
  @@left = 2
  @@right = 3

  attr_writer :direction
  attr_writer :x
  attr_writer :y
  attr_writer :speed
  attr_writer :moving

  # 初期化
  def initialize
    @direction = 0
    @x = 8
    @y = 8
    @speed = 5
    @moving = false
    begin
      @texture = Texture.load("ruby.png")
    rescue => ex
      print ex.message, "\n"
    end
  end
  
  # レンダリング
  def render(screen)
    if @moving then
      if @direction == @@up then
        @y -= @speed
      end
      if @direction == @@down then
        @y += @speed
      end
      if @direction == @@left then
        @x -= @speed
      end
      if @direction == @@right then
        @x += @speed
      end
    end
    screen.render_texture(@texture, @x, @y)
  end

  def Chara.up
    @@up
  end

  def Chara.down
    @@down
  end

  def Chara.left
    @@left
  end

  def Chara.right
    @@right
  end
end

# main処理
ruby = Chara.new
Game.run(640, 480) do |game|
  game.screen.clear

  ruby.moving = false
  # 入力中のキーの取得
  keys = Input.keys(:keyboard)
  break if keys.include?(:escape)
  # 上キーが押された場合
  if keys.include?(:up)
    ruby.moving = true
    ruby.direction = Chara.up
  end
  # 下キーが押された場合
  if keys.include?(:down)
    ruby.moving = true
    ruby.direction = Chara.down
  end
  # 左キーが押された場合
  if keys.include?(:left)
    ruby.moving = true
    ruby.direction = Chara.left
  end
  # 右キーが押された場合
  if keys.include?(:right)
    ruby.moving = true
    ruby.direction = Chara.right
  end

  ruby.render(game.screen)
end

とりあえず画面に描画した何かを矢印キーで動かせるだけです。
StarRubyというよりはRubyの仕様がわからずに手こずった。
とりあえず動いたからおkなのかな。
斜めに動かせないとか問題はいろいろあるけど。