rubysketch-solitaire 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +3 -0
- data/.gitignore +2 -0
- data/.hooks/pre-commit +69 -0
- data/ChangeLog.md +21 -0
- data/Gemfile.lock +10 -10
- data/Podfile.lock +33 -33
- 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 +140 -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 +10 -2
- 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 +378 -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 +54 -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,11 +5,19 @@ 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
|
@@ -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
|