chingu 0.8.1 → 0.9rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,7 +21,11 @@
21
21
 
22
22
  module Chingu
23
23
  #
24
- #
24
+ # When you want a quick 'n dirty menu, SimpleMenu might help.
25
+ # Basic usage:
26
+ # SimpleMenu.create(:menu_items => {"StartGame" => PlayState, "Edit" => :exit})
27
+ #
28
+ # It will catch keys :up, :down, :return and :space and navigate through the menu
25
29
  #
26
30
  class SimpleMenu < BasicGameObject
27
31
  include Chingu::Helpers::InputClient
@@ -30,7 +34,8 @@ module Chingu
30
34
  def initialize(options = {})
31
35
  super
32
36
 
33
- @menu_items = options.delete(:menu_items) # || {"Exit" => :exit}
37
+ # @font_size = options.delete(:font_size) || 30
38
+ @menu_items = options.delete(:menu_items)
34
39
  @x = options.delete(:x) || $window.width/2
35
40
  @y = options.delete(:y) || 100
36
41
  @spacing = options.delete(:spacing) || 100
@@ -64,6 +69,9 @@ module Chingu
64
69
  self.input = {:up => lambda{step(-1)}, :down => lambda{step(1)}, [:return, :space] => :select}
65
70
  end
66
71
 
72
+ #
73
+ # Moves selection within the menu. Can be called with negative or positive values. -1 and 1 makes most sense.
74
+ #
67
75
  def step(value)
68
76
  selected.options[:on_deselect].call(selected)
69
77
  @selected += value
@@ -0,0 +1,84 @@
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
+ module Chingu
23
+ module Traits
24
+
25
+ #
26
+ # A chingu trait providing an asynchronous tasks queue
27
+ #
28
+ # For example:
29
+ # class Robot < GameObject
30
+ # traits :asynchronous
31
+ #
32
+ # # robot stuff
33
+ # end
34
+ #
35
+ # # later, controlling your robot...
36
+ # robot.async do |q|
37
+ # q.tween(5000, :x => 1024, :y => 64)
38
+ # q.call :explode
39
+ # end
40
+ #
41
+ # Will move the robot asynchronously from its current location to
42
+ # (1024, 64), then blow it up. The +async+ method returns immediately
43
+ # after adding tasks to the queue.
44
+ #
45
+ # The first task on the queue is processed each tick during the
46
+ # update phase, then removed from the queue when it is deemed finished.
47
+ # What constitutes "finished" is determined by the particular subclass of
48
+ # +BasicTask+.
49
+ #
50
+
51
+ module Asynchronous
52
+
53
+ attr_reader :tasks
54
+
55
+ #
56
+ # Setup
57
+ #
58
+ def setup_trait(options)
59
+ @tasks = Chingu::Async::TaskList.new
60
+ super
61
+ end
62
+
63
+ def update_trait
64
+ @tasks.update self
65
+ super
66
+ end
67
+
68
+ #
69
+ # Add a set of tasks to the task queue to be executed
70
+ # asynchronously. If no block is given, returns the TaskBuilder that
71
+ # would have been passed to the block.
72
+ #
73
+ def async
74
+ builder = Chingu::Async::TaskBuilder.new(@tasks)
75
+ if block_given?
76
+ yield builder
77
+ else
78
+ builder
79
+ end
80
+ end
81
+
82
+ end
83
+ end
84
+ end
@@ -178,7 +178,7 @@ module Chingu
178
178
  def alpha=(value)
179
179
  value = 0 if value < 0
180
180
  value = 255 if value > 255
181
- @color.alpha = value
181
+ @color.alpha = value.to_i
182
182
  end
183
183
 
184
184
  #
@@ -186,7 +186,7 @@ module Chingu
186
186
  def alpha=(value)
187
187
  value = 0 if value < 0
188
188
  value = 255 if value > 255
189
- @color.alpha = value
189
+ @color.alpha = value.to_i
190
190
  end
191
191
 
192
192
  #
@@ -100,7 +100,7 @@ module Chingu
100
100
  # Frames per second, access with $window.fps or $window.framerate
101
101
  #
102
102
  def fps
103
- @fps_counter.fps
103
+ @fps_counter.fps # TODO: switch to Gosu::fps
104
104
  end
105
105
  alias :framerate :fps
106
106
 
metadata CHANGED
@@ -1,12 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chingu
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ prerelease: true
5
5
  segments:
6
6
  - 0
7
- - 8
8
- - 1
9
- version: 0.8.1
7
+ - 9rc1
8
+ version: 0.9rc1
10
9
  platform: ruby
11
10
  authors:
12
11
  - ippa
