rubysketch 0.5.18 → 0.5.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a57b4fcc0eb7699cf1bc5207145f4621d4f1b807d390d8fbe9f06f3cc9eba78
4
- data.tar.gz: 384dfcb3495eeadf390f5f74c86c99cef32b91a0926cedfa1848225e1aa8a98b
3
+ metadata.gz: de696798b30cb2b3545e2b2c44aeda9ca5df2658e7026392f20ba9cf9bf85570
4
+ data.tar.gz: a7a93a821db3bb44dac6c656d23ae246f696b09ce4d2b2c2eacd797d44664659
5
5
  SHA512:
6
- metadata.gz: 82ea2f25e3299991344f514aa3495a4b68b32d3097bcff0e1913dddae19756521c55edcf892ba7eda5b9acf05e25530e379359f78332d566b2b824fea41270f1
7
- data.tar.gz: 453434d0c6d9f80a138b40654441b8b7cf133e1bf6a3c19b241e06fd1710836a28ecf9816edd0bad8910b7870dd88098ed83244892649c84f00a39725916424c
6
+ metadata.gz: 4c4f5662bd7ad50e429dc5de1e91de19fe73be52de3f48addefa6b67007218f9dd9bad033603cf89a2bf08b092d8b424116abc0cb8a1ac4e0d6a9428b7eaa124
7
+ data.tar.gz: 4b2e98ed91f9eff96170fcd79f1bfac8323c341e7c10ffa65f060be7d04645f8bf41502608dc2d7914f5a5a968f6ec4a9959db5af57cd2217d862468e1ad01b2
data/ChangeLog.md CHANGED
@@ -1,6 +1,16 @@
1
1
  # rubysketch ChangeLog
2
2
 
3
3
 
4
+ ## [v0.5.20] - 2023-07-09
5
+
6
+ - fix that calling mousePressed() without block removes mousePressed block
7
+
8
+
9
+ ## [v0.5.19] - 2023-06-27
10
+
11
+ - add loadSound() and RubySketch::Sound class
12
+
13
+
4
14
  ## [v0.5.18] - 2023-06-22
5
15
 
6
16
  - Update dependencies
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.18
1
+ 0.5.20
@@ -6,6 +6,7 @@ require 'rubysketch/window'
6
6
  require 'rubysketch/helper'
7
7
 
8
8
  require 'rubysketch/sprite'
9
+ require 'rubysketch/sound'
9
10
  require 'rubysketch/context'
10
11
 
11
12
 
@@ -4,6 +4,7 @@ module RubySketch
4
4
  class Context < Processing::Context
5
5
 
6
6
  Sprite = RubySketch::Sprite
7
+ Sound = RubySketch::Sound
7
8
 
8
9
  # @private
9
10
  def initialize(window)
@@ -112,6 +113,16 @@ module RubySketch
112
113
  end
113
114
  end
114
115
 
116
+ # Loads sound file.
117
+ #
118
+ # @param [String] path path for sound file
119
+ #
120
+ # @return [Sound] sound object
121
+ #
122
+ def loadSound(path)
123
+ Sound.load path
124
+ end
125
+
115
126
  # Sets gravity for the physics engine.
116
127
  #
117
128
  # @overload gravity(vec)
@@ -0,0 +1,57 @@
1
+ module RubySketch
2
+
3
+
4
+ # Sound object.
5
+ #
6
+ class Sound
7
+
8
+ # @private
9
+ def initialize(sound)
10
+ @sound = sound
11
+ @players = []
12
+ end
13
+
14
+ # Play sound.
15
+ #
16
+ # @param [Numeric] gain volume for playing sound
17
+ #
18
+ # @return [nil] nil
19
+ #
20
+ def play(gain: 1.0)
21
+ clean_stopped_players
22
+ @players.push @sound.play(gain: gain)
23
+ nil
24
+ end
25
+
26
+ # Stop playing sounds.
27
+ #
28
+ # @return [nil] nil
29
+ #
30
+ def stop()
31
+ @players.each &:stop
32
+ @players.clear
33
+ nil
34
+ end
35
+
36
+ # Load a sound file.
37
+ #
38
+ # @param [String] path file path
39
+ #
40
+ # @return [Sound] sound object
41
+ #
42
+ def self.load(path)
43
+ f = Beeps::FileIn.new path
44
+ self.new Beeps::Sound.new(f, f.seconds, nchannels: f.nchannels)
45
+ end
46
+
47
+ private
48
+
49
+ # @private
50
+ def clean_stopped_players()
51
+ @players.delete_if {|p| not p.playing?}
52
+ end
53
+
54
+ end# Sound
55
+
56
+
57
+ end# RubySketch
@@ -699,7 +699,7 @@ module RubySketch
699
699
  # @return [nil] nil
700
700
  #
701
701
  def update(&block)
702
- @view__.update = block
702
+ @view__.update = block if block
703
703
  nil
704
704
  end
705
705
 
@@ -715,7 +715,7 @@ module RubySketch
715
715
  # @return [nil] nil
716
716
  #
717
717
  def draw(&block)
718
- @drawBlock__ = block
718
+ @drawBlock__ = block if block
719
719
  nil
720
720
  end
721
721
 
@@ -729,7 +729,7 @@ module RubySketch
729
729
  # @return [Boolean] is any mouse button pressed or not
730
730
  #
731
731
  def mousePressed(&block)
732
- @view__.mousePressed = block
732
+ @view__.mousePressed = block if block
733
733
  @view__.mousePressed?
734
734
  end
735
735
 
@@ -743,7 +743,7 @@ module RubySketch
743
743
  # @return [nil] nil
