rubyhop 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rubyhop.rb +25 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3a7bd3e2a2d85f16e6554902f36a25ce939a603
|
4
|
+
data.tar.gz: f5eac8301dbc469bd5f4fcd1cf5ad1aa20021ee3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccf0c6b7733f1d431509398cce633582cfcdc40ca1d88a544ba83b3a5831040f10c918bfcbb8c3fb22b677a8fc4313f6e9488d7e48a300cf937a40d6ddae1ad3
|
7
|
+
data.tar.gz: 2d3a1a8cb3f33865d9c73ffa45151fc4fd3ec6cdd32774f3f23c654cade645272ff2ee4b70a6ee53b251a964676321d896a5d7205757f67ba539ebb727bfc7f3
|
data/lib/rubyhop.rb
CHANGED
@@ -5,7 +5,7 @@ def get_my_file file
|
|
5
5
|
end
|
6
6
|
|
7
7
|
class Player
|
8
|
-
attr_accessor :x, :y
|
8
|
+
attr_accessor :x, :y, :alive
|
9
9
|
def initialize window
|
10
10
|
@window = window
|
11
11
|
@alive = true
|
@@ -65,18 +65,14 @@ class Player
|
|
65
65
|
end
|
66
66
|
|
67
67
|
class Hoop
|
68
|
-
attr_accessor :x, :y
|
68
|
+
attr_accessor :x, :y, :active
|
69
69
|
def initialize window
|
70
70
|
@window = window
|
71
71
|
@hoop = Gosu::Image.new window, get_my_file("hoop.png")
|
72
72
|
# center of screen
|
73
73
|
@movement = 2
|
74
74
|
@x = @y = 0
|
75
|
-
|
76
|
-
end
|
77
|
-
def reset_position!
|
78
|
-
@x += 1200
|
79
|
-
@y = rand 150..500
|
75
|
+
@active = true
|
80
76
|
end
|
81
77
|
def miss player
|
82
78
|
if (@x - player.x).abs < 12 &&
|
@@ -87,7 +83,6 @@ class Hoop
|
|
87
83
|
false
|
88
84
|
end
|
89
85
|
def update
|
90
|
-
reset_position! if @x < -200
|
91
86
|
@movement += 0.003
|
92
87
|
@x -= @movement
|
93
88
|
end
|
@@ -97,7 +92,7 @@ class Hoop
|
|
97
92
|
end
|
98
93
|
|
99
94
|
class RubyhopGame < Gosu::Window
|
100
|
-
VERSION = "1.
|
95
|
+
VERSION = "1.1.0"
|
101
96
|
def initialize width=800, height=600, fullscreen=false
|
102
97
|
super
|
103
98
|
self.caption = "Ruby Hop"
|
@@ -107,17 +102,30 @@ class RubyhopGame < Gosu::Window
|
|
107
102
|
@player = Player.new self
|
108
103
|
@hoops = 6.times.map { Hoop.new self }
|
109
104
|
init_hoops!
|
105
|
+
@score = 0
|
110
106
|
end
|
111
107
|
|
112
108
|
def init_hoops!
|
109
|
+
@hoops.each do |hoop|
|
110
|
+
hoop.y = 325
|
111
|
+
end
|
113
112
|
hoop_start = 600
|
114
113
|
@hoops.each do |hoop|
|
114
|
+
reset_hoop! hoop
|
115
115
|
hoop_start += 200
|
116
|
-
hoop.reset_position!
|
117
116
|
hoop.x = hoop_start
|
118
117
|
end
|
119
118
|
end
|
120
119
|
|
120
|
+
def reset_hoop! hoop
|
121
|
+
idx = @hoops.index hoop
|
122
|
+
prev = @hoops[idx - 1]
|
123
|
+
new_y = ((prev.y-150..prev.y+125).to_a & (150..500).to_a).sample
|
124
|
+
hoop.x += 1200
|
125
|
+
hoop.y = new_y
|
126
|
+
hoop.active = true
|
127
|
+
end
|
128
|
+
|
121
129
|
def button_down id
|
122
130
|
close if id == Gosu::KbEscape
|
123
131
|
@player.hop if id == Gosu::KbSpace
|
@@ -127,7 +135,14 @@ class RubyhopGame < Gosu::Window
|
|
127
135
|
@player.update
|
128
136
|
@hoops.each do |hoop|
|
129
137
|
hoop.update
|
138
|
+
reset_hoop!(hoop) if hoop.x < -200
|
130
139
|
@player.die! if hoop.miss @player
|
140
|
+
# increase score and flag as inactive
|
141
|
+
if hoop.active && @player.alive && hoop.x < @player.x
|
142
|
+
@score += 1
|
143
|
+
hoop.active = false
|
144
|
+
self.caption = "Ruby Hop: #{@score}"
|
145
|
+
end
|
131
146
|
end
|
132
147
|
end
|
133
148
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyhop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdoc
|