Module: Processing
- Defined in:
- lib/dxruby_rp5/runner.rb,
lib/dxruby_rp5/runners/base.rb
Defined Under Namespace
Classes: Runner
Constant Summary collapse
- KEY_METHODS =
" def key_pressed\n Input.send(:key_pressed, key, key_code)\n Input.send(:key_pushed, key, key_code)\n end\n\n def key_released\n Input.send(:key_released, key, key_code)\n end\n"- MOUSE_METHODS =
" def mouse_pressed(event)\n Input.send(:mouse_pressed, event.get_button)\n Input.send(:mouse_pushed, event.get_button)\n end\n\n def mouse_released(event)\n Input.send(:mouse_released, event.get_button)\n end\n"- SKETCH_TEMPLATE_FOR_RP5 =
" class Sketch < Processing::App\n <% if has_methods %>\n <%= source %>\n <% else %>\n def setup\n size(DEFAULT_WIDTH, DEFAULT_HEIGHT, JAVA2D)\n <%= source %>\n no_loop\n end\n <% end %>\n <% if !has_key_methods %>\n \#{KEY_METHODS}\n <% end %>\n\n <% if !has_mouse_methods %>\n \#{MOUSE_METHODS}\n <% end %>\n end\n"- SKETCH_TEMPLATE_FOR_DXRUBY_RP5 =
" class Sketch < Processing::App\n def setup\n <%= source %>\n size(Window.width, Window.height, JAVA2D)\n end\n\n def draw\n end\n\n <% if !has_key_methods %>\n \#{KEY_METHODS}\n <% end %>\n\n <% if !has_mouse_methods %>\n \#{MOUSE_METHODS}\n <% end %>\n end\n"
Class Method Summary collapse
Class Method Details
.load_and_run_sketch ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/dxruby_rp5/runners/base.rb', line 69 def self.load_and_run_sketch source = self.read_sketch_source has_sketch = !!source.match(/^[^#]*< Processing::App/) has_methods = !!source.match(/^[^#]*(def\s+setup|def\s+draw)/) has_window_loop = !!source.match(/^[^#]*(Window\.loop\sdo)/) has_key_methods = !!source.match(/^[^#]*(def\s+(key_pressed|key_typed|key_released))/) has_mouse_methods = !!source.match(/^[^#]*(def\s+(mouse_pressed|mouse_released))/) if has_sketch load File.join(SKETCH_ROOT, SKETCH_PATH) Processing::App.sketch_class.new if !$app else require 'erb' code = has_window_loop ? ERB.new(SKETCH_TEMPLATE_FOR_DXRUBY_RP5).result(binding) : ERB.new(SKETCH_TEMPLATE_FOR_RP5).result(binding) Object.class_eval code, SKETCH_PATH, -1 Processing::App.sketch_class.new end end |