744
744
  #
745
745
  def mouseReleased(&block)
746
- @view__.mouseReleased = block
746
+ @view__.mouseReleased = block if block
747
747
  nil
748
748
  end
749
749
 
@@ -757,7 +757,7 @@ module RubySketch
757
757
  # @return [nil] nil
758
758
  #
759
759
  def mouseMoved(&block)
760
- @view__.mouseMoved = block
760
+ @view__.mouseMoved = block if block
761
761
  nil
762
762
  end
763
763
 
@@ -771,7 +771,7 @@ module RubySketch
771
771
  # @return [nil] nil
772
772
  #
773
773
  def mouseDragged(&block)
774
- @view__.mouseDragged = block
774
+ @view__.mouseDragged = block if block
775
775
  nil
776
776
  end
777
777
 
@@ -785,7 +785,7 @@ module RubySketch
785
785
  # @return [nil] nil
786
786
  #
787
787
  def mouseClicked(&block)
788
- @view__.mouseClicked = block
788
+ @view__.mouseClicked = block if block
789
789
  nil
790
790
  end
791
791
 
@@ -799,7 +799,7 @@ module RubySketch
799
799
  # @return [nil] nil
800
800
  #
801
801
  def touchStarted(&block)
802
- @view__.touchStarted = block
802
+ @view__.touchStarted = block if block
803
803
  nil
804
804
  end
805
805
 
@@ -813,7 +813,7 @@ module RubySketch
813
813
  # @return [nil] nil
814
814
  #
815
815
  def touchEnded(&block)
816
- @view__.touchEnded = block
816
+ @view__.touchEnded = block if block
817
817
  nil
818
818
  end
819
819
 
@@ -827,7 +827,7 @@ module RubySketch
827
827
  # @return [nil] nil
828
828
  #
829
829
  def touchMoved(&block)
830
- @view__.touchMoved = block
830
+ @view__.touchMoved = block if block
831
831
  nil
832
832
  end
833
833
 
@@ -841,7 +841,7 @@ module RubySketch
841
841
  # @return [nil] nil
842
842
  #
843
843
  def contact(&block)
844
- @view__.contact = block
844
+ @view__.contact = block if block
845
845
  end
846
846
 
847
847
  # Defines contact? block.
@@ -854,7 +854,7 @@ module RubySketch
854
854
  # @return [nil] nil
855
855
  #
856
856
  def contact?(&block)
857
- @view__.will_contact = block
857
+ @view__.will_contact = block if block
858
858
  end
859
859
 
860
860
  # @private
@@ -978,7 +978,7 @@ module RubySketch
978
978
  if !mousePressed? || pointer.id == @pointer&.id
979
979
  @pointerPrev, @pointer = @pointer, pointer.dup
980
980
  end
981
- @touches = event.map {|p| Touch.new(p.id, *p.pos.to_a)}
981
+ @touches = event.map {|p| Processing::Touch.new(p.id, *p.pos.to_a)}
982
982
  end
983
983
 
984
984
  def updatePointersPressedAndReleased(event, pressed)
data/rubysketch.gemspec CHANGED
@@ -27,10 +27,10 @@ Gem::Specification.new do |s|
27
27
 
28
28
  s.add_runtime_dependency 'xot', '~> 0.1.39'
29
29
  s.add_runtime_dependency 'rucy', '~> 0.1.39'
30
- s.add_runtime_dependency 'beeps', '~> 0.1.40'
30
+ s.add_runtime_dependency 'beeps', '~> 0.1.41'
31
31
  s.add_runtime_dependency 'rays', '~> 0.1.43'
32
- s.add_runtime_dependency 'reflexion', '~> 0.1.46'
33
- s.add_runtime_dependency 'processing', '~> 0.5.19'
32
+ s.add_runtime_dependency 'reflexion', '~> 0.1.47'
33
+ s.add_runtime_dependency 'processing', '~> 0.5.21'
34
34
 
35
35
  s.add_development_dependency 'rake'
36
36
  s.add_development_dependency 'test-unit'
@@ -0,0 +1,33 @@
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_stop()
28
+ s = sound
29
+ assert_nothing_raised {s.play}
30
+ assert_nothing_raised {s.stop}
31
+ end
32
+
33
+ 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.18
4
+ version: 0.5.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-22 00:00:00.000000000 Z
11
+ date: 2023-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.40
47
+ version: 0.1.41
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.40
54
+ version: 0.1.41
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rays
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,28 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.1.46
75
+ version: 0.1.47
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.46
82
+ version: 0.1.47
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.19
89
+ version: 0.5.21
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.19
96
+ version: 0.5.21
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -163,6 +163,7 @@ files:
163
163
  - lib/rubysketch/context.rb
164
164
  - lib/rubysketch/extension.rb
165
165
  - lib/rubysketch/helper.rb
166
+ - lib/rubysketch/sound.rb
166
167
  - lib/rubysketch/sprite.rb
167
168
  - lib/rubysketch/window.rb
168
169
  - pod.rake
@@ -170,6 +171,7 @@ files:
170
171
  - src/RubySketch.h
171
172
  - src/RubySketch.mm
172
173
  - test/helper.rb
174
+ - test/test_sound.rb
173
175
  - test/test_sprite.rb
174
176
  homepage: https://github.com/xord/rubysketch
175
177
  licenses:
@@ -196,4 +198,5 @@ specification_version: 4
196
198
  summary: A game engine based on the Processing API.
197
199
  test_files:
198
200
  - test/helper.rb
201
+ - test/test_sound.rb
199
202
  - test/test_sprite.rb