create example
This commit is contained in:
commit
2c9c89e16b
53
example.rb
Executable file
53
example.rb
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
require 'sfml/all'
|
||||||
|
require 'opengl'
|
||||||
|
|
||||||
|
class Example
|
||||||
|
include SFML
|
||||||
|
|
||||||
|
TITLE = "Josh's Ruby SFML/OpenGL Example"
|
||||||
|
|
||||||
|
def initialize
|
||||||
|
@fullscreen = false
|
||||||
|
@window = Window.new
|
||||||
|
create_window
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_window
|
||||||
|
if @fullscreen
|
||||||
|
@window.create(VideoMode.get_desktop_mode, TITLE, Style::Fullscreen)
|
||||||
|
else
|
||||||
|
@window.create([1200, 900], TITLE)
|
||||||
|
end
|
||||||
|
|
||||||
|
glClearColor(1, 0.5, 0, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
def run
|
||||||
|
while @window.open?
|
||||||
|
@window.each_event do |event|
|
||||||
|
case event.type
|
||||||
|
when Event::Closed
|
||||||
|
@window.close
|
||||||
|
when Event::KeyPressed
|
||||||
|
case event.key.code
|
||||||
|
when Keyboard::Escape
|
||||||
|
@window.close
|
||||||
|
when Keyboard::F
|
||||||
|
@fullscreen = !@fullscreen
|
||||||
|
create_window
|
||||||
|
end
|
||||||
|
when Event::Resized # Resize event : adjust viewport
|
||||||
|
glViewport(0, 0, event.size.width, event.size.height)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT)
|
||||||
|
|
||||||
|
@window.display
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Example.new.run
|
Loading…
x
Reference in New Issue
Block a user