ippa-chingu 0.4.8 → 0.5

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/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.5 / 2009-10-7
2
+ Big refactor of GameObject. Now has BasicGameObject as base.
3
+ A first basic "trait"-system where GameObject "has_traits :visual, :velocity" etc.
4
+ Tons of enhancements and fixes. Speed optimization. More examples.
5
+
1
6
  === 0.4.5 / 2009-08-27
2
7
  Tons of small fixes across the board.
3
8
  Started on GFX Helpers (fill, fill_rect, fill_gradient so far).
data/README.rdoc CHANGED
@@ -3,6 +3,8 @@ http://github.com/ippa/chingu/tree/master
3
3
 
4
4
  DOCUMENTATION: http://rdoc.info/projects/ippa/chingu
5
5
 
6
+ Ruby 1.9.1 is recommended. Also works with 1.8.7+.
7
+
6
8
  This is an early preview, a lot of functionality is still missing!
7
9
  It's also in a state of flux while I decide on core-naming etc.
8
10
 
@@ -13,7 +15,7 @@ It's also in a state of flux while I decide on core-naming etc.
13
15
 
14
16
  == DESCRIPTION
15
17
  Game framework built on top of the OpenGL accelerated game lib Gosu.
16
- It adds simple yet powerfull game states, prettier inputhandling, deploymentsafe asset-handling, a basic re-usable game object and automation of common task.
18
+ 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
19
 
18
20
 
19
21
  == THE STORY
@@ -34,11 +36,16 @@ Chingu consists of the following core classes:
34
36
  The main window, use it at you use Gosu::Window.
35
37
 
36
38
  === Chingu::GameObject
