rubyhop 1.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 885bdcfecc5b74165cd85c830b8ab624ab3726e3
4
+ data.tar.gz: 2b3a5bf532ff2755c1e63e8027da8bdea01d5633
5
+ SHA512:
6
+ metadata.gz: 339f2480beb2895335f8b378d9c4dd4304cd91858bf1aff6e76b8de3b7806e93953befc9fff6248b867c06e2de4be81119d44de606f0484c4a94dfe3a768c797
7
+ data.tar.gz: 196c79a3278fae8bebc37be2f5292dbedc7a36fba79a9656e199f6dee32fa1c37419ef533de3e823973ca32f8aa22c87c2fc967dcd905da6f22047003f5da8ad
data/.autotest ADDED
@@ -0,0 +1,23 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'autotest/restart'
4
+
5
+ # Autotest.add_hook :initialize do |at|
6
+ # at.extra_files << "../some/external/dependency.rb"
7
+ #
8
+ # at.libs << ":../some/external"
9
+ #
10
+ # at.add_exception 'vendor'
11
+ #
12
+ # at.add_mapping(/dependency.rb/) do |f, _|
13
+ # at.files_matching(/test_.*rb$/)
14
+ # end
15
+ #
16
+ # %w(TestA TestB).each do |klass|
17
+ # at.extra_class_map[klass] = "test/test_misc.rb"
18
+ # end
19
+ # end
20
+
21
+ # Autotest.add_hook :run_command do |at|
22
+ # system "rake build"
23
+ # end
data/.gemtest ADDED
File without changes
data/History.txt ADDED
@@ -0,0 +1,6 @@
1
+ === 1.0.0 / 2014-02-08
2
+
3
+ * 1 major enhancement
4
+
5
+ * Birthday!
6
+
data/Manifest.txt ADDED
@@ -0,0 +1,16 @@
1
+ .autotest
2
+ History.txt
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile
6
+ bin/rubyhop
7
+ lib/background.png
8
+ lib/gameover.mp3
9
+ lib/hoop.png
10
+ lib/hop.mp3
11
+ lib/music.mp3
12
+ lib/rubyguy-dead.png
13
+ lib/rubyguy-fall.png
14
+ lib/rubyguy-rise.png
15
+ lib/rubyhop.rb
16
+ test/test_rubyhop.rb
data/README.txt ADDED
@@ -0,0 +1,45 @@
1
+ = rubyhop
2
+
3
+ http://blowmage.com/rubyhop
4
+
5
+ == DESCRIPTION:
6
+
7
+ Super awesome Ruby-themed game
8
+
9
+ $ gem install rubyhop
10
+ $ rubyhop
11
+
12
+ == DEVELOPERS:
13
+
14
+ After checking out the source, run:
15
+
16
+ $ gem install hoe
17
+ $ rake newb
18
+
19
+ This task will install any missing dependencies, run the tests/specs,
20
+ and generate the RDoc.
21
+
22
+ == LICENSE:
23
+
24
+ (The MIT License)
25
+
26
+ Copyright (c) 2014 Mike Moore
27
+
28
+ Permission is hereby granted, free of charge, to any person obtaining
29
+ a copy of this software and associated documentation files (the
30
+ 'Software'), to deal in the Software without restriction, including
31
+ without limitation the rights to use, copy, modify, merge, publish,
32
+ distribute, sublicense, and/or sell copies of the Software, and to
33
+ permit persons to whom the Software is furnished to do so, subject to
34
+ the following conditions:
35
+
36
+ The above copyright notice and this permission notice shall be
37
+ included in all copies or substantial portions of the Software.
38
+
39
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
40
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
41
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
42
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
43
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
44
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
45
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require "rubygems"
2
+ require "hoe"
3
+
4
+ Hoe.plugin :git
5
+ Hoe.plugin :minitest
6
+
7
+ Hoe.spec "rubyhop" do
8
+ developer "Mike Moore", "mike@blowmage.com"
9
+ end
data/bin/rubyhop ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require "rubyhop"
3
+ RubyhopGame.new.show
Binary file
data/lib/gameover.mp3 ADDED
Binary file
data/lib/hoop.png ADDED
Binary file
data/lib/hop.mp3 ADDED
Binary file
data/lib/music.mp3 ADDED
Binary file
Binary file
Binary file
Binary file
data/lib/rubyhop.rb ADDED
@@ -0,0 +1,139 @@
1
+ require "gosu"
2
+
3
+ def get_my_file file
4
+ "#{File.dirname(__FILE__)}/#{file}"
5
+ end
6
+
7
+ class Player
8
+ attr_accessor :x, :y
9
+ def initialize window
10
+ @window = window
11
+ @alive = true
12
+ # position
13
+ @x = window.width/2
14
+ @y = window.height/2
15
+ @velocity = 0.0
16
+ @gravity = -0.25
17
+ @hop = 7.5
18
+ # sounds
19
+ @sound = Gosu::Sample.new @window, get_my_file("hop.mp3")
20
+ @gameover = Gosu::Sample.new @window, get_my_file("gameover.mp3")
21
+ # images
22
+ @rise = Gosu::Image.new window, get_my_file("rubyguy-rise.png")
23
+ @fall = Gosu::Image.new window, get_my_file("rubyguy-fall.png")
24
+ @dead = Gosu::Image.new window, get_my_file("rubyguy-dead.png")
25
+ end
26
+ def hop
27
+ if @alive
28
+ @sound.play
29
+ @velocity += @hop
30
+ end
31
+ end
32
+ def die!
33
+ if @alive
34
+ # Set velocity to one last hop
35
+ @velocity = 5.0
36
+ @gameover.play
37
+ @alive = false
38
+ end
39
+ end
40
+ def update
41
+ @velocity += @gravity
42
+ @y -= @velocity
43
+ if @alive && (@y < 32 || @y > @window.height - 32)
44
+
45
+ end
46
+ if @y > 5000
47
+ # kick out to loading screen to try again?
48
+ @window.close
49
+ end
50
+ end
51
+ def draw
52
+ image.draw @x - 32, @y - 32, 1000 - @x
53
+ end
54
+ def image
55
+ if @alive
56
+ if @velocity >= 0
57
+ @rise
58
+ else
59
+ @fall
60
+ end
61
+ else
62
+ @dead
63
+ end
64
+ end
65
+ end
66
+
67
+ class Hoop
68
+ attr_accessor :x, :y
69
+ def initialize window
70
+ @window = window
71
+ @hoop = Gosu::Image.new window, get_my_file("hoop.png")
72
+ # center of screen
73
+ @movement = 2
74
+ @x = @y = 0
75
+ reset_position!
76
+ end
77
+ def reset_position!
78
+ @x += 1200
79
+ @y = rand 150..500
80
+ end
81
+ def miss player
82
+ if (@x - player.x).abs < 12 &&
83
+ (@y - player.y).abs > 72
84
+ # the player missed the hoop
85
+ return true
86
+ end
87
+ false
88
+ end
89
+ def update
90
+ reset_position! if @x < -200
91
+ @movement += 0.003
92
+ @x -= @movement
93
+ end
94
+ def draw
95
+ @hoop.draw @x - 66, @y - 98, 1000 - @x
96
+ end
97
+ end
98
+
99
+ class RubyhopGame < Gosu::Window
100
+ VERSION = "1.0.0"
101
+ def initialize width=800, height=600, fullscreen=false
102
+ super
103
+ self.caption = "Ruby Hop"
104
+ @music = Gosu::Song.new self, get_my_file("music.mp3")
105
+ @music.play true
106
+ @background = Gosu::Image.new self, get_my_file("background.png")
107
+ @player = Player.new self
108
+ @hoops = 6.times.map { Hoop.new self }
109
+ init_hoops!
110
+ end
111
+
112
+ def init_hoops!
113
+ hoop_start = 600
114
+ @hoops.each do |hoop|
115
+ hoop_start += 200
116
+ hoop.reset_position!
117
+ hoop.x = hoop_start
118
+ end
119
+ end
120
+
121
+ def button_down id
122
+ close if id == Gosu::KbEscape
123
+ @player.hop if id == Gosu::KbSpace
124
+ end
125
+
126
+ def update
127
+ @player.update
128
+ @hoops.each do |hoop|
129
+ hoop.update
130
+ @player.die! if hoop.miss @player
131
+ end
132
+ end
133
+
134
+ def draw
135
+ @background.draw 0, 0, 0
136
+ @player.draw
137
+ @hoops.each &:draw
138
+ end
139
+ end
@@ -0,0 +1,8 @@
1
+ require "test/unit"
2
+ require "rubyhop"
3
+
4
+ class TestRubyhop < Test::Unit::TestCase
5
+ def test_sanity
6
+ flunk "write tests or I will kneecap you"
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubyhop
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Mike Moore
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rdoc
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hoe
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.8'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.8'
41
+ description: |-
42
+ Super awesome Ruby-themed game
43
+
44
+ $ gem install rubyhop
45
+ $ rubyhop
46
+ email:
47
+ - mike@blowmage.com
48
+ executables:
49
+ - rubyhop
50
+ extensions: []
51
+ extra_rdoc_files:
52
+ - History.txt
53
+ - Manifest.txt
54
+ - README.txt
55
+ files:
56
+ - ".autotest"
57
+ - ".gemtest"
58
+ - History.txt
59
+ - Manifest.txt
60
+ - README.txt
61
+ - Rakefile
62
+ - bin/rubyhop
63
+ - lib/background.png
64
+ - lib/gameover.mp3
65
+ - lib/hoop.png
66
+ - lib/hop.mp3
67
+ - lib/music.mp3
68
+ - lib/rubyguy-dead.png
69
+ - lib/rubyguy-fall.png
70
+ - lib/rubyguy-rise.png
71
+ - lib/rubyhop.rb
72
+ - test/test_rubyhop.rb
73
+ homepage: http://blowmage.com/rubyhop
74
+ licenses:
75
+ - MIT
76
+ metadata: {}
77
+ post_install_message:
78
+ rdoc_options:
79
+ - "--main"
80
+ - README.txt
81
+ require_paths:
82
+ - lib
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ required_rubygems_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ requirements: []
94
+ rubyforge_project: rubyhop
95
+ rubygems_version: 2.2.0
96
+ signing_key:
97
+ specification_version: 4
98
+ summary: Super awesome Ruby-themed game $ gem install rubyhop $ rubyhop
99
+ test_files:
100
+ - test/test_rubyhop.rb