7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/road_to_rubykaigi/manager/drawing_manager.rb', line 7
def draw(offset_x:)
buffer = Array.new(@viewport_height) { Array.new(@viewport_width) { "" } }
@layers.each do |layer|
merge_buffer(buffer, layer, offset_x: offset_x)
end
ANSI.home
ANSI.background_color
ANSI.default_text_color
print @game_manager.render_score_board
@viewport_height.times do |row|
@viewport_width.times do |col|
unless buffer[row][col] == @preview_buffer[row][col]
print "\e[#{row+MAP_Y_START};#{col+MAP_X_START}H" + ANSI::BACKGROUND_COLOR + ANSI::DEFAULT_TEXT_COLOR + buffer[row][col]
end
end
end
@preview_buffer = buffer.map(&:dup)
end
|