@@ -14,7 +13,7 @@ autorequire:
14
13
  bindir: bin
15
14
  cert_chain: []
16
15
 
17
- date: 2011-01-08 00:00:00 +01:00
16
+ date: 2011-02-20 00:00:00 +01:00
18
17
  default_executable:
19
18
  dependencies:
20
19
  - !ruby/object:Gem::Dependency
@@ -28,8 +27,8 @@ dependencies:
28
27
  segments:
29
28
  - 0
30
29
  - 7
31
- - 25
32
- version: 0.7.25
30
+ - 27
31
+ version: 0.7.27
33
32
  type: :runtime
34
33
  version_requirements: *id001
35
34
  - !ruby/object:Gem::Dependency
@@ -122,6 +121,7 @@ files:
122
121
  - benchmarks/benchmark4.rb
123
122
  - benchmarks/benchmark5.rb
124
123
  - benchmarks/benchmark6.rb
124
+ - benchmarks/benchmark_ping_localhost.rb
125
125
  - benchmarks/game_object_list_benchmark.rb
126
126
  - benchmarks/game_objects_benchmark.rb
127
127
  - benchmarks/lookup_benchmark.rb
@@ -152,6 +152,8 @@ files:
152
152
  - examples/example25_fibers_state_machine.rb
153
153
  - examples/example26_splash_screen.rb
154
154
  - examples/example27_console.rb
155
+ - examples/example28_networking.rb
156
+ - examples/example29_asynchronous.rb
155
157
  - examples/example2_gamestate_basics.rb
156
158
  - examples/example3_parallax.rb
157
159
  - examples/example4_gamestates.rb
@@ -210,10 +212,20 @@ files:
210
212
  - lib/chingu.rb
211
213
  - lib/chingu/animation.rb
212
214
  - lib/chingu/assets.rb
215
+ - lib/chingu/async/basic_task.rb
216
+ - lib/chingu/async/task_builder.rb
217
+ - lib/chingu/async/task_list.rb
218
+ - lib/chingu/async_tasks/call.rb
219
+ - lib/chingu/async_tasks/exec.rb
220
+ - lib/chingu/async_tasks/move.rb
221
+ - lib/chingu/async_tasks/parallel.rb
222
+ - lib/chingu/async_tasks/tween.rb
223
+ - lib/chingu/async_tasks/wait.rb
213
224
  - lib/chingu/basic_game_object.rb
214
225
  - lib/chingu/classic_game_object.rb
215
226
  - lib/chingu/console.rb
216
227
  - lib/chingu/core_ext/array.rb
228
+ - lib/chingu/core_ext/range.rb
217
229
  - lib/chingu/fpscounter.rb
218
230
  - lib/chingu/game_object.rb
219
231
  - lib/chingu/game_object_list.rb
@@ -224,6 +236,8 @@ files:
224
236
  - lib/chingu/game_states/edit.rb
225
237
  - lib/chingu/game_states/enter_name.rb
226
238
  - lib/chingu/game_states/fade_to.rb
239
+ - lib/chingu/game_states/network_client.rb
240
+ - lib/chingu/game_states/network_server.rb
227
241
  - lib/chingu/game_states/pause.rb
228
242
  - lib/chingu/game_states/popup.rb
229
243
  - lib/chingu/gosu_ext/image.rb
@@ -247,6 +261,7 @@ files:
247
261
  - lib/chingu/simple_menu.rb
248
262
  - lib/chingu/text.rb
249
263
  - lib/chingu/traits/animation.rb
264
+ - lib/chingu/traits/asynchronous.rb
250
265
  - lib/chingu/traits/bounding_box.rb
251
266
  - lib/chingu/traits/bounding_circle.rb
252
267
  - lib/chingu/traits/collision_detection.rb
@@ -300,11 +315,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
300
315
  required_rubygems_version: !ruby/object:Gem::Requirement
301
316
  none: false
302
317
  requirements:
303
- - - ">="
318
+ - - ">"
304
319
  - !ruby/object:Gem::Version
305
320
  segments:
306
- - 0
307
- version: "0"
321
+ - 1
322
+ - 3
323
+ - 1
324
+ version: 1.3.1
308
325
  requirements: []
309
326
 
310
327
  rubyforge_project: chingu
@@ -332,6 +349,8 @@ test_files:
332
349
  - examples/example25_fibers_state_machine.rb
333
350
  - examples/example26_splash_screen.rb
334
351
  - examples/example27_console.rb
352
+ - examples/example28_networking.rb
353
+ - examples/example29_asynchronous.rb
335
354
  - examples/example2_gamestate_basics.rb
336
355
  - examples/example3_parallax.rb
337
356
  - examples/example4_gamestates.rb