Sha256: 16b60067898d771b00be69eb20ad7808e54f270bf0bbc046307f9fb221721587
Contents?: true
Size: 1.76 KB
Versions: 80
Compression:
Stored size: 1.76 KB
Contents
require 'gosu/preview' module Gosu module Zen @@window_args = [800, 600, {}] @@options = {} def window width, height, options = nil if $window.nil? @@window_args[0] = width @@window_args[1] = height @@window_args[2].merge! options if options else raise "window size can only be set before the window is created" end end def set what, value if $window.nil? @@options[what.to_sym] = value else $window.send "#{what}=", value end end def init &body ZenWindow.send :define_method, :init, &body end def button_down id = nil, &body m = id ? "button_down_#{id}" : :button_down_other ZenWindow.send :define_method, m, &body end def button_up id = nil, &body m = id ? "button_up_#{id}" : :button_up_other ZenWindow.send :define_method, m, &body end def update &body ZenWindow.send :define_method, :update, &body end def draw &body ZenWindow.send :define_method, :draw, &body end def run! window = ZenWindow.new *@@window_args @@options.each do |opt, value| window.send "#{opt}=", value end window.show end def Zen.included mod at_exit { run! unless $! } end end class ZenWindow < Window def initialize *args super init end def init end def button_down id m = :"button_down_#{id}" respond_to?(m) ? send(m) : button_down_other(id) end def button_up id m = :"button_up_#{id}" respond_to?(m) ? send(m) : button_up_other(id) end def button_down_other id end def button_up_other id end end end
Version data entries
80 entries across 80 versions & 1 rubygems