Class: Beefdump::Client::Graphical::Client
- Defined in:
- lib/beefdump/client/graphical/client.rb
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #act ⇒ Object
- #disconnect ⇒ Object
- #draw_window ⇒ Object
-
#initialize(game, *options) ⇒ Client
constructor
A new instance of Client.
- #update_window ⇒ Object
Constructor Details
#initialize(game, *options) ⇒ Client
Returns a new instance of Client.
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/beefdump/client/graphical/client.rb', line 8 def initialize(game, *) super(game, *) @window = Window.new(self, Window::WIDTH, Window::HEIGHT, false) @window. = Time.now initialize_tilesets(game.map) @player = @game.claim_player("Peter", self) start_main_loop end |
Instance Method Details
#act ⇒ Object
19 20 21 |
# File 'lib/beefdump/client/graphical/client.rb', line 19 def act @window. = Time.now end |
#disconnect ⇒ Object
23 24 25 26 |
# File 'lib/beefdump/client/graphical/client.rb', line 23 def disconnect @window.close @window_thread.join end |
#draw_window ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/beefdump/client/graphical/client.rb', line 37 def draw_window left = @player.position.x / @game.map.tile_width top = @player.position.y / @game.map.tile_height diff_x = @player.position.x % @game.map.tile_width diff_y = @player.position.y % @game.map.tile_height width = Window::WIDTH / @game.map.tile_width + 1 height = Window::HEIGHT / @game.map.tile_height + 1 tile_layers = @game.map.background_at(left, top, width, height) tile_layers.each do |tile_layer| tile_layer.each_with_index do |row, x| row.each_with_index do |tile, y| tileset = @game.map.tileset_for(tile) next unless tileset tile_id = tile - tileset.first_gid @tileset_images[@game.map.tilesets.index(tileset)][tile_id].draw(x * @game.map.tile_width - diff_x, y * @game.map.tile_height - diff_y, 0) end end end end |
#update_window ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/beefdump/client/graphical/client.rb', line 28 def update_window return unless @game.should_run? if @window. Gosu::Button::KbEscape @game.shutdown! end handle_camera_movement end |