mirror of
https://github.com/jwinterm/MoonLaunch.git
synced 2026-10-17 05:41:29 +02:00
51 lines
1.2 KiB
GDScript
51 lines
1.2 KiB
GDScript
# adapted with thanks from code by GDQuest
|
|
# http://gdquest.com/
|
|
|
|
extends Node2D
|
|
|
|
var colors = {
|
|
'BLUE': Color(.216, .474, .702),
|
|
'RED': Color(1.0, .329, .298),
|
|
'YELLOW': Color(.867, .91, .247),
|
|
'GREEN': Color(.054, .718, .247)
|
|
}
|
|
|
|
var WIDTH = 5
|
|
var parent = null
|
|
|
|
func _ready():
|
|
parent = get_parent()
|
|
set_process(true)
|
|
set_process_input(true)
|
|
set_hidden(true)
|
|
|
|
func _input(event):
|
|
#if event.is_action_pressed("ui_focus_next"):
|
|
# set_hidden(not is_hidden())
|
|
pass
|
|
|
|
func _process(delta):
|
|
set_global_rot(0)
|
|
update()
|
|
|
|
func _draw():
|
|
draw_arrow(parent.get_linear_velocity(), Vector2(), 1.0, 'YELLOW')
|
|
draw_arrow(parent.get_applied_force(), Vector2(), 0.5, 'RED')
|
|
|
|
func draw_arrow(vector, pos, scale, color):
|
|
color = colors[color]
|
|
if vector.length() == 0:
|
|
return
|
|
draw_line(pos * scale, vector * scale, color, WIDTH)
|
|
var dir = vector.normalized()
|
|
draw_triangle(vector * scale, dir, 10, color)
|
|
draw_circle(pos, 5, color)
|
|
|
|
func draw_triangle(pos, dir, size, color):
|
|
var a = pos + dir * size
|
|
var b = pos + dir.rotated(2*PI/3) * size
|
|
var c = pos + dir.rotated(4*PI/3) * size
|
|
var points = Vector2Array([a, b, c])
|
|
draw_polygon(points, ColorArray([color]))
|
|
|