関数に名前を付けるは、難しい。
alcのホームページで思いつく日本語を入力して帰ってくる英語とイメージとケンカしながら、とりあえず仮に決める。
プログラムを書き進めると、又違う関数と名前の取り合いになってくる。
関数を書き換えるより、関数名や変数名を書き換える事が多いような気がする。
今回もクラス名のCell,Phaseに落ち着くまで何回書き換えたことか。
今日は、フォントを回転、拡大する奴。
VL-Gothic-Regular.ttfを同じフォルダに入れて置いてください。
ruby/sdl関係を片っ端から検索した途中で拾ったから入手方法は忘れました。
ネットを検索すれば、なんとかなると思いますよ。


#!/usr/bin/env ruby

require 'rubygems'
require 'sdl'

class Cell
def initialize(surface)
@home = surface
@font = SDL::TTF.open("VL-Gothic-Regular.ttf",30)
@angle,@xscale,@yscale,@px,@py,@qx,@qy = 0,1.0,1.0,50,50,250,250
end
def render_font(text,color)
r,g,b = color
@surface = @font.render_blended_utf8(text,r,g,b)
#@surface = @font.render_solid_utf8(text,r,g,b)
@w,@h = @surface.w,@surface.h
end
def update
@angle += 1
@xscale += 0.03
@yscale += 0.03
if @xscale > 5
@xscale = 1
@yscale = 1
end
end
def blit
SDL.transform_blit(@surface,@home,@angle,@xscale,@yscale,@px,@py,@qx,@qy,SDL::TRANSFORM_SAFE)
end
end

class Phase
def initialize(screen)
@screen = screen
@w,@h = @screen.w,@screen.h
@cell = Cell.new(@screen)
@cell.render_font("TEXT",[0,0,0])
end
def fill
@screen.fill_rect(0,0,@w,@h,[250,128,114])
end
def update
self.fill
@cell.update
@cell.blit
@screen.update_rect(0,0,0,0)
end
def run
loop do
while event=SDL::Event.poll
case event
when SDL::Event::Quit
exit
when SDL::Event::KeyDown
exit if event.sym == SDL::Key::ESCAPE
end
end
sleep(0.05)
self.update
end
end
end

SDL.init( SDL::INIT_VIDEO )
SDL::TTF.init
SDL::Mouse.hide
SDL::WM.set_caption("RUBY/SDL","")
screen = SDL::setVideoMode(500,500,16,SDL::SWSURFACE)
Phase.new(screen).run
[PR]
# by gaziya | 2010-08-25 20:43