Module: DXRubySDL::Window
- Defined in:
- lib/dxruby_sdl/window.rb,
lib/dxruby_sdl/window/fpstimer.rb
Defined Under Namespace
Classes: FPSTimer
Class Method Summary collapse
- ._screen ⇒ Object
- .draw(x, y, image, z = 0) ⇒ Object
- .draw_font(x, y, string, font, hash = {}) ⇒ Object
- .loop(&block) ⇒ Object
Class Method Details
._screen ⇒ Object
9 10 11 12 13 14 |
# File 'lib/dxruby_sdl/window.rb', line 9 def _screen return SDL::Screen.get rescue SDL::Error return SDL::Screen.open(DEFAULTS[:width], DEFAULTS[:height], 16, SDL::SWSURFACE) end |
.draw(x, y, image, z = 0) ⇒ Object
39 40 41 |
# File 'lib/dxruby_sdl/window.rb', line 39 def draw(x, y, image, z = 0) _screen.put(image._surface, x, y) end |
.draw_font(x, y, string, font, hash = {}) ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'lib/dxruby_sdl/window.rb', line 43 def draw_font(x, y, string, font, hash = {}) if hash[:color] r, g, b = *hash[:color] else r, g, b = 255, 255, 255 end font._ttf.draw_blended_utf8(_screen, string, x, y, r, g, b) end |
.loop(&block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/dxruby_sdl/window.rb', line 16 def loop(&block) _screen.fill_rect(0, 0, DEFAULTS[:width], DEFAULTS[:height], DEFAULTS[:background_color]) _screen.update_rect(0, 0, 0, 0) timer = FPSTimer.instance timer.reset Kernel.loop do while (event = SDL::Event.poll) case event when SDL::Event::Quit exit end end timer.wait_frame do yield _screen.update_rect(0, 0, 0, 0) end end end |