rubysketch 0.5.25 → 0.5.27

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: 41b147fcb3fd31ea85f6b29b30681a0280140ded656677ade8bddf91399af6b8
4
- data.tar.gz: 3cc93b88d182703d4c08750029058e0911fe3a17f9c98aa6f951482552c8f1b6
3
+ metadata.gz: 920f2b89bf85f1524a621c2857d4284e4276a8e4589c2533b63f48d34b1c5b25
4
+ data.tar.gz: 26073df4e8b497ef2bcd749143379a21d504a32c45eb7e89afdccfd5d47c82f5
5
5
  SHA512:
6
- metadata.gz: 68665dc8c90267229151102218044d4a95f9a7fbdae5ed61dd8a16cdc9ef14b65b0b582e491bb5be7576618594721ad101e0923245dcb8ed20f004ed658c9c85
7
- data.tar.gz: 94bdd58eda1690e820446a8b58fe2628110ec00d5093515416b9f0e64c2f31d9c545f075d436123abce715359cfe46f39a1d08f3125a1616248b15be2eead5eb
6
+ metadata.gz: eeb5d649537dad8fa0e329679ffb571977e7619c96af9b757ed980b5dc368226c80f6fc10bd93df729075d4e1837d09013addcd4e902a9db45f64cd5cfe39ced
7
+ data.tar.gz: 1873d77cb216ccb8d2221d0a31c09b3e5f29b76e4f4e8c7da2602422e83567f22763d98b114044721dc2e48db3110d41cc2257880e798be47344c22113e54325
data/ChangeLog.md CHANGED
@@ -1,6 +1,16 @@
1
1
  # rubysketch ChangeLog
2
2
 
3
3
 
4
+ ## [v0.5.27] - 2023-07-30
5
+
6
+ - add vibrate()
7
+
8
+
9
+ ## [v0.5.26] - 2023-07-26
10
+
11
+ - Rescue exceptions thrown at sprite event handlers
12
+
13
+
4
14
  ## [v0.5.25] - 2023-07-22
5
15
 
6
16
  - Freeze EASINGS
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.25
1
+ 0.5.27
@@ -44,7 +44,7 @@ module RubySketch
44
44
  def setInterval(seconds = 0, *args, id: nextTimerID__, now: false, &block)
45
45
  return unless block
46
46
  time = Time.now.to_f
47
- block.call *args if now
47
+ block.call(*args) if now
48
48
  setInterval__ id, time, seconds, args, &block
49
49
  end
50
50
 
@@ -59,7 +59,7 @@ module RubySketch
59
59
  now, nextTime = Time.now.to_f, startTime + seconds
60
60
  nextTime = now if nextTime < now
61
61
  setTimeout__ id, nextTime do
62
- block.call *args
62
+ block.call(*args)
63
63
  setInterval__ id, nextTime, seconds, args, &block
64
64
  end
65
65
  end
@@ -91,7 +91,7 @@ module RubySketch
91
91
  @timers__.delete_if do |id, (time, args, block)|
92
92
  (now >= time).tap {|fire| @firingTimers__[id] = [block, args] if fire}
93
93
  end
94
- @firingTimers__.each {|_, (block, args)| block.call *args}
94
+ @firingTimers__.each {|_, (block, args)| block.call(*args)}
95
95
  end
96
96
 
97
97
  # Animate with easing functions
@@ -272,6 +272,14 @@ module RubySketch
272
272
  @layer__.gravity x, y
273
273
  end
274
274
 
275
+ # Generates haptic feedback
276
+ #
277
+ # @return [nil] nil
278
+ #
279
+ def vibrate ()
280
+ Reflex.vibrate
281
+ end
282
+
275
283
  end# Context
276
284
 
277
285
 
@@ -879,6 +879,7 @@ module RubySketch
879
879
  @sprite = sprite
880
880
  super(*a, **k, &b)
881
881
 
882
+ @error = nil
882
883
  @pointer = nil
