37 lines
1.1 KiB
GDScript
37 lines
1.1 KiB
GDScript
@tool
|
|
extends Node3D
|
|
|
|
const SIZE = 3
|
|
enum Direction {UP, RIGHT, DOWN, LEFT}
|
|
var sequence = []
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready():
|
|
randomize()
|
|
|
|
var arrow = Image.load_from_file("res://Images/arrow.png")
|
|
arrow.convert(Image.FORMAT_RG8)
|
|
|
|
var painting = Image.create(128*SIZE, 128*SIZE, false, Image.FORMAT_RG8)
|
|
var painting_em = Image.create(128*SIZE, 128*SIZE, false, Image.FORMAT_RG8)
|
|
painting_em.fill(Color.BLACK)
|
|
painting.fill(Color.YELLOW_GREEN)
|
|
|
|
for x in range(SIZE):
|
|
for y in range(SIZE):
|
|
var dir = randi() % 4
|
|
for i in range(dir):
|
|
arrow.rotate_90(0)
|
|
painting.blit_rect(arrow, arrow.get_used_rect() ,Vector2i(x*128, y*128))
|
|
if randi() % 4 == 0:
|
|
painting_em.blit_rect(arrow, arrow.get_used_rect() ,Vector2i(x*128, y*128))
|
|
sequence.append(dir)
|
|
for i in range(4-dir):
|
|
arrow.rotate_90(0)
|
|
|
|
|
|
var texture = ImageTexture.create_from_image(painting)
|
|
$Canvas.get_surface_override_material(0).albedo_texture = texture
|
|
var texture_em = ImageTexture.create_from_image(painting_em)
|
|
$Canvas.get_surface_override_material(0).emission_texture = texture_em
|