rubysketch 0.5.25 → 0.5.27

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: 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