chingu 0.5.8 → 0.5.8.1
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.
- data.tar.gz.sig +0 -0
- data/Manifest.txt +1 -0
- data/README.rdoc +16 -8
- data/chingu.gemspec +6 -5
- data/lib/chingu.rb +3 -2
- data/lib/chingu/animation.rb +6 -2
- data/lib/chingu/core_extensions.rb +1 -1
- data/lib/chingu/fpscounter.rb +1 -1
- data/lib/chingu/game_object.rb +1 -1
- data/lib/chingu/game_object_list.rb +1 -1
- data/lib/chingu/game_state.rb +1 -1
- data/lib/chingu/game_state_manager.rb +15 -6
- data/lib/chingu/game_states/debug.rb +6 -6
- data/lib/chingu/game_states/fade_to.rb +13 -12
- data/lib/chingu/game_states/pause.rb +9 -10
- data/lib/chingu/helpers/game_object.rb +1 -2
- data/lib/chingu/helpers/gfx.rb +1 -2
- data/lib/chingu/helpers/input_client.rb +1 -2
- data/lib/chingu/helpers/input_dispatcher.rb +1 -2
- data/lib/chingu/helpers/rotation_center.rb +1 -2
- data/lib/chingu/high_score.rb +60 -0
- data/lib/chingu/inflector.rb +1 -1
- data/lib/chingu/input.rb +21 -0
- data/lib/chingu/parallax.rb +28 -2
- data/lib/chingu/text.rb +21 -0
- data/lib/chingu/traits/collision_detection.rb +1 -2
- data/lib/chingu/traits/effect.rb +4 -5
- data/lib/chingu/traits/retrofy.rb +1 -2
- data/lib/chingu/traits/timer.rb +2 -2
- data/lib/chingu/traits/velocity.rb +1 -2
- data/lib/chingu/window.rb +32 -10
- metadata +6 -4
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
@@ -12,7 +12,8 @@ Chingu has started to settle down, thouch core classes and naming can still chan
|
|
12
12
|
|
13
13
|
|
14
14
|
== DESCRIPTION
|
15
|
-
|
15
|
+
OpenGL accelerated 2D game framework for Ruby.
|
16
|
+
Builds on the awesome Gosu (Ruby/C++) which provides all the core functionality.
|
16
17
|
It adds simple yet powerful game states, prettier input handling, deployment safe asset-handling, a basic re-usable game object and automation of common task.
|
17
18
|
|
18
19
|
|
@@ -200,7 +201,8 @@ The basic ideas behind it are:
|
|
200
201
|
* Keep naming close to Gosu, but add smart convenient methods / shortcuts and a more rubyish feeling
|
201
202
|
* No game logic allowed in GameObject, since that's not likely to be useful for others.
|
202
203
|
|
203
|
-
|
204
|
+
It's based around Image#draw_rot. So basically all the arguments that you pass to draw_rot can be passed to GameObject#new when creating a new object.
|
205
|
+
An example using almost all arguments would be:
|
204
206
|
|
205
207
|
#
|
206
208
|
# You probably recognize the arguments from http://www.libgosu.org/rdoc/classes/Gosu/Image.html#M000023
|
@@ -302,6 +304,10 @@ Game states aren't complicated. In Chingu a GameState is a class that behaves mo
|
|
302
304
|
# A simple GameState-example
|
303
305
|
class Intro < Chingu::GameState
|
304
306
|
|
307
|
+
def initialize(options)
|
308
|
+
# called as usual when class is created, load resources and simular here
|
309
|
+
end
|
310
|
+
|
305
311
|
def update
|
306
312
|
# game logic here
|
307
313
|
end
|
@@ -310,7 +316,7 @@ Game states aren't complicated. In Chingu a GameState is a class that behaves mo
|
|
310
316
|
# screen manipulation here
|
311
317
|
end
|
312
318
|
|
313
|
-
# Called when we enter the game state
|
319
|
+
# Called Each time when we enter the game state, use this to reset the gamestate to a "virgin state"
|
314
320
|
def setup
|
315
321
|
@player.angle = 0 # point player upwards
|
316
322
|
end
|
@@ -379,10 +385,10 @@ Another example:
|
|
379
385
|
|
380
386
|
A GameState in Chingu is just a class with the following instance methods:
|
381
387
|
|
382
|
-
* initialize() -
|
383
|
-
* setup() - called each time the game state becomes active.
|
384
|
-
* button_down(id) -
|
385
|
-
* button_up(id) -
|
388
|
+
* initialize() - as you might expect, called when GameState is created.
|
389
|
+
* setup() - called each time the game state becomes active.
|
390
|
+
* button_down(id) - called when a button is down.
|
391
|
+
* button_up(id) - called when a button is released.
|
386
392
|
* update() - just as in your normal game loop, put your game logic here.
|
387
393
|
* draw() - just as in your normal game loop, put your screen manipulation here.
|
388
394
|
* finalize() - called when a game state de-activated (for example by pushing a new one on top with push_game_state)
|
@@ -415,7 +421,7 @@ Or Chingus shortcut:
|
|
415
421
|
end
|
416
422
|
end
|
417
423
|
|
418
|
-
Chingus inputhandler will detect that Menu is a
|
424
|
+
Chingus inputhandler will detect that Menu is a GameState-class, create a new instance and activate it with push_game_state().
|
419
425
|
|
420
426
|
=== Traits
|
421
427
|
Traits (often called behaivors) is a way of adding logic to any class inheriting from BasicGameObject / GameObject.
|
@@ -561,6 +567,8 @@ There's 1 zillion ways of naming stuff. As a general guideline I've tried to fol
|
|
561
567
|
If Gosu didn't have a good name for a certain thing/method I've checked Ruby itself and then Rails since alot of Ruby-devs are familiar with Rails.
|
562
568
|
GameObject.all is naming straight from rails for example. Most stuff in GameObject follow the naming from Gosus Image#draw_rot.
|
563
569
|
|
570
|
+
As far as possible, use correct rubyfied english game_objects, not gameobjects. class HighScore, not Highscore.
|
571
|
+
|
564
572
|
== TODO:
|
565
573
|
* add :padding and :align => :topleft etc to class Text
|
566
574
|
* (skip) rename Chingu::Window so 'include Chingu' and 'include Gosu' wont make Window collide
|
data/chingu.gemspec
CHANGED
@@ -2,22 +2,23 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{chingu}
|
5
|
-
s.version = "0.5.8"
|
5
|
+
s.version = "0.5.8.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["ippa"]
|
9
|
-
s.date = %q{2009-10-
|
10
|
-
s.description = %q{
|
9
|
+
s.date = %q{2009-10-19}
|
10
|
+
s.description = %q{OpenGL accelerated 2D game framework for Ruby.
|
11
|
+
Builds on the awesome Gosu (Ruby/C++) which provides all the core functionality.
|
11
12
|
It adds simple yet powerful game states, prettier input handling, deployment safe asset-handling, a basic re-usable game object and automation of common task.}
|
12
13
|
s.email = ["ippa@rubylicio.us"]
|
13
14
|
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "benchmarks/README.txt"]
|
14
|
-
s.files = ["History.txt", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "benchmarks/README.txt", "benchmarks/benchmark.rb", "benchmarks/benchmark3.rb", "benchmarks/benchmark4.rb", "benchmarks/benchmark5.rb", "benchmarks/benchmark6.rb", "benchmarks/meta_benchmark.rb", "benchmarks/meta_benchmark2.rb", "chingu.gemspec", "examples/example1.rb", "examples/example10.rb", "examples/example11.rb", "examples/example12.rb", "examples/example2.rb", "examples/example3.rb", "examples/example4.rb", "examples/example5.rb", "examples/example6.rb", "examples/example7.rb", "examples/example8.rb", "examples/example9.rb", "examples/game1.rb", "examples/media/Parallax-scroll-example-layer-0.png", "examples/media/Parallax-scroll-example-layer-1.png", "examples/media/Parallax-scroll-example-layer-2.png", "examples/media/Parallax-scroll-example-layer-3.png", "examples/media/background1.png", "examples/media/bullet.png", "examples/media/bullet_hit.wav", "examples/media/city1.csv", "examples/media/city1.png", "examples/media/city2.png", "examples/media/droid.bmp", "examples/media/enemy_bullet.png", "examples/media/explosion.wav", "examples/media/fire_bullet.png", "examples/media/fireball.png", "examples/media/laser.wav", "examples/media/particle.png", "examples/media/plane.csv", "examples/media/plane.png", "examples/media/ruby.png", "examples/media/saucer.csv", "examples/media/saucer.gal", "examples/media/saucer.png", "examples/media/spaceship.png", "examples/media/stickfigure.bmp", "examples/media/stickfigure.png", "examples/media/video_games.png", "lib/chingu.rb", "lib/chingu/animation.rb", "lib/chingu/assets.rb", "lib/chingu/basic_game_object.rb", "lib/chingu/core_extensions.rb", "lib/chingu/fpscounter.rb", "lib/chingu/game_object.rb", "lib/chingu/game_object_list.rb", "lib/chingu/game_state.rb", "lib/chingu/game_state_manager.rb", "lib/chingu/game_states/debug.rb", "lib/chingu/game_states/fade_to.rb", "lib/chingu/game_states/pause.rb", "lib/chingu/helpers/game_object.rb", "lib/chingu/helpers/game_state.rb", "lib/chingu/helpers/gfx.rb", "lib/chingu/helpers/input_client.rb", "lib/chingu/helpers/input_dispatcher.rb", "lib/chingu/helpers/rotation_center.rb", "lib/chingu/inflector.rb", "lib/chingu/input.rb", "lib/chingu/named_resource.rb", "lib/chingu/parallax.rb", "lib/chingu/particle.rb", "lib/chingu/rect.rb", "lib/chingu/require_all.rb", "lib/chingu/text.rb", "lib/chingu/traits/collision_detection.rb", "lib/chingu/traits/effect.rb", "lib/chingu/traits/retrofy.rb", "lib/chingu/traits/timer.rb", "lib/chingu/traits/velocity.rb", "lib/chingu/window.rb"]
|
15
|
+
s.files = ["History.txt", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "benchmarks/README.txt", "benchmarks/benchmark.rb", "benchmarks/benchmark3.rb", "benchmarks/benchmark4.rb", "benchmarks/benchmark5.rb", "benchmarks/benchmark6.rb", "benchmarks/meta_benchmark.rb", "benchmarks/meta_benchmark2.rb", "chingu.gemspec", "examples/example1.rb", "examples/example10.rb", "examples/example11.rb", "examples/example12.rb", "examples/example2.rb", "examples/example3.rb", "examples/example4.rb", "examples/example5.rb", "examples/example6.rb", "examples/example7.rb", "examples/example8.rb", "examples/example9.rb", "examples/game1.rb", "examples/media/Parallax-scroll-example-layer-0.png", "examples/media/Parallax-scroll-example-layer-1.png", "examples/media/Parallax-scroll-example-layer-2.png", "examples/media/Parallax-scroll-example-layer-3.png", "examples/media/background1.png", "examples/media/bullet.png", "examples/media/bullet_hit.wav", "examples/media/city1.csv", "examples/media/city1.png", "examples/media/city2.png", "examples/media/droid.bmp", "examples/media/enemy_bullet.png", "examples/media/explosion.wav", "examples/media/fire_bullet.png", "examples/media/fireball.png", "examples/media/laser.wav", "examples/media/particle.png", "examples/media/plane.csv", "examples/media/plane.png", "examples/media/ruby.png", "examples/media/saucer.csv", "examples/media/saucer.gal", "examples/media/saucer.png", "examples/media/spaceship.png", "examples/media/stickfigure.bmp", "examples/media/stickfigure.png", "examples/media/video_games.png", "lib/chingu.rb", "lib/chingu/animation.rb", "lib/chingu/assets.rb", "lib/chingu/basic_game_object.rb", "lib/chingu/core_extensions.rb", "lib/chingu/fpscounter.rb", "lib/chingu/game_object.rb", "lib/chingu/game_object_list.rb", "lib/chingu/game_state.rb", "lib/chingu/game_state_manager.rb", "lib/chingu/game_states/debug.rb", "lib/chingu/game_states/fade_to.rb", "lib/chingu/game_states/pause.rb", "lib/chingu/helpers/game_object.rb", "lib/chingu/helpers/game_state.rb", "lib/chingu/helpers/gfx.rb", "lib/chingu/helpers/input_client.rb", "lib/chingu/helpers/input_dispatcher.rb", "lib/chingu/helpers/rotation_center.rb", "lib/chingu/high_score.rb", "lib/chingu/inflector.rb", "lib/chingu/input.rb", "lib/chingu/named_resource.rb", "lib/chingu/parallax.rb", "lib/chingu/particle.rb", "lib/chingu/rect.rb", "lib/chingu/require_all.rb", "lib/chingu/text.rb", "lib/chingu/traits/collision_detection.rb", "lib/chingu/traits/effect.rb", "lib/chingu/traits/retrofy.rb", "lib/chingu/traits/timer.rb", "lib/chingu/traits/velocity.rb", "lib/chingu/window.rb"]
|
15
16
|
s.homepage = %q{http://github.com/ippa/chingu/tree/master}
|
16
17
|
s.rdoc_options = ["--main", "README.rdoc"]
|
17
18
|
s.require_paths = ["lib"]
|
18
19
|
s.rubyforge_project = %q{chingu}
|
19
20
|
s.rubygems_version = %q{1.3.5}
|
20
|
-
s.summary = %q{
|
21
|
+
s.summary = %q{OpenGL accelerated 2D game framework for Ruby}
|
21
22
|
|
22
23
|
if s.respond_to? :specification_version then
|
23
24
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
data/lib/chingu.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -26,7 +26,8 @@ require 'rubygems' unless RUBY_VERSION =~ /1\.9/
|
|
26
26
|
require 'gosu'
|
27
27
|
require File.join(CHINGU_ROOT,"chingu","require_all") # Thanks to http://github.com/tarcieri/require_all !
|
28
28
|
require_all "#{CHINGU_ROOT}/chingu"
|
29
|
+
#autoload :OpenStruct, "ostruct"
|
29
30
|
|
30
31
|
module Chingu
|
31
|
-
VERSION = "0.5.8"
|
32
|
+
VERSION = "0.5.8.1"
|
32
33
|
end
|
data/lib/chingu/animation.rb
CHANGED
@@ -3,7 +3,11 @@ module Chingu
|
|
3
3
|
# The Animation-class helps you load and manage a tileanimation.
|
4
4
|
# A Tileanimation is a file where all the frames are put after eachother.
|
5
5
|
#
|
6
|
-
# An easy to use program to create tileanimations is http://tilestudio.sourceforge.net/
|
6
|
+
# An easy to use program to create tileanimations is http://tilestudio.sourceforge.net/ or http://www.humanbalance.net/gale/us/
|
7
|
+
#
|
8
|
+
# TODO:
|
9
|
+
# Support frames in invidual image-files?
|
10
|
+
# Is autodetection of width / height possible?
|
7
11
|
#
|
8
12
|
class Animation
|
9
13
|
attr_accessor :frames, :delay
|
@@ -13,7 +17,7 @@ module Chingu
|
|
13
17
|
#
|
14
18
|
# - loop: [true|false]. After the last frame is used, start from the beginning.
|
15
19
|
# - bounce: [true|false]. After the last frame is used, play it backwards untill the first frame is used again, then start playing forwards again.
|
16
|
-
# - file: Tile-file to cut up animation frames from.
|
20
|
+
# - file: Tile-file to cut up animation frames from. Could be a full path or just a name -- then it will look for media_path(file)
|
17
21
|
# - width: width of each frame in the tileanimation
|
18
22
|
# - height: width of each frame in the tileanimation
|
19
23
|
# - size: [x,y] specify width/height with 1 argument (an array)
|
data/lib/chingu/fpscounter.rb
CHANGED
data/lib/chingu/game_object.rb
CHANGED
data/lib/chingu/game_state.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -108,11 +108,13 @@ module Chingu
|
|
108
108
|
# Make sure the game state knows about the manager
|
109
109
|
new_state.game_state_manager = self
|
110
110
|
|
111
|
-
|
112
111
|
# Give the soon-to-be-disabled state a chance to clean up by calling finalize() on it.
|
113
112
|
@previous_game_state = current_game_state
|
114
113
|
current_game_state.finalize if current_game_state.respond_to?(:finalize) && options[:finalize]
|
115
114
|
|
115
|
+
# So BasicGameObject#create connects object to new state in its setup()
|
116
|
+
self.inside_state = new_state
|
117
|
+
|
116
118
|
# Call setup
|
117
119
|
new_state.setup if new_state.respond_to?(:setup) && options[:setup]
|
118
120
|
|
@@ -128,7 +130,7 @@ module Chingu
|
|
128
130
|
@game_states[-1] = new_state
|
129
131
|
end
|
130
132
|
end
|
131
|
-
self.inside_state = current_game_state
|
133
|
+
## MOVEDE: self.inside_state = current_game_state
|
132
134
|
end
|
133
135
|
end
|
134
136
|
alias :switch :switch_game_state
|
@@ -144,6 +146,10 @@ module Chingu
|
|
144
146
|
new_state = game_state_instance(state)
|
145
147
|
|
146
148
|
if new_state
|
149
|
+
|
150
|
+
# So BasicGameObject#create connects object to new state in its setup()
|
151
|
+
self.inside_state = new_state
|
152
|
+
|
147
153
|
# Call setup
|
148
154
|
new_state.setup if new_state.respond_to?(:setup) && options[:setup]
|
149
155
|
|
@@ -162,7 +168,7 @@ module Chingu
|
|
162
168
|
# Push new state on top of stack and therefore making it active
|
163
169
|
@game_states.push(new_state)
|
164
170
|
end
|
165
|
-
self.inside_state = current_game_state
|
171
|
+
## MOVED: self.inside_state = current_game_state
|
166
172
|
end
|
167
173
|
end
|
168
174
|
alias :push :push_game_state
|
@@ -185,7 +191,10 @@ module Chingu
|
|
185
191
|
# Activate the game state "bellow" current one with a simple Array.pop
|
186
192
|
#
|
187
193
|
@game_states.pop
|
188
|
-
|
194
|
+
|
195
|
+
# So BasicGameObject#create connects object to new state in its setup()
|
196
|
+
self.inside_state = current_game_state
|
197
|
+
|
189
198
|
# Call setup on the new current state
|
190
199
|
current_game_state.setup if current_game_state.respond_to?(:setup) && options[:setup]
|
191
200
|
|
@@ -194,7 +203,7 @@ module Chingu
|
|
194
203
|
transitional_game_state = @transitional_game_state.new(current_game_state, @transitional_game_state_options)
|
195
204
|
self.switch_game_state(transitional_game_state, :transitional => false)
|
196
205
|
end
|
197
|
-
self.inside_state = current_game_state
|
206
|
+
## MOVED: self.inside_state = current_game_state
|
198
207
|
end
|
199
208
|
alias :pop :pop_game_state
|
200
209
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,12 +19,12 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
|
-
#
|
24
|
-
# Debug game state (F1 is default key to start/exit debug win, 'p' to pause game)
|
25
|
-
#
|
26
|
-
module Chingu
|
22
|
+
module Chingu
|
27
23
|
module GameStates
|
24
|
+
|
25
|
+
#
|
26
|
+
# Debug game state (F1 is default key to start/exit debug win, 'p' to pause game)
|
27
|
+
#
|
28
28
|
class Debug < Chingu::GameState
|
29
29
|
def initialize(options)
|
30
30
|
super
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -20,18 +20,19 @@
|
|
20
20
|
#++
|
21
21
|
|
22
22
|
|
23
|
-
#
|
24
|
-
# Premade game state for chingu - Fade between two game states
|
25
|
-
# Fade from the current game state to a new one whenever with:
|
26
|
-
#
|
27
|
-
# push_game_state(Chingu::GameStates::FadeTo.new(new_game_state, :speed => 3))
|
28
|
-
#
|
29
|
-
# .. Or make your whole game look better with 1 line:
|
30
|
-
#
|
31
|
-
# transitional_game_state(Chingu::GameStates::FadeTo, :speed => 10)
|
32
|
-
#
|
33
23
|
module Chingu
|
34
24
|
module GameStates
|
25
|
+
|
26
|
+
#
|
27
|
+
# Premade game state for chingu - Fade between two game states
|
28
|
+
# Fade from the current game state to a new one whenever with:
|
29
|
+
#
|
30
|
+
# push_game_state(Chingu::GameStates::FadeTo.new(new_game_state, :speed => 3))
|
31
|
+
#
|
32
|
+
# .. Or make your whole game look better with 1 line:
|
33
|
+
#
|
34
|
+
# transitional_game_state(Chingu::GameStates::FadeTo, :speed => 10)
|
35
|
+
#
|
35
36
|
class FadeTo < Chingu::GameState
|
36
37
|
|
37
38
|
def initialize(new_game_state, options = {})
|
@@ -65,7 +66,7 @@ module Chingu
|
|
65
66
|
end
|
66
67
|
|
67
68
|
def draw
|
68
|
-
# Stop endless loops
|
69
|
+
# Stop possible endless loops
|
69
70
|
if @drawn == false
|
70
71
|
@drawn = true
|
71
72
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,17 +19,16 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
#
|
25
|
-
# Premade game state for chingu - A simple pause state.
|
26
|
-
# Pause whenever with:
|
27
|
-
# push_game_state(Chingu::GameStates::Pause)
|
28
|
-
#
|
29
|
-
# requires global $window
|
30
|
-
#
|
31
22
|
module Chingu
|
32
23
|
module GameStates
|
24
|
+
|
25
|
+
#
|
26
|
+
# Premade game state for chingu - A simple pause state.
|
27
|
+
# Pause whenever with:
|
28
|
+
# push_game_state(Chingu::GameStates::Pause)
|
29
|
+
#
|
30
|
+
# requires the global $window set to the instance of Gosu::Window (automaticly handled if you use Chingu::Window)
|
31
|
+
#
|
33
32
|
class Pause < Chingu::GameState
|
34
33
|
def initialize(options = {})
|
35
34
|
super
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Helpers
|
25
24
|
|
data/lib/chingu/helpers/gfx.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Helpers
|
25
24
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Helpers
|
25
24
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Helpers
|
25
24
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Helpers
|
25
24
|
module RotationCenter
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#--
|
2
|
+
#
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
|
+
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
|
+
#
|
6
|
+
# This library is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the GNU Lesser General Public
|
8
|
+
# License as published by the Free Software Foundation; either
|
9
|
+
# version 2.1 of the License, or (at your option) any later version.
|
10
|
+
#
|
11
|
+
# This library is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
# Lesser General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU Lesser General Public
|
17
|
+
# License along with this library; if not, write to the Free Software
|
18
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
19
|
+
#
|
20
|
+
#++
|
21
|
+
|
22
|
+
|
23
|
+
module Chingu
|
24
|
+
|
25
|
+
#
|
26
|
+
# Highscore-class
|
27
|
+
#
|
28
|
+
# - Keeps a local YAML file with highscores, default highscores.yml in root game dir.
|
29
|
+
# - Add, delete, clear highscores
|
30
|
+
# - Iterate through highscores with simple Highscore#each
|
31
|
+
#
|
32
|
+
class HighScore
|
33
|
+
def initialize(options = {})
|
34
|
+
@file = options[:file] || "high_scores.yml"
|
35
|
+
@high_scores = Array.new
|
36
|
+
|
37
|
+
#OpenStruct.new()
|
38
|
+
end
|
39
|
+
|
40
|
+
#
|
41
|
+
#
|
42
|
+
#
|
43
|
+
def add(name, score)
|
44
|
+
|
45
|
+
end
|
46
|
+
alias << add
|
47
|
+
|
48
|
+
def each
|
49
|
+
@highscores.each { |highscore| yield highscore }
|
50
|
+
end
|
51
|
+
|
52
|
+
def save
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.all
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
data/lib/chingu/inflector.rb
CHANGED
data/lib/chingu/input.rb
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
#--
|
2
|
+
#
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
|
+
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
|
+
#
|
6
|
+
# This library is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the GNU Lesser General Public
|
8
|
+
# License as published by the Free Software Foundation; either
|
9
|
+
# version 2.1 of the License, or (at your option) any later version.
|
10
|
+
#
|
11
|
+
# This library is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
# Lesser General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU Lesser General Public
|
17
|
+
# License along with this library; if not, write to the Free Software
|
18
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
19
|
+
#
|
20
|
+
#++
|
21
|
+
|
1
22
|
module Chingu
|
2
23
|
module Input
|
3
24
|
include Gosu::Button
|
data/lib/chingu/parallax.rb
CHANGED
@@ -1,9 +1,35 @@
|
|
1
|
+
#--
|
1
2
|
#
|
2
|
-
#
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
|
+
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
3
5
|
#
|
4
|
-
#
|
6
|
+
# This library is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the GNU Lesser General Public
|
8
|
+
# License as published by the Free Software Foundation; either
|
9
|
+
# version 2.1 of the License, or (at your option) any later version.
|
5
10
|
#
|
11
|
+
# This library is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
# Lesser General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU Lesser General Public
|
17
|
+
# License along with this library; if not, write to the Free Software
|
18
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
19
|
+
#
|
20
|
+
#++
|
21
|
+
|
6
22
|
module Chingu
|
23
|
+
#
|
24
|
+
# Class for simple parallaxscrolling
|
25
|
+
#
|
26
|
+
# See http://en.wikipedia.org/wiki/Parallax_scrolling for information about parallaxscrolling.
|
27
|
+
#
|
28
|
+
# Basic usage:
|
29
|
+
# @parallax = Chingu::Parallax.create(:x => 0, :y => 0)
|
30
|
+
# @parallax << Chingu::ParallaxLayer.new(:image => "far_away_mountins.png", :damping => 20, :center => 0)
|
31
|
+
# @parallax << Chingu::ParallaxLayer.new(:image => "trees.png", :damping => 5, :center => 0)
|
32
|
+
#
|
7
33
|
class Parallax < Chingu::GameObject
|
8
34
|
attr_reader :layers
|
9
35
|
|
data/lib/chingu/text.rb
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
#--
|
2
|
+
#
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
|
+
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
|
+
#
|
6
|
+
# This library is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the GNU Lesser General Public
|
8
|
+
# License as published by the Free Software Foundation; either
|
9
|
+
# version 2.1 of the License, or (at your option) any later version.
|
10
|
+
#
|
11
|
+
# This library is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
# Lesser General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU Lesser General Public
|
17
|
+
# License along with this library; if not, write to the Free Software
|
18
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
19
|
+
#
|
20
|
+
#++
|
21
|
+
|
1
22
|
module Chingu
|
2
23
|
#
|
3
24
|
# Text is a class to give the use of Gosu::Font more rubyish feel and fit it better into Chingu.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Traits
|
25
24
|
#
|
data/lib/chingu/traits/effect.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Traits
|
25
24
|
|
@@ -30,9 +29,9 @@ module Chingu
|
|
30
29
|
# fade(amount) # modifies @color.alpha
|
31
30
|
#
|
32
31
|
# Also adds attributes
|
33
|
-
# rotation_rate=amount # adds amount to @angle each game loop
|
34
|
-
# scale_rate=amount # adds amount to @factor_x and @factor_y each game loop
|
35
|
-
# fade_rate=amount # adds amount to @color.alpha each game loop
|
32
|
+
# rotation_rate = amount # adds amount to @angle each game loop
|
33
|
+
# scale_rate = amount # adds amount to @factor_x and @factor_y each game loop
|
34
|
+
# fade_rate = amount # adds amount to @color.alpha each game loop
|
36
35
|
#
|
37
36
|
#
|
38
37
|
# WARNING, I'm very close to deprecating this trait, it doesn't do much and still introduces new names to learn.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Traits
|
25
24
|
#
|
data/lib/chingu/traits/timer.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,9 +19,9 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Traits
|
24
|
+
|
25
25
|
#
|
26
26
|
# A chingu trait providing timer-methods to its includer, examples:
|
27
27
|
# during(300) { @color = Color.new(0xFFFFFFFF) } # forces @color to white ever update for 300 ms
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
#
|
3
|
-
# Chingu --
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
4
|
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
#++
|
21
21
|
|
22
|
-
|
23
22
|
module Chingu
|
24
23
|
module Traits
|
25
24
|
#
|
data/lib/chingu/window.rb
CHANGED
@@ -1,5 +1,37 @@
|
|
1
|
+
#--
|
2
|
+
#
|
3
|
+
# Chingu -- OpenGL accelerated 2D game framework for Ruby
|
4
|
+
# Copyright (C) 2009 ippa / ippa@rubylicio.us
|
5
|
+
#
|
6
|
+
# This library is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the GNU Lesser General Public
|
8
|
+
# License as published by the Free Software Foundation; either
|
9
|
+
# version 2.1 of the License, or (at your option) any later version.
|
10
|
+
#
|
11
|
+
# This library is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
# Lesser General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU Lesser General Public
|
17
|
+
# License along with this library; if not, write to the Free Software
|
18
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
19
|
+
#
|
20
|
+
#++
|
21
|
+
|
1
22
|
module Chingu
|
2
23
|
|
24
|
+
#
|
25
|
+
# See http://www.libgosu.org/rdoc/classes/Gosu/Window.html
|
26
|
+
#
|
27
|
+
# On top of that we add:
|
28
|
+
# - Default widht / height, --fullscreen option from console
|
29
|
+
# - Sets a global variable $window = self, which is then used throughout Chingu
|
30
|
+
# - Defaultd #update which updates all game_objects which are not pasued
|
31
|
+
# - Default #draw which draws all game_objects which are visible
|
32
|
+
# - Default Asset-directories media/, sfx/, gfx/ etc.
|
33
|
+
# - Tracking of button_up/button_down etc to enable Chingus pretty inputhandling
|
34
|
+
#
|
3
35
|
class Window < Gosu::Window
|
4
36
|
include Chingu::Helpers::GFX # Adds fill(), fade() etc to each game state
|
5
37
|
include Chingu::Helpers::GameState # Easy access to the global game state-queue
|
@@ -9,16 +41,6 @@ module Chingu
|
|
9
41
|
|
10
42
|
attr_reader :root, :game_state_manager, :game_objects, :milliseconds_since_last_tick
|
11
43
|
|
12
|
-
#
|
13
|
-
# See http://www.libgosu.org/rdoc/classes/Gosu/Window.html
|
14
|
-
#
|
15
|
-
# On top of that we add:
|
16
|
-
# - Default widht / height, --fullscreen option from console
|
17
|
-
# - Global variable $window
|
18
|
-
# - Standard #update which updates all Chingu::GameObject's
|
19
|
-
# - Standard #draw which goes through
|
20
|
-
# - Assethandling with Image["picture.png"] and Sample["shot.wav"]
|
21
|
-
#
|
22
44
|
def initialize(width = 800, height = 600, fullscreen = false, update_interval = 16.666666)
|
23
45
|
fullscreen ||= ARGV.include?("--fullscreen")
|
24
46
|
$window = super(width, height, fullscreen, update_interval)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chingu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.8
|
4
|
+
version: 0.5.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ippa
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
hxtMlw==
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2009-10-
|
33
|
+
date: 2009-10-19 00:00:00 +02:00
|
34
34
|
default_executable:
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
@@ -44,7 +44,8 @@ dependencies:
|
|
44
44
|
version: 2.3.3
|
45
45
|
version:
|
46
46
|
description: |-
|
47
|
-
|
47
|
+
OpenGL accelerated 2D game framework for Ruby.
|
48
|
+
Builds on the awesome Gosu (Ruby/C++) which provides all the core functionality.
|
48
49
|
It adds simple yet powerful game states, prettier input handling, deployment safe asset-handling, a basic re-usable game object and automation of common task.
|
49
50
|
email:
|
50
51
|
- ippa@rubylicio.us
|
@@ -130,6 +131,7 @@ files:
|
|
130
131
|
- lib/chingu/helpers/input_client.rb
|
131
132
|
- lib/chingu/helpers/input_dispatcher.rb
|
132
133
|
- lib/chingu/helpers/rotation_center.rb
|
134
|
+
- lib/chingu/high_score.rb
|
133
135
|
- lib/chingu/inflector.rb
|
134
136
|
- lib/chingu/input.rb
|
135
137
|
- lib/chingu/named_resource.rb
|
@@ -172,6 +174,6 @@ rubyforge_project: chingu
|
|
172
174
|
rubygems_version: 1.3.5
|
173
175
|
signing_key:
|
174
176
|
specification_version: 3
|
175
|
-
summary:
|
177
|
+
summary: OpenGL accelerated 2D game framework for Ruby
|
176
178
|
test_files: []
|
177
179
|
|
metadata.gz.sig
CHANGED
Binary file
|