883
884
  @pointerPrev = nil
884
885
  @pointersPressed = []
@@ -915,7 +916,7 @@ module RubySketch
915
916
  end
916
917
 
917
918
  def on_update(e)
918
- @update&.call
919
+ call_block @update
919
920
  end
920
921
 
921
922
  def on_pointer_down(e)
@@ -923,8 +924,8 @@ module RubySketch
923
924
  updatePointersPressedAndReleased e, true
924
925
  @pointerDownStartPos = to_screen @pointer.pos
925
926
  if e.view_index == 0
926
- @mousePressed&.call if e.any? {|p| p.id == @pointer.id}
927
- @touchStarted&.call
927
+ call_block @mousePressed if e.any? {|p| p.id == @pointer.id}
928
+ call_block @touchStarted
928
929
  end
929
930
  end
930
931
 
@@ -933,10 +934,10 @@ module RubySketch
933
934
  updatePointersPressedAndReleased e, false
934
935
  if e.view_index == 0
935
936
  if e.any? {|p| p.id == @pointer.id}
936
- @mouseReleased&.call
937
- @mouseClicked&.call if mouseClicked?
937
+ call_block @mouseReleased
938
+ call_block @mouseClicked if mouseClicked?
938
939
  end
939
- @touchEnded&.call
940
+ call_block @touchEnded
940
941
  end
941
942
  @pointerDownStartPos = nil
942
943
  @pointersReleased.clear
@@ -946,8 +947,8 @@ module RubySketch
946
947
  updatePointerStates e
947
948
  if e.view_index == 0
948
949
  mouseMoved = e.drag? ? @mouseDragged : @mouseMoved
949
- mouseMoved&.call if e.any? {|p| p.id == @pointer.id}
950
- @touchMoved&.call
950
+ call_block mouseMoved if e.any? {|p| p.id == @pointer.id}
951
+ call_block @touchMoved
951
952
  end
952
953
  end
953
954
 
@@ -957,12 +958,12 @@ module RubySketch
957
958
 
958
959
  def on_contact_begin(e)
959
960
  v = e.view
960
- @contact.call v.sprite, e.action if @contact && v.respond_to?(:sprite)
961
+ call_block @contact, v.sprite, e.action if v.respond_to?(:sprite)
961
962
  end
962
963
 
963
964
  def will_contact?(v)
964
965
  return true unless @will_contact && v.respond_to?(:sprite)
965
- @will_contact.call v.sprite
966
+ call_block @will_contact, v.sprite
966
967
  end
967
968
 
968
969
  private
@@ -1002,6 +1003,13 @@ module RubySketch
1002
1003
  .then {|pos, startPos| (pos - startPos).length < 3}
1003
1004
  end
1004
1005
 
1006
+ def call_block(block, *args)
1007
+ block.call(*args) if block && !@error
1008
+ rescue Exception => e
1009
+ @error = e
1010
+ $stderr.puts e.full_message
1011
+ end
1012
+
1005
1013
  end# SpriteView
1006
1014
 
1007
1015
 
data/rubysketch.gemspec CHANGED
@@ -29,8 +29,8 @@ Gem::Specification.new do |s|
29
29
  s.add_runtime_dependency 'rucy', '~> 0.1.39'
30
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.49'
33
- s.add_runtime_dependency 'processing', '~> 0.5.25'
32
+ s.add_runtime_dependency 'reflexion', '~> 0.1.50'
33
+ s.add_runtime_dependency 'processing', '~> 0.5.26'
34
34
 
35
35
  s.add_development_dependency 'rake'
36
36
  s.add_development_dependency 'test-unit'
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.25
4
+ version: 0.5.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-22 00:00:00.000000000 Z
11
+ date: 2023-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -72,28 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.1.49
75
+ version: 0.1.50
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.49
82
+ version: 0.1.50
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.25
89
+ version: 0.5.26
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.25
96
+ version: 0.5.26
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement