Files

19 lines
774 B
GDScript

@tool
extends Node2D
const LOGICAL := Vector2(256,231)
var destination := Rect2(0,0,768,576)
func _process(_delta: float) -> void:
var available := get_viewport_rect().size if not Engine.is_editor_hint() else Vector2(768,576)
var factor := minf(available.x/4.0,available.y/3.0)
var size := Vector2(4,3)*factor
destination = Rect2((available-size)*.5,size)
queue_redraw()
func to_logical(point: Vector2) -> Vector2:
return (point-destination.position)/destination.size*LOGICAL
func to_logical_delta(delta: Vector2) -> Vector2:
return delta/destination.size*LOGICAL
func _draw() -> void:
draw_rect(Rect2(Vector2.ZERO,get_viewport_rect().size),Color.BLACK)
if has_node("../PixelScreen"):
draw_texture_rect(get_node("../PixelScreen").get_texture(),destination,false)