rubysketch 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ccbb3ec25a88b53bba2570b98bce4e809f6e4cbe68ffe9d3ecd0632934d75e2c
4
- data.tar.gz: 47bc1c14d77513954b4bae6a5611b802c99836ad2474d2232d35ef92def908a1
3
+ metadata.gz: 2aae68b50056538ec9f1de57091af05176af8b629331d40e16b640de83d4a610
4
+ data.tar.gz: 8929fd46a62eeb5457f386a72b255d3a6267fc1380bb29aabe9b093a722ecb34
5
5
  SHA512:
6
- metadata.gz: 2ad5c3d346dfd79446ad795e00c7b148baeb1bdee3600d6b628d1ba6f5c366273aa71986016500649ed36944022e418d1a5f012ccd4d808b6546e6fbed1eb9e2
7
- data.tar.gz: 3c657e0ef7fdefc37d370246d881b0d976805d74c1ee22b99b7470fb502aacf5de1d7bba0991f7b1534e3d8a43114da7b05cf6336bebb43bd9d90d57b8328d69
6
+ metadata.gz: fe6b88ffc3d9ee14f6b9206df4b554d498cd6a4b5b13a21baf8a6b0cfcebec4888322d12f6cee09829cc7a1038ad9ad2854945d5bb4e8706337bbfa310c113ab
7
+ data.tar.gz: 56dac7438fb09ed3d8164e390e44dc785be289e6c4a4e5c3b9550fd5363c87f0a5a05f94806b6f68e691019e9297e2be6710435c5b0cafa35b2527ca1d7d1124
@@ -24,7 +24,7 @@ jobs:
24
24
  run: gem install yard
25
25
 
26
26
  - name: test
27
- run: rake test
27
+ run: rake quiet test
28
28
 
29
29
  - name: create gem
30
30
  id: gem
data/ChangeLog.md CHANGED
@@ -1,6 +1,16 @@
1
1
  # rubysketch ChangeLog
2
2
 
3
3
 
4
+ ## [v0.5.3] - 2023-04-22
5
+
6
+ - Depends on Beeps
7
+ - Update RubySketch.podspec to include beeps, rays, reflex, and processing libs
8
+ - Add RubySketch.h and RubySketch.mm
9
+ - Add Sound class and loadSound()
10
+ - Add vx, vy accessors and will_contact? callback to Sprite class
11
+ - Add RubySketch::Window andd calls Beeps.process_streams!
12
+
13
+
4
14
  ## [v0.5.2] - 2023-03-02
5
15
 
6
16
  - depend to processing-0.5.2 gem
data/RubySketch.podspec CHANGED
@@ -14,16 +14,105 @@ Pod::Spec.new do |s|
14
14
  s.osx.deployment_target = "10.10"
15
15
  s.ios.deployment_target = "10.0"
16
16
 
