Class: SpriteKit::Scenes::SpritesheetScene
- Inherits:
-
Object
- Object
- SpriteKit::Scenes::SpritesheetScene
- Defined in:
- mygame/lib/sprite_kit/scenes/spritesheet_scene.rb
Instance Attribute Summary collapse
-
#camera ⇒ Object
Returns the value of attribute camera.
-
#canvas ⇒ Object
Returns the value of attribute canvas.
-
#draw_buffer ⇒ Object
Returns the value of attribute draw_buffer.
-
#scene_manager ⇒ Object
Returns the value of attribute scene_manager.
-
#state ⇒ Object
Returns the value of attribute state.
-
#tool_drawer ⇒ Object
Returns the value of attribute tool_drawer.
Instance Method Summary collapse
-
#initialize(scene_manager = nil, sprite_directory: "sprites") ⇒ SpritesheetScene
constructor
A new instance of SpritesheetScene.
- #tick(args) ⇒ Object
Constructor Details
#initialize(scene_manager = nil, sprite_directory: "sprites") ⇒ SpritesheetScene
Returns a new instance of SpritesheetScene.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'mygame/lib/sprite_kit/scenes/spritesheet_scene.rb', line 14 def initialize(scene_manager = nil, sprite_directory: "sprites") @scene_manager = scene_manager @camera = ::SpriteKit::Camera.new @draw_buffer = ::SpriteKit::DrawBuffer.new @views = [:file_tree, :canvas] @state = { draw_buffer: @draw_buffer, camera: @camera, camera_path: :camera, view: @views[0], views: @views, show_grid: false, tile_selection: { w: 12, h: 12, row_gap: 1, column_gap: 1, offset_x: 1, offset_y: 1, }, current_sprite: nil, viewport_boundary: nil, next_view: nil, file_path: nil, } @spritesheet_loader = SpriteKit::SpritesheetLoader.new spritesheets = @spritesheet_loader.load_directory(sprite_directory) @tree = spritesheets.tree @tree_renderer = TreeRenderer.new(@tree, state: @state) @spritesheets = spritesheets.spritesheets @state.spritesheets = @spritesheets @canvas = ::SpriteKit::Canvas.new(state: @state, spritesheets: []) @tool_drawer = ::SpriteKit::ToolDrawer.new(state: @state) end |
Instance Attribute Details
#camera ⇒ Object
Returns the value of attribute camera.
12 13 14 |
# File 'mygame/lib/sprite_kit/scenes/spritesheet_scene.rb', line 12 def camera @camera end |
#canvas ⇒ Object
Returns the value of attribute canvas.
12 13 14 |
# File 'mygame/lib/sprite_kit/scenes/spritesheet_scene.rb', line 12 def canvas @canvas end |
#draw_buffer ⇒ Object
Returns the value of attribute draw_buffer.
12 13 14 |
# File 'mygame/lib/sprite_kit/scenes/spritesheet_scene.rb', line 12 def draw_buffer @draw_buffer end |
#scene_manager ⇒ Object
Returns the value of attribute scene_manager.
12 13 14 |
# File 'mygame/lib/sprite_kit/scenes/spritesheet_scene.rb', line 12 def scene_manager @scene_manager end |
#state ⇒ Object
Returns the value of attribute state.
12 13 14 |
# File 'mygame/lib/sprite_kit/scenes/spritesheet_scene.rb', line 12 def state @state end |
#tool_drawer ⇒ Object
Returns the value of attribute tool_drawer.
12 13 14 |
# File 'mygame/lib/sprite_kit/scenes/spritesheet_scene.rb', line 12 def tool_drawer @tool_drawer end |
Instance Method Details
#tick(args) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'mygame/lib/sprite_kit/scenes/spritesheet_scene.rb', line 50 def tick(args) @state.outputs = args.outputs @state.draw_buffer.outputs = args.outputs if args.inputs.keyboard.key_down.g @state.show_grid = !@state.show_grid end @state.world_mouse = @camera.to_world_space(args.inputs.mouse) @state. = { x: @tool_drawer.w, y: 0, w: args.grid.w - @tool_drawer.w, h: args.grid.h, } if @state.view == :canvas @canvas. = @state. @canvas.tick(args) end if @state.view == :file_tree @draw_buffer.primitives.concat(@tree_renderer.render(args, offset_x: @tool_drawer.x + @tool_drawer.w)) end @tool_drawer.tick(args) top_layer = { w: 1280, h: 720, x: 0, y: 0, path: :top_layer } args.outputs[:top_layer].w = top_layer.w args.outputs[:top_layer].h = top_layer.h args.outputs[:top_layer].transient! @draw_buffer.primitives << top_layer @draw_buffer.flush args.outputs.primitives.concat(args.gtk.framerate_diagnostics_primitives.map do |primitive| primitive.x = args.grid.w - 500 + primitive.x primitive end) if @state.next_view if @state.next_view == :canvas spritesheet = @spritesheets[@state.file_path] if spritesheet @canvas.spritesheets = [spritesheet] @camera.reset else @state.next_view = :file_tree end end if @state.next_view == :file_tree @state.current_sprite = nil end @state.view = @state.next_view @state.next_view = nil end end |