37
- Use for all your in game objects. The player, the enemies, the bullets, the powerups, the loot laying around.
39
+ Use this for all your in game objects. The player, the enemies, the bullets, the powerups, the loot laying around.
38
40
  It's very reusable and doesn't contain any game-logic (that's up to you!). Only stuff to put it on screen a certain way.
39
41
  It also gives you a couple of bonuses with chingu, as automatic updates/draws and easier input-mapping.
40
42
  Has either Chingu::Window or a Chingu::GameState as "owner".
41
43
 
44
+ === Chingu::BasicGameObject
45
+ For those who think GameObject is a too little fat, there's BasicGameObject (GameObject inherits from BasicGameObject).
46
+ BasicGameObject is just an empty frame (no x,y,image accessors or draw-logic) for you to build on.
47
+ It _can_ be extended with Chingus trait-system though. and it belong to either $window or a game state as BasicObject.
48
+
42
49
  === Chingu::Text
43
50
  Makes use of Gosu::Font more rubyish and powerful.
44
51
  In it's core, another Chingu::GameObject + Gosu::Font.
@@ -55,6 +62,12 @@ If using game states, the flow of draw/update/button_up/button_down is:
55
62
  Chingu::Window --> Chingu::GameStateManager --> Chingu::GameState.
56
63
  For example, inside game state Menu you call push_game_state(Level). When Level exists, it will go back to Menu.
57
64
 
65
+ === Chingu::Animation
66
+ Load and interact with tile-based animations. loop, bounce and access invidual frame(s) easily.
67
+ An "@image = @animation.next!" in your Player#update is usually enough to get you started!
68
+
69
+ == Chingu::Parallax
70
+ A class for easy paralaxxscrolling. See example3.rb for more.
58
71
 
59
72
  == THE BASICS
60
73
 
@@ -113,7 +126,7 @@ Chingu doesn't change any fundamental concept of Gosu, but it will make the abov
113
126
  #
114
127
  # We use Chingu::Window instead of Gosu::Window
115
128
  #
116
- class Game < Chingu:Window
129
+ class Game < Chingu::Window
117
130
  def initialize
118
131
  super # This is always needed if you want to take advantage of what chingu offers
119
132
  #
@@ -222,7 +235,7 @@ Another more complex example:
222
235
  # Pressing ESC would call Play#close
223
236
  # Holding down LEFT would call Play#move_left on every game iteration
224
237
  # Holding down RIGHT would call Play#move_right on every game iteration
225
- # Relasing SPACE would call Play#fire
238
+ # Releasing SPACE would call Play#fire
226
239
  #
227
240
 
228
241
  class Play < Chingu::GameState
@@ -242,14 +255,14 @@ In Gosu the above code would include code in button_up(), button_down() and a ch
242
255
 
243
256
  Every symbol can be prefixed by either "released_" or "holding_" while no prefix at all defaults to pressed once.
244
257
 
245
- So, why not :up_space or :relase_space instead of :released_space?
258
+ So, why not :up_space or :release_space instead of :released_space?
246
259
  +:up_space+ doesn't sound like english, :release_space sounds more like a command then an event.
247
260
 
248
261
 
249
262
  Or +:hold_left+ or :down_left instead of :holding_left?
250
263
  :holding_left sounds like something that's happening over a period of time, not a single trigger, which corresponds well to how it works.
251
264
 
252
- And with the default :space => :something youd imagine that :something is called once. You press :space once, :something get's executed once.
265
+ And with the default :space => :something you would imagine that :something is called once. You press :space once, :something is executed once.
253
266
 
254
267
 
255
268
  === GameState / GameStateManager
@@ -283,7 +296,7 @@ Game states aren't complicated. In Chingu a GameState is a class that behaves mo
283
296
 
284
297
  end
285
298
 
286
- Looks familiar ye?
299
+ Looks familiar yet?
287
300
  You can activate the above game state in 2 ways
288
301
 
289
302
  class Game < Chingu::Window
@@ -309,15 +322,15 @@ Another example:
309
322
  def initialize
310
323
  #
311
324
  # We start by pushing Menu to the game state stack, making it active as the only state on stack.
312
- # :setup => :false which will skip setup() from beeing called (standard when switching to a new state)
325
+ # :setup => :false which will skip setup() from being called (standard when switching to a new state)
313
326
  #
314
327
  push_game_state(Menu, :setup => false)
315
328
 
316
329
  #
317
- # We push another game state to the stack, Play. We now have 2 states, which active beeing first / active.
330
+ # We push another game state to the stack, Play. We now have 2 states, which active being first / active.
318
331
  #
319
- # :finalize => false will skip setup() from beeing called on game state
320
- # that's beeing pushed down the stack, in this case Intro.setup().
332
+ # :finalize => false will skip setup() from being called on game state
333
+ # that's being pushed down the stack, in this case Intro.setup().
321
334
  #
322
335
  push_game_state(Play, :finalize => false)
323
336
 
@@ -340,7 +353,7 @@ Another example:
340
353
 
341
354
  A GameState in Chingu is just a class with the following instance methods:
342
355
 
343
- * initialize() - called only once with push_game_state(Intro) but everytime with push_game_state(Intro.new)
356
+ * initialize() - called only once with push_game_state(Intro) but every time with push_game_state(Intro.new)
344
357
  * setup() - called each time the game state becomes active.
345
358
  * button_down(id) - Called when a button is down
346
359
  * button_up(id) - Called when a button is released
@@ -380,13 +393,13 @@ Chingus inputhandler will detect that Menu is a gamestate-class, create a new in
380
393
 
381
394
  === Assets / Paths
382
395
 
383
- You might wonder why this is nessesary in the straight Gosu example:
396
+ You might wonder why this is necessary in the straight Gosu example:
384
397
  ROOT_PATH = File.dirname(File.expand_path(__FILE__))
385
398
  @image = Image.new(File.join(ROOT_PATH, "media", "player.png"))
386
399
 
387
400
  It enables you to start your game from any directory and it will still find your assets (pictures, samples, fonts etc..) correctly.
388
401
  For a local development version this might not be important, you're likely to start the game from the games root-dir.
389
- But as soon as you try to deploy (for example to windows with OCRA - http://github.com/larsch/ocra/tree/master) you'll run into trouble of you dont do it like that.
402
+ But as soon as you try to deploy (for example to windows with OCRA - http://github.com/larsch/ocra/tree/master) you'll run into trouble of you don't do it like that.
390
403
 
391
404
  Chingu solves this problem behind the scenes for the most common assets. The 2 lines above can be replaced with:
392
405
  Image["player.png"]
@@ -430,20 +443,27 @@ Since Chingu::Window is just Gosu::Window + some cheese you can do your $window.
430
443
  See http://www.libgosu.org/rdoc/classes/Gosu/Window.html for a full set of methods.
431
444
 
432
445
  == TODO:
446
+ * add :padding and :align => :topleft etc to class Text
447
+ * rename Chingu::Window so 'include Chingu' and 'include Gosu' wont make Window collide
448
+ * (done) BasicObject vs GameObject vs ScreenObject => Became BasicGameObject and GameObject
449
+ * (50%) some kind of componentsystem for GameObject (which should be cleaned up)
450
+ * (done) scale <--> growth parameter. See trait "effect"
451
+ * (done) Enemy.all ... instead of game_objects_of_type(Enemy) ? could this be cool / understandable?
452
+ * (done) Don't call .update(time) with timeparameter, make time available thru other means when needed.
453
+ * (10% done) debug screen / game state.. check out shawn24's elite irb sollution :)
433
454
  * (done) Complete the input-definitions with all possible inputs (keyboard, gamepad, mouse)!
434
455
  * (done) Complete input-stuff with released-states etc
435
456
  * (done) More gfx effects, for example: fade in/out to a specific color (black makes sense between levels).
436
457
  * (posted request on forums) Summon good proven community gosu snippets into Chingu
437
458
  * (done) Generate docs @ ippa.github.com- http://rdoc.info/projects/ippa/chingu !
438
459
  * (done) A good scene-manager to manage welcome screens, levels and game flow- GameStateManager / GameState !
439
- * More docs
440
460
  * (20% done) make a playable simple game in examples\ that really depends on game states
441
461
  * (done) Make a gem- first gem made on github
442
462
  * (done) Automate gemgenning rake-task even more
443
463
  * More examples when effects are more complete
444
464
  * class ChipmunkObject
445
- * class Actor/MovingActor with maybe abit more logic then the basic GameObject. Would ppl find is useful?
446
- * (40% done) Spell check all docs, sloppy spelling turns ppl off.
465
+ * class Actor/MovingActor with maybe a bit more logic then the basic GameObject. Would ppl find is useful?
466
+ * (60% done) Spell check all docs, sloppy spelling turns ppl off. tnx jduff ;).
447
467
  * Tests
448
468
  * (done) Streamline fps / tick code
449
469
  * (done) Encapsulate Font.new / draw_rot with a "class Text < GameObject"
@@ -452,7 +472,7 @@ See http://www.libgosu.org/rdoc/classes/Gosu/Window.html for a full set of metho
452
472
  * A more robust game state <-> game_object system to connect them together.
453
473
  * (50% done) Get better at styling rdocs
454
474
  * (done) all �gamestate� ? �game state� ? it's "game state"
455
- * intergrate MovieMaker
475
+ * (skipping) intergrate MovieMaker - solve this with traits instead.
456
476
  * FIX example4: :p => Pause.new would Change the "inside_game_state" to Pause and make @player belong to Pause.
457
477
 
458
478
  == WHY?
@@ -467,11 +487,11 @@ See http://www.libgosu.org/rdoc/classes/Gosu/Window.html for a full set of metho
467
487
  * Don't separate too much from Gosus core-naming
468
488
 
469
489
  == CREDITS:
470
- Jacius of Rubygame (For doing cool stuff that's well documented as re-usable). So far rect.rb and named_resource.rb is taken from Rubygame.
471
-
472
- jlnr,philymore,shawn24 for constructive feedback
473
-
490
+ * Jacius of Rubygame (For doing cool stuff that's well documented as re-usable). So far rect.rb and named_resource.rb is taken from Rubygame.
491
+ * Jduff for input / commits.
492
+ * Jlnr,Philymore,Shawn24,JamesKilton for constructive feedback/discussions.
474
493
 
475
494
  == REQUIREMENTS:
476
495
  * Gosu latest version
477
- * Ruby 1.8 (Has not been verified with 1.9 yet)
496
+ * Ruby 1.8.7+ (Works with 1.9+ as well!)
497
+
data/chingu.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{chingu}
5
- s.version = "0.4.8"
5
+ s.version = "0.5"
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-08-30}
9
+ s.date = %q{2009-09-07}
10
10
  s.description = %q{Game framework built on top of the OpenGL accelerated game lib Gosu.
11
- It adds simple yet powerfull game states, prettier inputhandling, deploymentsafe asset-handling, a basic re-usable game object and automation of common task.}
11
+ 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
12
  s.email = ["ippa@rubylicio.us"]
13
13
  s.extra_rdoc_files = ["History.txt", "Manifest.txt"]
14
- s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "chingu.gemspec", "examples/example1.rb", "examples/example2.rb", "examples/example3.rb", "examples/example4.rb", "examples/example5.rb", "examples/example6.rb", "examples/example7.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/fire_bullet.png", "examples/media/fireball.png", "examples/media/particle.png", "examples/media/ruby.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/core_extensions.rb", "lib/chingu/effects.rb", "lib/chingu/fpscounter.rb", "lib/chingu/game_object.rb", "lib/chingu/game_state.rb", "lib/chingu/game_state_manager.rb", "lib/chingu/game_states/fade_to.rb", "lib/chingu/game_states/pause.rb", "lib/chingu/gfx_helpers.rb", "lib/chingu/helpers.rb", "lib/chingu/input.rb", "lib/chingu/named_resource.rb", "lib/chingu/parallax.rb", "lib/chingu/particle.rb", "lib/chingu/rect.rb", "lib/chingu/text.rb", "lib/chingu/window.rb"]
14
+ s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "chingu.gemspec", "examples/example1.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/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/fire_bullet.png", "examples/media/fireball.png", "examples/media/particle.png", "examples/media/ruby.png", "examples/media/spaceship.png", "examples/media/stickfigure.bmp", "examples/media/stickfigure.png", "examples/media/video_games.png", "lib/chingu.rb", "lib/chingu/actor.rb", "lib/chingu/animation.rb", "lib/chingu/assets.rb", "lib/chingu/basic_game_object.rb", "lib/chingu/core_extensions.rb", "lib/chingu/effects.rb", "lib/chingu/fpscounter.rb", "lib/chingu/game_object.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/gfx_helpers.rb", "lib/chingu/helpers.rb", "lib/chingu/input.rb", "lib/chingu/named_resource.rb", "lib/chingu/parallax.rb", "lib/chingu/particle.rb", "lib/chingu/rect.rb", "lib/chingu/text.rb", "lib/chingu/traits/collision_detection.rb", "lib/chingu/traits/deprecated_module_visual.rb", "lib/chingu/traits/deprecated_visual.rb", "lib/chingu/traits/effect.rb", "lib/chingu/traits/input.rb", "lib/chingu/traits/velocity.rb", "lib/chingu/window.rb"]
15
15
  s.homepage = %q{http://github.com/ippa/chingu/tree/master}
16
16
  s.rdoc_options = ["--main", "README.rdoc"]
17
17
  s.require_paths = ["lib"]
data/examples/example1.rb CHANGED
@@ -27,6 +27,8 @@ class Game < Chingu::Window
27
27
  end
28
28
 
29
29
  class Player < Chingu::GameObject
30
+ has_trait :input
31
+
30
32
  def move_left; @x -= 1; end
31
33
  def move_right; @x += 1; end
32
34
  def move_up; @y -= 1; end
data/examples/example2.rb CHANGED
@@ -6,6 +6,8 @@ include Gosu
6
6
  # A little more complicated example where we do our own #update and #draw code.
7
7
  # We also add another Actor - a bullet fired with space.
8
8
  #
9
+ # Also tests out the Debug game state.
10
+ #
9
11
  class Game < Chingu::Window
10
12
  def initialize
11
13
  #
@@ -14,45 +16,16 @@ class Game < Chingu::Window
14
16
  #
15
17
  super
16
18
 
17
- @player = Player.new(:x => 200, :y => 200, :image => Image["spaceship.png"])
18
- @player.input = { :holding_left => :move_left,
19
- :holding_right => :move_right,
20
- :holding_up => :move_up,
21
- :holding_down => :move_down,
22
- :space => :fire,
23
- :escape => :exit
24
- }
25
- end
26
-
27
- #
28
- # If we want to add extra graphics drawn just define your own draw.
29
- # Be sure to call #super for enabling Chingus autodrawing of Actors.
30
- # Putting #super before or after the background-draw-call really doesn't matter since Gosu work with "zorder".
31
- #
32
- def draw
33
- # Raw Gosu Image.draw(x,y,zorder)-call
34
- Image["background1.png"].draw(0, 0, 0)
35
- super
19
+ push_game_state(Play.new)
36
20
  end
37
-
38
- #
39
- # Gosus place for gamelogic is #update in the mainwindow
40
- #
41
- # A #super call here would call #update on all Chingu::Actors and check their inputs, and call the specified method.
42
- #
43
- def update
44
-
45
- ### Your own gamelogic here
46
- super
47
- self.caption = "FPS: #{self.fps} milliseconds_since_last_tick: #{self.milliseconds_since_last_tick}"
48
- end
49
-
50
21
  end
51
22
 
52
23
  #
53
24
  # Our Player
54
25
  #
55
26
  class Player < Chingu::GameObject
27
+ has_trait :input
28
+
56
29
  def initialize(options = {})
57
30
  super
58
31
  @image = Image["spaceship.png"]
@@ -78,10 +51,67 @@ class Bullet < Chingu::GameObject
78
51
  end
79
52
 
80
53
  # Move the bullet forward
81
- def update(time)
54
+ def update
82
55
  @y -= 2
83
56
  end
84
57
 
85
58
  end
86
59
 
60
+ class Play < Chingu::GameState
61
+
62
+ def initialize
63
+ super
64
+ @player = Player.new(:x => 200, :y => 200)
65
+ @player.input = { :holding_left => :move_left,
66
+ :holding_right => :move_right,
67
+ :holding_up => :move_up,
68
+ :holding_down => :move_down,
69
+ :space => :fire,
70
+ :escape => :exit,
71
+ }
72
+ self.input = { :f1 => :debug }
73
+ end
74
+
75
+ def debug
76
+ #puts "--------"
77
+ #GameObject.all.each do |game_object|
78
+ # puts game_object.class
79
+ #end
80
+ #return
81
+
82
+ push_game_state(Chingu::GameStates::Debug)
83
+ end
84
+
85
+ #
86
+ # If we want to add extra graphics drawn just define your own draw.
87
+ # Be sure to call #super for enabling Chingus autodrawing of Actors.
88
+ # Putting #super before or after the background-draw-call really doesn't matter since Gosu work with "zorder".
89
+ #
90
+ def draw
91
+ # Raw Gosu Image.draw(x,y,zorder)-call
92
+ Image["background1.png"].draw(0, 0, 0)
93
+ super
94
+ end
95
+
96
+ #
97
+ # Gosus place for gamelogic is #update in the mainwindow
98
+ #
99
+ # A #super call here would call #update on all Chingu::Actors and check their inputs, and call the specified method.
100
+ #
101
+ def update
102
+ Bullet.destroy_if { |bullet| bullet.outside_window? }
103
+ #Bullet.destroy_if(&:outside_window?)
104
+
105
+ #
106
+ # Bullet.each_collision(Enemy) do |bullet, enemy|
107
+ # enemy.collision_with(bullet)
108
+ # bullet.destroy!
109
+ # end
110
+ #
111
+
112
+ super
113
+ $window.caption = "FPS: #{$window.fps} - milliseconds_since_last_tick: #{$window.milliseconds_since_last_tick} - game objects# #{current_game_state.game_objects.size}"
114
+ end
115
+ end
116
+
87
117
  Game.new.show
data/examples/example4.rb CHANGED
@@ -40,6 +40,8 @@ end
40
40
 
41
41
  # Our Player
42
42
  class Player < Chingu::GameObject
43
+ has_trait :input
44
+
43
45
  def initialize(options = {})
44
46
  super
45
47
  @image = Image["spaceship.png"]
@@ -51,7 +53,9 @@ class Player < Chingu::GameObject
51
53
  def move_down; @y += 1; end
52
54
 
53
55
  def fire
54
- Bullet.new(:x => @x, :y => @y)
56
+ Bullet.new(:x => @x - 20, :y => @y)
57
+ Bullet.new(:x => @x, :y => @y)
58
+ Bullet.new(:x => @x + 20, :y => @y)
55
59
  end
56
60
  end
57
61
 
@@ -62,7 +66,7 @@ class Bullet < Chingu::GameObject
62
66
  @image = Image["fire_bullet.png"]
63
67
  end
64
68
 
65
- def update(time)
69
+ def update
66
70
  @y -= 2
67
71
  end
68
72
  end
@@ -113,7 +117,7 @@ class Level < Chingu::GameState
113
117
  :holding_right => :move_right,
114
118
  :holding_up => :move_up,
115
119
  :holding_down => :move_down,
116
- :left_ctrl => :fire}
120
+ :space => :fire}
117
121
 
