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なのかな。
斜めに動かせないとか問題はいろいろあるけど。