From 3ed63d81b97c2dcb9d5a8440d7ecd73c133e3aa5 Mon Sep 17 00:00:00 2001 From: Luke Hubmayer-Werner Date: Mon, 18 Nov 2019 13:11:02 +1030 Subject: [PATCH] Redid math to a zero center --- Bezel.gd | 25 +++++++++++++------------ Receptors.gd | 12 ++++++------ main.tscn | 18 ++++++++++++------ theme.gd | 2 ++ video.gd | 4 ++-- 5 files changed, 35 insertions(+), 26 deletions(-) diff --git a/Bezel.gd b/Bezel.gd index 23de07e..9a43d20 100644 --- a/Bezel.gd +++ b/Bezel.gd @@ -1,27 +1,28 @@ extends "res://main.gd" # Draw the bezel for radial gamemode +var center := Vector2(0.0, 0.0) func _draw(): - var bezel_color := Color.black - var bezel_colors := PoolColorArray([bezel_color]) + var bezel_colors := PoolColorArray([theme.bezel_color]) var bezel_points: PoolVector2Array + var screen_height2 := screen_height/2.0 - draw_rect(Rect2(0, 0, x_margin, screen_height), bezel_color) - draw_rect(Rect2(1920-x_margin, 0, x_margin, screen_height), bezel_color) + draw_rect(Rect2(-screen_height2, -screen_height2, -x_margin, screen_height), theme.bezel_color) + draw_rect(Rect2(screen_height2, -screen_height2, x_margin, screen_height), theme.bezel_color) - bezel_points = arc_point_list(screen_center, screen_height/2, 0, -90) - bezel_points.push_back(Vector2(1920-x_margin, 0)) + bezel_points = arc_point_list(center, screen_height2, 0, -90) + bezel_points.push_back(Vector2(screen_height2, -screen_height2)) draw_polygon(bezel_points, bezel_colors) - bezel_points = arc_point_list(screen_center, screen_height/2, -90, -180) - bezel_points.push_back(Vector2(x_margin, 0)) + bezel_points = arc_point_list(center, screen_height2, -90, -180) + bezel_points.push_back(Vector2(-screen_height2, -screen_height2)) draw_polygon(bezel_points, bezel_colors) - bezel_points = arc_point_list(screen_center, screen_height/2, -180, -270) - bezel_points.push_back(Vector2(x_margin, screen_height)) + bezel_points = arc_point_list(center, screen_height2, -180, -270) + bezel_points.push_back(Vector2(-screen_height2, screen_height2)) draw_polygon(bezel_points, bezel_colors) - bezel_points = arc_point_list(screen_center, screen_height/2, -270, -360) - bezel_points.push_back(Vector2(1920-x_margin, screen_height)) + bezel_points = arc_point_list(center, screen_height2, -270, -360) + bezel_points.push_back(Vector2(screen_height2, screen_height2)) draw_polygon(bezel_points, bezel_colors) diff --git a/Receptors.gd b/Receptors.gd index b91b084..194a31d 100644 --- a/Receptors.gd +++ b/Receptors.gd @@ -4,15 +4,15 @@ var ring_px := 4 var receptor_px := 24 var shadow_px := 5 var shadow_color := Color.black -var receptor_color := Color.blue +var center := Vector2(0.0, 0.0) func _draw(): # Screen filter - draw_rect(Rect2(x_margin, 0, screen_height, screen_height), theme.screen_filter) + draw_rect(Rect2(-screen_height/2, -screen_height/2, screen_height, screen_height), theme.screen_filter) # Receptor ring - var receptor_circle := arc_point_list(screen_center, theme.receptor_ring_radius, 0.0, 360.0, 360) - var receptor_centers := arc_point_list(screen_center, theme.receptor_ring_radius, Rules.FIRST_COLUMN_ANGLE_DEG, Rules.FIRST_COLUMN_ANGLE_DEG+360.0-Rules.COLS_ANGLE_DEG, Rules.COLS) + var receptor_circle := arc_point_list(center, theme.receptor_ring_radius, 0.0, 360.0, 360) + var receptor_centers := arc_point_list(center, theme.receptor_ring_radius, Rules.FIRST_COLUMN_ANGLE_DEG, Rules.FIRST_COLUMN_ANGLE_DEG+360.0-Rules.COLS_ANGLE_DEG, Rules.COLS) # Shadows for i in range(len(receptor_circle)-1): @@ -22,7 +22,7 @@ func _draw(): # Foregrounds for i in range(len(receptor_circle)-1): - draw_line(receptor_circle[i], receptor_circle[i+1], receptor_color, ring_px, true) + draw_line(receptor_circle[i], receptor_circle[i+1], theme.receptor_color, ring_px, true) for i in range(len(receptor_centers)): - draw_circle(receptor_centers[i], receptor_px/2, receptor_color) + draw_circle(receptor_centers[i], receptor_px/2, theme.receptor_color) diff --git a/main.tscn b/main.tscn index 33a8cdc..37edf9f 100644 --- a/main.tscn +++ b/main.tscn @@ -31,12 +31,17 @@ shader_param/held_color = null shader_param/screen_size = null [node name="main" type="Node2D"] +position = Vector2( 960, 540 ) script = ExtResource( 1 ) +__meta__ = { +"_edit_vertical_guides_": [ 1450.0 ] +} [node name="video" type="VideoPlayer" parent="."] -margin_left = 420.0 -margin_right = 1500.0 -margin_bottom = 1080.0 +margin_left = -540.0 +margin_top = -540.0 +margin_right = 540.0 +margin_bottom = 540.0 grow_horizontal = 2 grow_vertical = 2 rect_pivot_offset = Vector2( 540, 540 ) @@ -52,7 +57,6 @@ __meta__ = { script = ExtResource( 4 ) [node name="NoteHandler" type="Node2D" parent="."] -position = Vector2( 960, 540 ) script = ExtResource( 5 ) [node name="SlideTrailHandler" type="Node2D" parent="NoteHandler"] @@ -67,8 +71,10 @@ material = SubResource( 2 ) script = ExtResource( 8 ) [node name="InputHandler" type="Label" parent="."] -margin_right = 424.0 -margin_bottom = 216.0 +margin_left = -960.0 +margin_top = -540.0 +margin_right = 960.0 +margin_bottom = 540.0 custom_fonts/font = ExtResource( 9 ) text = "Fingers on the screen:" script = ExtResource( 10 ) diff --git a/theme.gd b/theme.gd index c40340b..c2b5ee2 100644 --- a/theme.gd +++ b/theme.gd @@ -34,6 +34,8 @@ var COLOR_ARRAY_DOUBLE_8 := PoolColorArray([ ]) var screen_filter := Color(0.0, 0.0, 0.0, 0.2) +var receptor_color := Color.blue +var bezel_color := Color.black var RADIAL_COL_ANGLES := PoolRealArray() # ideally const var RADIAL_UNIT_VECTORS := PoolVector2Array() # ideally const diff --git a/video.gd b/video.gd index e1e68b7..4d91a09 100644 --- a/video.gd +++ b/video.gd @@ -9,5 +9,5 @@ func update_aspect_ratio(ratio: float): # e.g. for a 1920x1080 video you'd call update_aspect_ratio(1920.0/1080.0) # e.g. for a 1440x1080 video you'd call update_aspect_ratio(1440.0/1080.0) var height = 1080/ratio - margin_top = (1080 - height)/2.0 - margin_bottom = margin_top + height + margin_top = -height/2.0 + margin_bottom = height/2.0