chingu 0.5.9.3 → 0.5.9.4

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/chingu.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{chingu}
5
- s.version = "0.5.9.3"
5
+ s.version = "0.5.9.4"
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-11-11}
9
+ s.date = %q{2009-11-16}
10
10
  s.description = %q{OpenGL accelerated 2D game framework for Ruby.
11
11
  Builds on the awesome Gosu (Ruby/C++) which provides all the core functionality.
12
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.}
data/lib/chingu.rb CHANGED
@@ -28,5 +28,5 @@ require File.join(CHINGU_ROOT,"chingu","require_all") # Thanks to http://github.
28
28
  require_all "#{CHINGU_ROOT}/chingu"
29
29
 
30
30
  module Chingu
31
- VERSION = "0.5.9.3"
31
+ VERSION = "0.5.9.4"
32
32
  end
@@ -10,17 +10,14 @@ module Chingu
10
10
  attr_accessor :parent
11
11
 
12
12
  #
13
- # adds a trait or traits to a certain game class
14
- #
15
- # Executes a ruby "include" the specified module
13
+ # Adds a trait or traits to a certain game class
14
+ # Executes a standard ruby "include" the specified module
16
15
  #
17
16
  def self.has_trait(*traits)
18
17
  has_traits(*traits)
19
18
  end
20
19
 
21
- #
22
20
  # See #has_trait
23
- #
24
21
  def self.has_traits(*traits)
25
22
  Array(traits).each do |trait|
26
23
  if trait.is_a?(::Symbol) || trait.is_a?(::String)
@@ -58,6 +58,24 @@ module Chingu
58
58
  attr_reader :options
59
59
  attr_accessor :game_state_manager, :game_objects
60
60
 
61
+ #
62
+ # Adds a trait or traits to a certain game class
63
+ # Executes a standard ruby "include" the specified module
64
+ #
65
+ def self.has_trait(*traits)
66
+ has_traits(*traits)
67
+ end
68
+
69
+ # See #has_trait
70
+ def self.has_traits(*traits)
71
+ Array(traits).each do |trait|
72
+ if trait.is_a?(::Symbol) || trait.is_a?(::String)
73
+ include Chingu::Traits.const_get(Chingu::Inflector.camelize(trait))
74
+ end
75
+ end
76
+ end
77
+
78
+
61
79
  def initialize(options = {})
62
80
  @options = options
63
81
  @game_objects = GameObjectList.new
@@ -67,6 +85,8 @@ module Chingu
67
85
  if defined?($window) && $window.respond_to?(:game_state_manager)
68
86
  $window.game_state_manager.inside_state = self
69
87
  end
88
+
89
+ setup_trait(options)
70
90
  end
71
91
 
72
92
  #
@@ -100,7 +120,7 @@ module Chingu
100
120
  dispatch_button_up(id, self)
101
121
  @input_clients.each { |object| dispatch_button_up(id, object) } if @input_clients
102
122
  end
103
-
123
+
104
124
  #
105
125
  # Calls update on each game object that has current game state as parent (created inside that game state)
106
126
  #
@@ -118,6 +138,11 @@ module Chingu
118
138
  def draw
119
139
  @game_objects.draw
120
140
  end
141
+
142
+ # Placeholder for trait-system to override
143
+ def setup_trait(options);end
144
+ def update_trait;end
145
+ def draw_trait;end
121
146
 
122
147
  #
123
148
  # Closes game state by poping it off the stack (and activating the game state below)
@@ -262,7 +262,10 @@ module Chingu
262
262
  # If you're using Chingu::Window instead of Gosu::Window this will automaticly be called.
263
263
  #
264
264
  def update
265
- current_game_state.update if current_game_state
265
+ if current_game_state
266
+ current_game_state.update_trait
267
+ current_game_state.update
268
+ end
266
269
  end
267
270
 
268
271
  #
@@ -272,7 +275,10 @@ module Chingu
272
275
  # If you're using Chingu::Window instead of Gosu::Window this will automaticly be called.
273
276
  #
274
277
  def draw
275
- current_game_state.draw if current_game_state
278
+ if current_game_state
279
+ current_game_state.draw_trait
280
+ current_game_state.draw
281
+ end
276
282
  end
277
283
 
278
284
  private
@@ -42,6 +42,7 @@ module Chingu
42
42
  self.input = { :left_mouse_button => :left_mouse_button,
43
43
  :released_left_mouse_button => :released_left_mouse_button,
44
44
  :delete => :destroy_selected_game_objects,
45
+ :backspace => :destroy_selected_game_objects,
45
46
  :e => :save_and_quit,
46
47
  :s => :save,
47
48
  :esc => :quit,
@@ -37,7 +37,10 @@ module Chingu
37
37
 
38
38
  def initialize(new_game_state, options = {})
39
39
  @options = {:speed => 3}.merge(options)
40
+
40
41
  @new_game_state = new_game_state
42
+ @new_game_state = new_game_state.new if new_game_state.is_a? Class
43
+
41
44
  @manager = options[:game_state_manager] || self
42
45
  #@manager = game_state_manager
43
46
  end
@@ -48,12 +48,12 @@ module Chingu
48
48
  # :orientation - Either :vertical (top to bottom) or :horizontal (left to right)
49
49
  #
50
50
 
51
- def fill(options)
51
+ def fill(options, zorder = 99)
52
52
  #
53
53
  # if only 1 color-argument is given, assume fullscreen simple color fill.
54
54
  #
55
55
  if options.is_a?(Gosu::Color)
56
- $window.draw_quad(0, 0, color,
56
+ $window.draw_quad(0, 0, options,
57
57
  $window.width, 0, options,
58
58
  $window.width, $window.height, options,
59
59
  0, $window.height, options, 0, :default)
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.9.3
4
+ version: 0.5.9.4
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-11-11 00:00:00 +01:00
33
+ date: 2009-11-16 00:00:00 +01:00
34
34
  default_executable:
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
metadata.gz.sig CHANGED
Binary file