118
122
  #
119
123
  # The input-handler understands gamestates. P is pressed --> push_gamegate(Pause)
@@ -122,6 +126,12 @@ class Level < Chingu::GameState
122
126
  self.input = {:p => Pause, :r => lambda{ current_game_state.setup } }
123
127
  end
124
128
 
129
+ def update
130
+ super
131
+ Bullet.destroy_if {|bullet| bullet.outside_window? }
132
+ $window.caption = "FPS: #{$window.fps} - GameObjects: #{game_objects.size}"
133
+ end
134
+
125
135
  #
126
136
  # setup() is called each time you switch to the game state (and on creation time).
127
137
  # You can skip setup by switching with push_game_state(:setup => false) or pop_game_state(:setup => false)
@@ -130,6 +140,7 @@ class Level < Chingu::GameState
130
140
  #
131
141
  def setup
132
142
  # Place player in a good starting position
143
+ Bullet.clear
133
144
  @player.x = $window.width/2
134
145
  @player.y = $window.height - @player.image.height
135
146
  end
@@ -138,6 +149,8 @@ end
138
149
  #
139
150
  # SPECIAL GAMESTATE - Pause
140
151
  #
152
+ # NOTICE: Chingu now comes with a predefined Chingu::GameStates::Pause that works simular to this!
153
+ #
141
154
  class Pause < Chingu::GameState
142
155
  def initialize(options)
143
156
  super
data/examples/example5.rb CHANGED
@@ -55,7 +55,7 @@ class State1 < Chingu::GameState
55
55
  @spinner_index = 0.0
56
56
  end
57
57
 
58
- def update(dt)
58
+ def update
59
59
  @spinner_index += 0.1
60
60
  @spinner_index = 0 if @spinner_index >= @spinner.size
61
61
  end
@@ -71,7 +71,7 @@ class State2 < Chingu::GameState
71
71
  @ticks = 0.0
72
72
  end
73
73
 
74
- def update(dt)
74
+ def update
75
75
  @ticks += 0.01
76
76
  @factor = 1.5 + Math.sin(@ticks).to_f
77
77
  end
@@ -88,7 +88,7 @@ class State3 < Chingu::GameState
88
88
  @ticks = 0.0
89
89
  end
90
90
 
91
- def update(dt)
91
+ def update
92
92
  @ticks += 0.01
93
93
  @factor = 1.5 + Math.sin(@ticks).to_f
94
94
  end