Snake - 11 - Draw snake full ver
TaktycznyBocian
plain_text
2 years ago
2.3 kB
44
Indexable
func draw_snake() : for block_index in snake_body.size(): var block = snake_body[block_index] if block_index == 0: var head_dir = relation(snake_body[0], snake_body[1]) if head_dir == "left": $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(2,0)) if head_dir == "right": $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(3,1)) if head_dir == "top": $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(3,0)) if head_dir == "down": $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(2,1)) elif block_index == snake_body.size() - 1: var tail_dir = relation(snake_body[-1], snake_body[-2]) if tail_dir == "left": $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(1,0)) if tail_dir == "right": $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(0,0)) if tail_dir == "top": $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(1,1)) if tail_dir == "down": $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(0,1)) else: var previous_block = snake_body[block_index + 1] - block var next_block = snake_body[block_index - 1] - block if previous_block.x == next_block.x: $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(6,1)) elif previous_block.y == next_block.y: $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(6,0)) else: if previous_block.x == - 1 && next_block.y == - 1 or previous_block.y == - 1 && next_block.x == - 1: $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(5,1)) if previous_block.x == - 1 && next_block.y == 1 or previous_block.y == 1 && next_block.x == - 1: $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(5,0)) if previous_block.x == 1 && next_block.y == - 1 or previous_block.y == -1 && next_block.x == 1: $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(4,1)) if previous_block.x == 1 && next_block.y == 1 or previous_block.y == 1 && next_block.x == 1: $Board.set_cell(block.x, block.y, snake, false, false, false, Vector2(4,0))
Editor is loading...