17
- incdirs = %W[
18
- #{s.name}/src
19
- CRuby/CRuby/include
20
- Reflexion/reflex/include
21
- RubyProcessing/src
22
- ].map {|s| "${PODS_ROOT}/#{s}"}
23
-
24
- s.preserve_paths = "src"
25
- s.source_files = "src/*.mm"
26
- s.xcconfig = {"HEADER_SEARCH_PATHS" => incdirs.join(' ')}
27
-
28
- s.resource_bundles = {'RubySketch' => %w[lib VERSION]}
17
+ root = "${PODS_ROOT}/#{s.name}"
18
+ exts = File.read(File.expand_path 'Rakefile', __dir__)
19
+ .lines(chomp: true)
20
+ .map {|line| line[%r|require\s*['"](\w+)/extension['"]|, 1]}
21
+ .compact - [s.name.downcase]
22
+
23
+ incdirs = exts.map {|x| "#{root}/#{x}/include"}.concat %W[
24
+ #{root}/src
25
+ #{root}/beeps/vendor/stk/include
26
+ #{root}/rays/vendor/glm
27
+ #{root}/rays/vendor/clipper/cpp
28
+ #{root}/rays/vendor/poly2tri/poly2tri
29
+ #{root}/rays/vendor/splines-lib
30
+ #{root}/reflex/vendor/Box2D/Box2D
31
+ ${PODS_ROOT}/CRuby/CRuby/include
32
+ ]
33
+
34
+ s.prepare_command = 'rake -f pod.rake setup'
35
+ s.preserve_paths = exts + %w[src]
36
+ s.requires_arc = false
37
+ s.osx.compiler_flags = "-DOSX"
38
+ s.ios.compiler_flags = "-DIOS"
39
+ s.library = %w[c++]
40
+ s.xcconfig = {
41
+ "CLANG_CXX_LANGUAGE_STANDARD" => 'c++20',
42
+ "HEADER_SEARCH_PATHS" => incdirs.join(' ')
43
+ }
44
+
45
+ #s.dependency = 'CRuby', git: 'https://github.com/xord/cruby'
46
+
47
+ s.source_files = "src/*.mm"
48
+ s.resource_bundles =
49
+ exts.each_with_object({'RubySketch' => %w[lib VERSION]}) do |ext, hash|
50
+ hash[ext.capitalize] = %W[#{ext}/lib VERSION]
51
+ end
52
+
53
+ s.subspec "Xot" do |spec|
54
+ spec.source_files = "xot/src/*.cpp"
55
+ end
56
+
57
+ s.subspec "Rucy" do |spec|
58
+ spec.source_files = "rucy/src/*.cpp"
59
+
60
+ spec.subspec "Ext" do |ext|
61
+ ext.source_files = "rucy/ext/rucy/*.cpp"
62
+ end
63
+ end
64
+
65
+ s.subspec "Beeps" do |spec|
66
+ spec.source_files = "beeps/src/*.cpp"
67
+ spec.frameworks = %w[OpenAL]
68
+
69
+ spec.subspec "STK" do |sub|
70
+ sub.source_files = "beeps/vendor/stk/src/*.cpp"
71
+ sub.exclude_files = %W[Tcp Udp Socket Thread Mutex InetWv Rt].map {|s|
72
+ "beeps/vendor/stk/src/#{s}*.cpp"
73
+ }
74
+ end
75
+
76
+ spec.subspec "Ext" do |ext|
77
+ ext.source_files = "beeps/ext/beeps/*.cpp"
78
+ end
79
+ end
80
+
81
+ s.subspec "Rays" do |spec|
82
+ spec .source_files = "rays/src/*.cpp"
83
+ spec.osx.source_files = "rays/src/osx/*.{cpp,mm}"
84
+ spec.ios.source_files = "rays/src/ios/*.{cpp,mm}"
85
+ spec.ios.frameworks = %w[GLKit MobileCoreServices AVFoundation]# ImageIO
86
+
87
+ spec.subspec "Clipper" do |sub|
88
+ sub.source_files = "rays/vendor/clipper/cpp/*.cpp"
89
+ end
90
+
91
+ spec.subspec "Poly2Tri" do |sub|
92
+ sub.source_files = "rays/vendor/poly2tri/poly2tri/**/*.cc"
93
+ end
94
+
95
+ spec.subspec "SplineLib" do |sub|
96
+ sub.source_files = "rays/vendor/splines-lib/Splines.cpp"
97
+ end
98
+
99
+ spec.subspec "Ext" do |ext|
100
+ ext.source_files = "rays/ext/rays/*.cpp"
101
+ end
102
+ end
103
+
104
+ s.subspec "Reflex" do |spec|
105
+ spec .source_files = "reflex/src/*.cpp"
106
+ spec.osx.source_files = "reflex/src/osx/*.{cpp,mm}"
107
+ spec.ios.source_files = "reflex/src/ios/*.{cpp,mm}"
108
+ spec.ios.frameworks = %w[CoreMotion]
109
+
110
+ spec.subspec "Box2D" do |sub|
111
+ sub.source_files = "reflex/vendor/Box2D/Box2D/Box2D/**/*.cpp"
112
+ end
113
+
114
+ spec.subspec "Ext" do |ext|
115
+ ext.source_files = "reflex/ext/reflex/*.cpp"
116
+ end
117
+ end
29
118
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.2
1
+ 0.5.3
data/examples/hello.rb CHANGED
@@ -1,4 +1,4 @@
1
- %w[xot rays reflex processing rubysketch]
1
+ %w[xot rucy beeps rays reflex processing rubysketch]
2
2
  .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
3
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
4
 
@@ -1,9 +1,12 @@
1
1
  require 'forwardable'
2
+ require 'beeps'
2
3
  require 'processing/all'
3
4
 
4
5
  require 'rubysketch/extension'
6
+ require 'rubysketch/window'
5
7
  require 'rubysketch/helper'
6
8
 
7
9
  require 'rubysketch/sprite'
10
+ require 'rubysketch/sound'
8
11
  require 'rubysketch/graphics_context'
9
12
  require 'rubysketch/context'
@@ -24,6 +24,10 @@ module RubySketch
24
24
  sprite
25
25
  end
26
26
 
27
+ def loadSound(path)
28
+ Sound.load path
29
+ end
30
+
27
31
  def gravity(*args)
28
32
  x, y =
29
33
  case args
@@ -0,0 +1,55 @@
1
+ module RubySketch
2
+
3
+
4
+ class Sound
5
+
6
+ # @private
7
+ def initialize(sound)
8
+ @sound = sound
9
+ end
10
+
11
+ def play()
12
+ old = @player
13
+ @player = @sound.play
14
+ old&.stop
15
+ true
16
+ end
17
+
18
+ def pause()
19
+ return false unless @player
20
+ @player.pause
21
+ true
22
+ end
23
+
24
+ def stop()
25
+ return false unless @player
26
+ @player.stop
27
+ @player = nil
28
+ true
29
+ end
30
+
31
+ def playing?()
32
+ @player ? @player.playing? : false
33
+ end
34
+
35
+ def paused?()
36
+ !playing? && !stopped?
37
+ end
38
+
39
+ def stopped?()
40
+ @player ? @player.stopped? : true
41
+ end
42
+
43
+ def save(path)
44
+ @sound.save path
45
+ end
46
+
47
+ def self.load(path)
48
+ f = Beeps::FileIn.new path
49
+ self.new Beeps::Sound.new(f, f.seconds, nchannels: f.nchannels)
50
+ end
51
+
52
+ end# Sound
53
+
54
+
55
+ end# RubySketch
@@ -25,11 +25,15 @@ module RubySketch
25
25
  :restitution, :restitution=
26
26
 
27
27
  def update(&block)
28
- @view__.update = block
28
+ @view__.on_update = block
29
29
  end
30
30
 
31
31
  def contact(&block)
32
- @view__.contact = block
32
+ @view__.on_contact = block
33
+ end
34
+
35
+ def contact?(&block)
36
+ @view__.will_contact = block
33
37
  end
34
38
 
35
39
  def position()
@@ -60,6 +64,24 @@ module RubySketch
60
64
  @view__.velocity = vector.getInternal__
61
65
  end
62
66
 
67
+ def vx()
68
+ @view__.velocity.x
69
+ end
70
+
71
+ def vx=(value)
72
+ @view__.velocity = @view__.velocity.tap {|v| v.x = value}
73
+ value
74
+ end
75
+
76
+ def vy()
77
+ @view__.velocity.y
78
+ end
79
+
80
+ def vy=(value)
81
+ @view__.velocity = @view__.velocity.tap {|v| v.y = value}
82
+ value
83
+ end
84
+
63
85
  alias pos position
64
86
  alias pos= position=
65
87
  alias vel velocity
@@ -77,7 +99,7 @@ module RubySketch
77
99
  end
78
100
 
79
101
  class View < Reflex::View
80
- attr_accessor :update, :contact
102
+ attr_accessor :update, :contact, :will_contact
81
103
  attr_reader :sprite
82
104
 
83
105
  def initialize(sprite, *a, **k, &b)
@@ -93,6 +115,11 @@ module RubySketch
93
115
  v = e.view
94
116
  @contact.call v.sprite, e.action if @contact && v.is_a?(View)
95
117
  end
118
+
119
+ def will_contact?(v)
120
+ return true if !@will_contact || !v.is_a?(View)
121
+ @will_contact.call v.sprite
122
+ end
96
123
  end
97
124
 
98
125
  end# Sprite
@@ -0,0 +1,13 @@
1
+ module RubySketch
2
+
3
+
4
+ class Window < Processing::Window
5
+
6
+ def on_update(e)
7
+ Beeps.process_streams!
8
+ end
9
+
10
+ end# Window
11
+
12
+
13
+ end# RubySketch
data/lib/rubysketch.rb CHANGED
@@ -2,7 +2,7 @@ require 'rubysketch/all'
2
2
 
3
3
 
4
4
  module RubySketch
5
- WINDOW = Processing::Window.new {start}
5
+ WINDOW = RubySketch::Window.new {start}
6
6
  CONTEXT = RubySketch::Context.new WINDOW
7
7
 
8
8
  refine Object do
@@ -25,6 +25,6 @@ begin
25
25
  w.__send__ :begin_draw
26
26
  at_exit do
27
27
  w.__send__ :end_draw
28
- Processing::App.new {w.show}.start if c.hasDrawBlock__ && !$!
28
+ Processing::App.new {w.show}.start if c.hasUserBlocks__ && !$!
29
29
  end
30
30
  end
data/pod.rake ADDED
@@ -0,0 +1,33 @@
1
+ # -*- mode: ruby -*-
2
+
3
+
4
+ github = 'https://github.com/xord'
5
+ renames = {reflexion: 'reflex'}
6
+ regexp = /add\w+dependency.*['"](\w+)['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/
7
+ repos = File.readlines('rubysketch.gemspec', chomp: true)
8
+ .map {|s| regexp.match(s)&.values_at 1, 2}
9
+ .compact
10
+ .to_h
11
+ .transform_keys {|name| renames[name.to_sym].then {|s| s || name}}
12
+
13
+
14
+ task :clobber do
15
+ sh %( rm -rf #{repos.keys.join ' '} )
16
+ end
17
+
18
+ task :setup
19
+
20
+ repos.each do |repo, ver|
21
+ rakefile = "#{repo}/Rakefile"
22
+ opts = {
23
+ depth: 1,
24
+ branch: (ENV['RUBYSKETCH_BRANCH'] || "v#{ver}")
25
+ }.map {|k, v| "--#{k} #{v}"}.join ' '
26
+
27
+ task :setup => rakefile
28
+
29
+ file rakefile do
30
+ sh %( git clone #{opts} #{github}/#{repo} )
31
+ sh %( cd #{repo} && VENDOR_NOCOMPILE=1 rake vendor erb )
32
+ end
33
+ end
data/rubysketch.gemspec CHANGED
@@ -28,12 +28,12 @@ Gem::Specification.new do |s|
28
28
  s.platform = Gem::Platform::RUBY
29
29
  s.required_ruby_version = '>= 2.7.0'
30
30
 
31
- s.add_runtime_dependency 'xot', '~> 0.1.32'
32
- s.add_runtime_dependency 'rucy', '~> 0.1.32'
33
- s.add_runtime_dependency 'beeps', '~> 0.1.32'
34
- s.add_runtime_dependency 'rays', '~> 0.1.32'
35
- s.add_runtime_dependency 'reflexion', '~> 0.1.32'
36
- s.add_runtime_dependency 'processing', '~> 0.5.2'
31
+ s.add_runtime_dependency 'xot', '~> 0.1.33'
32
+ s.add_runtime_dependency 'rucy', '~> 0.1.33'
33
+ s.add_runtime_dependency 'beeps', '~> 0.1.33'
34
+ s.add_runtime_dependency 'rays', '~> 0.1.33'
35
+ s.add_runtime_dependency 'reflexion', '~> 0.1.33'
36
+ s.add_runtime_dependency 'processing', '~> 0.5.3'
37
37
 
38
38
  s.add_development_dependency 'rake'
39
39
  s.add_development_dependency 'test-unit'
data/src/RubySketch.h ADDED
@@ -0,0 +1,22 @@
1
+ // -*- mode: objc -*-
2
+ #import <Foundation/Foundation.h>
3
+ #import <CRBValue.h>
4
+
5
+
6
+ @interface RubySketch : NSObject
7
+
8
+ typedef void (^RescueBlock) (CRBValue* exception);
9
+
10
+ + (void) setup;
11
+
12
+ + (BOOL) start;
13
+ + (BOOL) startWithRescue: (RescueBlock) rescue;
14
+
15
+ + (BOOL) start: (NSString*) path;
16
+ + (BOOL) start: (NSString*) path rescue: (RescueBlock) rescue;
17
+
18
+ + (void) setActiveReflexViewController: (id) reflexViewController;
19
+
20
+ + (void) resetActiveReflexViewController;
21
+
22
+ @end
data/src/RubySketch.mm ADDED
@@ -0,0 +1,92 @@
1
+ // -*- mode: objc -*-
2
+ #import <CRuby.h>
3
+ #import "RubySketch.h"
4
+ #include "../reflex/src/ios/view_controller.h"
5
+
6
+
7
+ extern "C"
8
+ {
9
+ void Init_beeps_native ();
10
+ void Init_rays_native ();
11
+ void Init_reflex_native ();
12
+ }
13
+
14
+
15
+ static ReflexViewController* active_reflex_view_controller = nil;
16
+
17
+ static ReflexViewController*
18
+ ReflexViewController_create()
19
+ {
20
+ return active_reflex_view_controller;
21
+ }
22
+
23
+ static void
24
+ ReflexViewController_show (UIViewController*, ReflexViewController*)
25
+ {
26
+ }
27
+
28
+
29
+ @implementation RubySketch
30
+
31
+ + (void) setup
32
+ {
33
+ static BOOL done = NO;
34
+ if (done) return;
35
+ done = YES;
36
+
37
+ [CRuby addExtension:@"beeps/native" init:^{Init_beeps_native();}];
38
+ [CRuby addExtension:@"rays/native" init:^{Init_rays_native();}];
39
+ [CRuby addExtension:@"reflex/native" init:^{Init_reflex_native();}];
40
+
41
+ for (NSString *ext in @[
42
+ @"Xot",
43
+ @"Rucy",
44
+ @"Beeps",
45
+ @"Rays",
46
+ @"Reflex",
47
+ @"Processing",
48
+ @"RubySketch"
49
+ ]) [CRuby addLibrary:ext bundle:[NSBundle bundleForClass:RubySketch.class]];
50
+
51
+ ReflexViewController_set_create_fun(ReflexViewController_create);
52
+ ReflexViewController_set_show_fun(ReflexViewController_show);
53
+ }
54
+
55
+ + (BOOL) start
56
+ {
57
+ return [self start:@"main.rb" rescue:nil];
58
+ }
59
+
60
+ + (BOOL) startWithRescue: (RescueBlock) rescue
61
+ {
62
+ return [self start:@"main.rb" rescue:rescue];
63
+ }
64
+
65
+ + (BOOL) start: (NSString*) path
66
+ {
67
+ return [self start:path rescue:nil];
68
+ }
69
+
70
+ + (BOOL) start: (NSString*) path rescue: (RescueBlock) rescue
71
+ {
72
+ CRBValue* ret = [CRuby evaluate:[NSString stringWithFormat:@
73
+ "raise 'already started' unless require 'rubysketch'\n"
74
+ "load '%@'\n"
75
+ "RubySketch::WINDOW.__send__ :end_draw\n"
76
+ "RubySketch::WINDOW.show",
77
+ path
78
+ ]];
79
+ return ret && ret.toBOOL;
80
+ }
81
+
82
+ + (void) setActiveReflexViewController: (id) reflexViewController
83
+ {
84
+ active_reflex_view_controller = reflexViewController;
85
+ }
86
+
87
+ + (void) resetActiveReflexViewController
88
+ {
89
+ active_reflex_view_controller = nil;
90
+ }
91
+
92
+ @end
data/test/helper.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
 
4
- %w[../xot ../rucy ../rays ../reflex ../processing .]
4
+ %w[../xot ../rucy ../beeps ../rays ../reflex ../processing .]
5
5
  .map {|s| File.expand_path "../#{s}/lib", __dir__}
6
6
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
7
7
 
8
- require 'test/unit'
9
8
  require 'xot/test'
10
9
  require 'rubysketch/all'
11
10
 
11
+ require 'test/unit'
12
+
12
13
  include Xot::Test
@@ -0,0 +1,90 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ require_relative 'helper'
5
+
6
+
7
+ class TestSound < Test::Unit::TestCase
8
+
9
+ RS = RubySketch
10
+ B = Beeps
11
+
12
+ PATH = 'test.wav'
13
+
14
+ def sound()
15
+ RS::Sound.load PATH
16
+ end
17
+
18
+ def setup()
19
+ B::Sound.new(B::Oscillator.new >> B::Gain.new(gain: 0), 0.1).save PATH
20
+ end
21
+
22
+ def teardown()
23
+ B::SoundPlayer.stop_all
24
+ File.delete PATH if File.exist?(PATH)
25
+ end
26
+
27
+ def test_play()
28
+ s = sound
29
+ assert_equal [false, false, true], [s.playing?, s.paused?, s.stopped?]
30
+ s.play
31
+ assert_equal [true, false, false], [s.playing?, s.paused?, s.stopped?]
32
+ end
33
+
34
+ def test_pause()
35
+ s = sound
36
+ s.play
37
+ assert_equal [true, false, false], [s.playing?, s.paused?, s.stopped?]
38
+ s.pause
39
+ assert_equal [false, true, false], [s.playing?, s.paused?, s.stopped?]
40
+ end
41
+
42
+ def test_stop()
43
+ s = sound
44
+ s.play
45
+ assert_equal [true, false, false], [s.playing?, s.paused?, s.stopped?]
46
+ s.stop
47
+ assert_equal [false, false, true], [s.playing?, s.paused?, s.stopped?]
48
+ end
49
+
50
+ def test_play_end_then_stop()
51
+ s = sound
52
+ s.play
53
+ assert_equal [true, false, false], [s.playing?, s.paused?, s.stopped?]
54
+ sleep 0.2
55
+ assert_equal [false, false, true], [s.playing?, s.paused?, s.stopped?]
56
+ end
57
+
58
+ def test_play_after_pause()
59
+ s = sound
60
+ s.play
61
+ s.pause
62
+ assert_equal [false, true, false], [s.playing?, s.paused?, s.stopped?]
63
+ s.play
64
+ assert_equal [true, false, false], [s.playing?, s.paused?, s.stopped?]
65
+ end
66
+
67
+ def test_stop_after_pause()
68
+ s = sound
69
+ s.play
70
+ s.pause
71
+ assert_equal [false, true, false], [s.playing?, s.paused?, s.stopped?]
72
+ s.stop
73
+ assert_equal [false, false, true], [s.playing?, s.paused?, s.stopped?]
74
+ end
75
+
76
+ def test_save()
77
+ s = sound
78
+
79
+ File.delete PATH
80
+ assert_false File.exist? PATH
81
+
82
+ s.save PATH
83
+ assert_true File.exist? PATH
84
+ end
85
+
86
+ def test_load()
87
+ assert_nothing_raised {sound.play}
88
+ end
89
+
90
+ end# TestSound
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubysketch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-01 00:00:00.000000000 Z
11
+ date: 2023-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -16,84 +16,84 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.32
19
+ version: 0.1.33
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.32
26
+ version: 0.1.33
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rucy
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.32
33
+ version: 0.1.33
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.1.32
40
+ version: 0.1.33
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: beeps
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.32
47
+ version: 0.1.33
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.32
54
+ version: 0.1.33
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rays
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.32
61
+ version: 0.1.33
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.1.32
68
+ version: 0.1.33
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: reflexion
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.1.32
75
+ version: 0.1.33
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.1.32
82
+ version: 0.1.33
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: processing
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.5.2
89
+ version: 0.5.3
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.5.2
96
+ version: 0.5.3
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -162,11 +162,15 @@ files:
162
162
  - lib/rubysketch/extension.rb
163
163
  - lib/rubysketch/graphics_context.rb
164
164
  - lib/rubysketch/helper.rb
165
+ - lib/rubysketch/sound.rb
165
166
  - lib/rubysketch/sprite.rb
167
+ - lib/rubysketch/window.rb
168
+ - pod.rake
166
169
  - rubysketch.gemspec
167
- - src/RubyProcessing.h
168
- - src/RubyProcessing.mm
170
+ - src/RubySketch.h
171
+ - src/RubySketch.mm
169
172
  - test/helper.rb
173
+ - test/test_sound.rb
170
174
  - test/test_sprite.rb
171
175
  homepage: https://github.com/xord/rubysketch
172
176
  licenses: []
@@ -186,10 +190,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
190
  - !ruby/object:Gem::Version
187
191
  version: '0'
188
192
  requirements: []
189
- rubygems_version: 3.4.6
193
+ rubygems_version: 3.4.10
190
194
  signing_key:
191
195
  specification_version: 4
192
196
  summary: A game engine based on the Processing API.
193
197
  test_files:
194
198
  - test/helper.rb
199
+ - test/test_sound.rb
195
200
  - test/test_sprite.rb
data/src/RubyProcessing.h DELETED
@@ -1,11 +0,0 @@
1
- // -*- mode: objc -*-
2
- #import <Foundation/Foundation.h>
3
-
4
-
5
- @interface RubySketch : NSObject
6
-
7
- + (void) setup;
8
-
9
- + (void) start: (NSString*) path;
10
-
11
- @end
@@ -1,25 +0,0 @@
1
- // -*- mode: objc -*-
2
- #import <CRuby.h>
3
- #import "RubyProcessing.h"
4
- #import "RubySketch.h"
5
-
6
-
7
- @implementation RubySketch
8
-
9
- + (void) setup
10
- {
11
- static BOOL done = NO;
12
- if (done) return;
13
- done = YES;
14
-
15
- [RubyProcessing setup];
16
- [CRuby addLibrary:@"RubySketch" bundle:[NSBundle bundleForClass:RubySketch.class]];
17
- }
18
-
19
- + (void) start: (NSString*) path
20
- {
21
- [CRuby evaluate:@"raise 'already started' unless require 'rubysketch'\n"];
22
- [RubyProcessing start: path];
23
- }
24
-
25
- @end