rubysketch-solitaire 0.1.0 → 0.9.0
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 +4 -4
- data/.github/workflows/test.yml +3 -0
- data/.gitignore +2 -0
- data/.hooks/post-commit +37 -0
- data/.hooks/pre-commit +69 -0
- data/ChangeLog.md +27 -0
- data/Gemfile.lock +10 -10
- data/Podfile.lock +33 -33
- data/README.md +8 -0
- data/Rakefile +107 -10
- data/RubySolitaire/Ad.swift +88 -0
- data/RubySolitaire/Assets.xcassets/AppIcon.appiconset/AppIcon.png +0 -0
- data/RubySolitaire/Assets.xcassets/AppIcon.appiconset/Contents.json +3 -87
- data/RubySolitaire/Base.lproj/Localizable.strings +6 -0
- data/RubySolitaire/Extensions.swift +5 -0
- data/RubySolitaire/GameView.swift +75 -13
- data/RubySolitaire/Helper.swift +70 -0
- data/RubySolitaire/MenuScreen.swift +141 -0
- data/RubySolitaire/RubySolitaireApp.swift +188 -1
- data/RubySolitaire/SafariView.swift +16 -0
- data/RubySolitaire/Strings.swift +48 -0
- data/RubySolitaire/ja.lproj/InfoPlist.strings +4 -0
- data/RubySolitaire/ja.lproj/Localizable.strings +6 -0
- data/VERSION +1 -1
- data/data/card.png +0 -0
- data/data/classicPSPWave.glsl +94 -0
- data/data/colorfulUnderwaterBubbles2.glsl +113 -0
- data/data/cosmic2.glsl +121 -0
- data/data/reflectiveHexes.glsl +219 -0
- data/fastlane/Fastfile +76 -0
- data/fastlane/metadata/copyright.txt +1 -0
- data/fastlane/metadata/en-US/apple_tv_privacy_policy.txt +1 -0
- data/fastlane/metadata/en-US/description.txt +5 -0
- data/fastlane/metadata/en-US/keywords.txt +1 -0
- data/fastlane/metadata/en-US/marketing_url.txt +1 -0
- data/fastlane/metadata/en-US/name.txt +1 -0
- data/fastlane/metadata/en-US/privacy_url.txt +1 -0
- data/fastlane/metadata/en-US/promotional_text.txt +1 -0
- data/fastlane/metadata/en-US/release_notes.txt +1 -0
- data/fastlane/metadata/en-US/subtitle.txt +1 -0
- data/fastlane/metadata/en-US/support_url.txt +1 -0
- data/fastlane/metadata/ja/apple_tv_privacy_policy.txt +1 -0
- data/fastlane/metadata/ja/description.txt +5 -0
- data/fastlane/metadata/ja/keywords.txt +1 -0
- data/fastlane/metadata/ja/marketing_url.txt +1 -0
- data/fastlane/metadata/ja/name.txt +1 -0
- data/fastlane/metadata/ja/privacy_url.txt +1 -0
- data/fastlane/metadata/ja/promotional_text.txt +1 -0
- data/fastlane/metadata/ja/release_notes.txt +1 -0
- data/fastlane/metadata/ja/subtitle.txt +1 -0
- data/fastlane/metadata/ja/support_url.txt +1 -0
- data/fastlane/metadata/primary_category.txt +1 -0
- data/fastlane/metadata/primary_first_sub_category.txt +1 -0
- data/fastlane/metadata/primary_second_sub_category.txt +1 -0
- data/fastlane/metadata/review_information/demo_password.txt +1 -0
- data/fastlane/metadata/review_information/demo_user.txt +1 -0
- data/fastlane/metadata/review_information/email_address.txt +1 -0
- data/fastlane/metadata/review_information/first_name.txt +0 -0
- data/fastlane/metadata/review_information/last_name.txt +0 -0
- data/fastlane/metadata/review_information/notes.txt +1 -0
- data/fastlane/metadata/review_information/phone_number.txt +0 -0
- data/fastlane/metadata/secondary_category.txt +1 -0
- data/fastlane/metadata/secondary_first_sub_category.txt +1 -0
- data/fastlane/metadata/secondary_second_sub_category.txt +1 -0
- data/lib/rubysketch/solitaire/background.rb +115 -12
- data/lib/rubysketch/solitaire/card.rb +10 -87
- data/lib/rubysketch/solitaire/common/animation.rb +34 -34
- data/lib/rubysketch/solitaire/common/button.rb +49 -19
- data/lib/rubysketch/solitaire/common/dialog.rb +78 -21
- data/lib/rubysketch/solitaire/common/scene.rb +15 -4
- data/lib/rubysketch/solitaire/common/settings.rb +15 -3
- data/lib/rubysketch/solitaire/common/timer.rb +2 -2
- data/lib/rubysketch/solitaire/common/transitions.rb +12 -6
- data/lib/rubysketch/solitaire/common/utils.rb +15 -0
- data/lib/rubysketch/solitaire/klondike.rb +382 -81
- data/lib/rubysketch/solitaire/places.rb +12 -102
- data/lib/rubysketch/solitaire/skin.rb +151 -0
- data/lib/rubysketch/solitaire.rb +33 -9
- data/main.rb +1 -0
- data/project.yml +85 -4
- metadata +55 -2
@@ -14,6 +14,12 @@ class Scene
|
|
14
14
|
|
15
15
|
attr_reader :name, :parent
|
16
16
|
|
17
|
+
def pause()
|
18
|
+
end
|
19
|
+
|
20
|
+
def resume()
|
21
|
+
end
|
22
|
+
|
17
23
|
def add(scene)
|
18
24
|
@scenes.push scene
|
19
25
|
scene.parent = self
|
@@ -28,12 +34,13 @@ class Scene
|
|
28
34
|
scene
|
29
35
|
end
|
30
36
|
|
31
|
-
def transition(to, effect = nil, *args, **kwargs)
|
37
|
+
def transition(to, effect = nil, *args, **kwargs, &block)
|
32
38
|
if effect
|
33
|
-
add effect.new(to, *args, **kwargs)
|
39
|
+
add effect.new(to, *args, **kwargs, &block)
|
34
40
|
else
|
35
41
|
parent.add to
|
36
42
|
parent.remove self
|
43
|
+
block.call if block
|
37
44
|
end
|
38
45
|
to
|
39
46
|
end
|
@@ -61,6 +68,10 @@ class Scene
|
|
61
68
|
@particle ||= Particle.new
|
62
69
|
end
|
63
70
|
|
71
|
+
def active?()
|
72
|
+
@active
|
73
|
+
end
|
74
|
+
|
64
75
|
def update()
|
65
76
|
size = [width, height]
|
66
77
|
if size != @prevSize
|
@@ -95,8 +106,8 @@ class Scene
|
|
95
106
|
@active = false
|
96
107
|
end
|
97
108
|
|
98
|
-
def
|
99
|
-
@
|
109
|
+
def focusChanged(focus)
|
110
|
+
@scenes.each {|scene| scene.focusChanged focus}
|
100
111
|
end
|
101
112
|
|
102
113
|
def mousePressed(x, y, button)
|
@@ -5,15 +5,27 @@ class Settings
|
|
5
5
|
@hash = load path
|
6
6
|
end
|
7
7
|
|
8
|
-
def
|
9
|
-
hash
|
8
|
+
def clear()
|
9
|
+
hash.clear
|
10
10
|
save @path
|
11
11
|
end
|
12
12
|
|
13
|
+
def []=(key, value)
|
14
|
+
if value != hash[key]
|
15
|
+
hash[key] = value
|
16
|
+
save @path
|
17
|
+
end
|
18
|
+
value
|
19
|
+
end
|
20
|
+
|
13
21
|
def [](key)
|
14
22
|
hash[key]
|
15
23
|
end
|
16
24
|
|
25
|
+
def to_json()
|
26
|
+
hash.to_json
|
27
|
+
end
|
28
|
+
|
17
29
|
private
|
18
30
|
|
19
31
|
def hash()
|
@@ -21,7 +33,7 @@ class Settings
|
|
21
33
|
end
|
22
34
|
|
23
35
|
def save(path)
|
24
|
-
File.write path,
|
36
|
+
File.write path, to_json
|
25
37
|
end
|
26
38
|
|
27
39
|
def load(path)
|
@@ -7,10 +7,12 @@ class TransitionEffect < Scene
|
|
7
7
|
nextScene, sec: 1,
|
8
8
|
secOut: nil, secIn: nil,
|
9
9
|
easeOut: :expoOut, easeIn: :expoIn,
|
10
|
+
showAd: false,
|
10
11
|
&block)
|
11
12
|
|
12
13
|
super()
|
13
|
-
@nextScene, @easeOut, @easeIn
|
14
|
+
@nextScene, @easeOut, @easeIn, @showAd, @block =
|
15
|
+
nextScene, easeOut, easeIn, showAd, block
|
14
16
|
@secOut = secOut || sec / 2.0
|
15
17
|
@secIn = secIn || sec / 2.0
|
16
18
|
@phase = :out
|
@@ -26,11 +28,15 @@ class TransitionEffect < Scene
|
|
26
28
|
start do
|
27
29
|
case @phase
|
28
30
|
when :out
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
sendCommand :showInterstitialAd if @showAd
|
32
|
+
delay do
|
33
|
+
pa = parent
|
34
|
+
pa.remove self
|
35
|
+
@phase = :in
|
36
|
+
@nextScene.add self
|
37
|
+
pa.transition @nextScene
|
38
|
+
@block.call if @block
|
39
|
+
end
|
34
40
|
when :in
|
35
41
|
parent.remove self
|
36
42
|
end
|
@@ -1,3 +1,10 @@
|
|
1
|
+
using RubySketch
|
2
|
+
|
3
|
+
|
4
|
+
def ios?()
|
5
|
+
RbConfig::CONFIG['CFLAGS'] =~ %r{/Platforms/iPhone(OS|Simulator).platform/}
|
6
|
+
end
|
7
|
+
|
1
8
|
def now()
|
2
9
|
Time.now.to_f
|
3
10
|
end
|
@@ -10,6 +17,14 @@ def dataPath(path)
|
|
10
17
|
File.expand_path "../../../../data/#{path}", __dir__
|
11
18
|
end
|
12
19
|
|
20
|
+
def resizeImage(image, w, h)
|
21
|
+
createGraphics(w, h).tap do |g|
|
22
|
+
g.beginDraw do
|
23
|
+
g.copy image, 0, 0, image.width, image.height, 0, 0, w, h
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
13
28
|
|
14
29
|
module Processing
|
15
30
|
class Vector
|