Adds graphics for background and menu
							parent
							
								
									5bb80495d1
								
							
						
					
					
						commit
						fb766bba52
					
				| 
						 | 
				
			
			@ -17,6 +17,7 @@ script = ExtResource("1_arass")
 | 
			
		|||
[node name="FinalScore" type="Label" parent="."]
 | 
			
		||||
layout_mode = 2
 | 
			
		||||
text = "Final Score
 | 
			
		||||
 | 
			
		||||
0"
 | 
			
		||||
label_settings = SubResource("LabelSettings_7upku")
 | 
			
		||||
horizontal_alignment = 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,5 +24,6 @@ monitorable = false
 | 
			
		|||
shape = SubResource("RectangleShape2D_51e2h")
 | 
			
		||||
 | 
			
		||||
[node name="MeshInstance2D" type="MeshInstance2D" parent="CollisionShape2D"]
 | 
			
		||||
visible = false
 | 
			
		||||
mesh = SubResource("QuadMesh_tumq0")
 | 
			
		||||
texture = SubResource("GradientTexture2D_6phgx")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
				
			
			@ -1,9 +1,29 @@
 | 
			
		|||
[gd_scene load_steps=3 format=3 uid="uid://bu5cwjawsnb1q"]
 | 
			
		||||
[gd_scene load_steps=10 format=3 uid="uid://bu5cwjawsnb1q"]
 | 
			
		||||
 | 
			
		||||
[ext_resource type="Script" uid="uid://bomw4j2mmerry" path="res://Scripts/main_menu.gd" id="1_28flt"]
 | 
			
		||||
[ext_resource type="Texture2D" uid="uid://dxdtqv4do4x31" path="res://Sprites/background.png" id="2_48xlc"]
 | 
			
		||||
[ext_resource type="Texture2D" uid="uid://c6kno4vjbvu28" path="res://Sprites/ouroboros.png" id="3_ce3w2"]
 | 
			
		||||
[ext_resource type="Script" uid="uid://dp3dc6g76g8wq" path="res://Scripts/menu_ouroboros.gd" id="4_n45e2"]
 | 
			
		||||
 | 
			
		||||
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_erv1k"]
 | 
			
		||||
size = Vector2(800, 160)
 | 
			
		||||
[sub_resource type="LabelSettings" id="LabelSettings_ce3w2"]
 | 
			
		||||
font_size = 160
 | 
			
		||||
font_color = Color(1, 0.271, 0, 1)
 | 
			
		||||
 | 
			
		||||
[sub_resource type="LabelSettings" id="LabelSettings_n45e2"]
 | 
			
		||||
font_size = 160
 | 
			
		||||
font_color = Color(1, 1, 0, 1)
 | 
			
		||||
 | 
			
		||||
[sub_resource type="LabelSettings" id="LabelSettings_opfnp"]
 | 
			
		||||
font_size = 160
 | 
			
		||||
font_color = Color(0, 0, 1, 1)
 | 
			
		||||
 | 
			
		||||
[sub_resource type="LabelSettings" id="LabelSettings_cp0ys"]
 | 
			
		||||
font_size = 160
 | 
			
		||||
font_color = Color(0.545098, 0, 0, 1)
 | 
			
		||||
 | 
			
		||||
[sub_resource type="LabelSettings" id="LabelSettings_yhxw7"]
 | 
			
		||||
font_size = 160
 | 
			
		||||
font_color = Color(1, 1, 0, 1)
 | 
			
		||||
 | 
			
		||||
[node name="MainMenu" type="Control"]
 | 
			
		||||
layout_mode = 3
 | 
			
		||||
| 
						 | 
				
			
			@ -14,6 +34,10 @@ grow_horizontal = 2
 | 
			
		|||
grow_vertical = 2
 | 
			
		||||
script = ExtResource("1_28flt")
 | 
			
		||||
 | 
			
		||||
[node name="Background" type="Sprite2D" parent="."]
 | 
			
		||||
texture = ExtResource("2_48xlc")
 | 
			
		||||
centered = false
 | 
			
		||||
 | 
			
		||||
[node name="Container" type="Control" parent="."]
 | 
			
		||||
layout_mode = 1
 | 
			
		||||
anchors_preset = 0
 | 
			
		||||
| 
						 | 
				
			
			@ -42,17 +66,79 @@ text = "Options"
 | 
			
		|||
layout_mode = 2
 | 
			
		||||
text = "Quit"
 | 
			
		||||
 | 
			
		||||
[node name="TextureRect" type="TextureRect" parent="."]
 | 
			
		||||
layout_mode = 1
 | 
			
		||||
anchors_preset = -1
 | 
			
		||||
anchor_left = 0.1
 | 
			
		||||
anchor_top = 0.045
 | 
			
		||||
anchor_right = 0.9
 | 
			
		||||
anchor_bottom = 0.284
 | 
			
		||||
grow_horizontal = 2
 | 
			
		||||
grow_vertical = 2
 | 
			
		||||
texture = SubResource("PlaceholderTexture2D_erv1k")
 | 
			
		||||
expand_mode = 2
 | 
			
		||||
[node name="Title" type="Control" parent="."]
 | 
			
		||||
anchors_preset = 0
 | 
			
		||||
offset_left = -34.0
 | 
			
		||||
offset_top = -2.0
 | 
			
		||||
offset_right = 6.0
 | 
			
		||||
offset_bottom = 38.0
 | 
			
		||||
 | 
			
		||||
[node name="Ouroboros" type="Sprite2D" parent="Title"]
 | 
			
		||||
modulate = Color(0.545, 0, 0, 1)
 | 
			
		||||
position = Vector2(241, 130)
 | 
			
		||||
texture = ExtResource("3_ce3w2")
 | 
			
		||||
script = ExtResource("4_n45e2")
 | 
			
		||||
 | 
			
		||||
[node name="Ouroboros2" type="Sprite2D" parent="Title"]
 | 
			
		||||
modulate = Color(0, 0.502, 0, 1)
 | 
			
		||||
position = Vector2(574, 176)
 | 
			
		||||
scale = Vector2(0.5, 0.5)
 | 
			
		||||
texture = ExtResource("3_ce3w2")
 | 
			
		||||
script = ExtResource("4_n45e2")
 | 
			
		||||
 | 
			
		||||
[node name="Ouroboros3" type="Sprite2D" parent="Title"]
 | 
			
		||||
modulate = Color(0.4, 0.2, 0.6, 1)
 | 
			
		||||
position = Vector2(776, 178)
 | 
			
		||||
scale = Vector2(0.5, 0.5)
 | 
			
		||||
texture = ExtResource("3_ce3w2")
 | 
			
		||||
script = ExtResource("4_n45e2")
 | 
			
		||||
 | 
			
		||||
[node name="Ouroboros4" type="Sprite2D" parent="Title"]
 | 
			
		||||
modulate = Color(1, 0.270588, 0, 1)
 | 
			
		||||
position = Vector2(947, 181)
 | 
			
		||||
scale = Vector2(0.5, 0.5)
 | 
			
		||||
texture = ExtResource("3_ce3w2")
 | 
			
		||||
script = ExtResource("4_n45e2")
 | 
			
		||||
 | 
			
		||||
[node name="Label" type="Label" parent="Title"]
 | 
			
		||||
offset_left = 351.0
 | 
			
		||||
offset_top = 49.0
 | 
			
		||||
offset_right = 522.0
 | 
			
		||||
offset_bottom = 268.0
 | 
			
		||||
text = "u"
 | 
			
		||||
label_settings = SubResource("LabelSettings_ce3w2")
 | 
			
		||||
 | 
			
		||||
[node name="Label5" type="Label" parent="Title"]
 | 
			
		||||
offset_left = 453.0
 | 
			
		||||
offset_top = 49.0
 | 
			
		||||
offset_right = 624.0
 | 
			
		||||
offset_bottom = 268.0
 | 
			
		||||
text = "r"
 | 
			
		||||
label_settings = SubResource("LabelSettings_n45e2")
 | 
			
		||||
 | 
			
		||||
[node name="Label2" type="Label" parent="Title"]
 | 
			
		||||
offset_left = 625.0
 | 
			
		||||
offset_top = 50.0
 | 
			
		||||
offset_right = 725.0
 | 
			
		||||
offset_bottom = 269.0
 | 
			
		||||
text = "b"
 | 
			
		||||
label_settings = SubResource("LabelSettings_opfnp")
 | 
			
		||||
 | 
			
		||||
[node name="Label3" type="Label" parent="Title"]
 | 
			
		||||
offset_left = 827.0
 | 
			
		||||
offset_top = 52.0
 | 
			
		||||
offset_right = 927.0
 | 
			
		||||
offset_bottom = 271.0
 | 
			
		||||
text = "r"
 | 
			
		||||
label_settings = SubResource("LabelSettings_cp0ys")
 | 
			
		||||
 | 
			
		||||
[node name="Label4" type="Label" parent="Title"]
 | 
			
		||||
offset_left = 998.0
 | 
			
		||||
offset_top = 51.0
 | 
			
		||||
offset_right = 1098.0
 | 
			
		||||
offset_bottom = 270.0
 | 
			
		||||
text = "s"
 | 
			
		||||
label_settings = SubResource("LabelSettings_yhxw7")
 | 
			
		||||
 | 
			
		||||
[connection signal="pressed" from="Buttons/Start" to="." method="start_game"]
 | 
			
		||||
[connection signal="pressed" from="Buttons/Quit" to="." method="quit"]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,10 @@
 | 
			
		|||
[gd_scene load_steps=2 format=3 uid="uid://mp03fsd536be"]
 | 
			
		||||
[gd_scene load_steps=3 format=3 uid="uid://mp03fsd536be"]
 | 
			
		||||
 | 
			
		||||
[ext_resource type="Script" uid="uid://bwiflwp3hufyu" path="res://Scripts/score_display.gd" id="1_abl27"]
 | 
			
		||||
 | 
			
		||||
[sub_resource type="LabelSettings" id="LabelSettings_abl27"]
 | 
			
		||||
font_size = 22
 | 
			
		||||
 | 
			
		||||
[node name="ScoreDisplay" type="VBoxContainer"]
 | 
			
		||||
anchors_preset = 15
 | 
			
		||||
anchor_right = 1.0
 | 
			
		||||
| 
						 | 
				
			
			@ -14,22 +17,40 @@ script = ExtResource("1_abl27")
 | 
			
		|||
layout_mode = 2
 | 
			
		||||
text = "Score
 | 
			
		||||
0"
 | 
			
		||||
label_settings = SubResource("LabelSettings_abl27")
 | 
			
		||||
horizontal_alignment = 1
 | 
			
		||||
 | 
			
		||||
[node name="Spacer" type="Control" parent="."]
 | 
			
		||||
layout_mode = 2
 | 
			
		||||
size_flags_vertical = 3
 | 
			
		||||
 | 
			
		||||
[node name="LengthLabel" type="Label" parent="."]
 | 
			
		||||
layout_mode = 2
 | 
			
		||||
text = "Length
 | 
			
		||||
3"
 | 
			
		||||
label_settings = SubResource("LabelSettings_abl27")
 | 
			
		||||
horizontal_alignment = 1
 | 
			
		||||
 | 
			
		||||
[node name="Spacer2" type="Control" parent="."]
 | 
			
		||||
layout_mode = 2
 | 
			
		||||
size_flags_vertical = 3
 | 
			
		||||
 | 
			
		||||
[node name="PendingLengthLabel" type="Label" parent="."]
 | 
			
		||||
layout_mode = 2
 | 
			
		||||
text = "Length
 | 
			
		||||
text = "Eventual
 | 
			
		||||
Length
 | 
			
		||||
3"
 | 
			
		||||
label_settings = SubResource("LabelSettings_abl27")
 | 
			
		||||
horizontal_alignment = 1
 | 
			
		||||
 | 
			
		||||
[node name="Spacer3" type="Control" parent="."]
 | 
			
		||||
layout_mode = 2
 | 
			
		||||
size_flags_vertical = 3
 | 
			
		||||
 | 
			
		||||
[node name="OuroborosPossibleLabel" type="Label" parent="."]
 | 
			
		||||
layout_mode = 2
 | 
			
		||||
text = "Ouroboros Possible
 | 
			
		||||
text = "Ouroboros 
 | 
			
		||||
Possible?
 | 
			
		||||
No"
 | 
			
		||||
label_settings = SubResource("LabelSettings_abl27")
 | 
			
		||||
horizontal_alignment = 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,8 +20,8 @@ func _ready() -> void:
 | 
			
		|||
	var y_bounds : Vector2 = level.position.y * Vector2.ONE + Vector2(-TILE_SIZE, TILE_SIZE) * level.scale.y / 2
 | 
			
		||||
	
 | 
			
		||||
	# Determine the possible x and y coordinates
 | 
			
		||||
	var possible_x : Array = range(x_bounds.x, x_bounds.y, TILE_SIZE)
 | 
			
		||||
	var possible_y : Array = range(y_bounds.x, y_bounds.y, TILE_SIZE)
 | 
			
		||||
	var possible_x : Array = range(x_bounds.x, x_bounds.y + 20, TILE_SIZE)
 | 
			
		||||
	var possible_y : Array = range(y_bounds.x, y_bounds.y + 20, TILE_SIZE)
 | 
			
		||||
	
 | 
			
		||||
	# Add each combination of x and y to the list of positions
 | 
			
		||||
	for x in possible_x:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ var score_label : Label = $FinalScore
 | 
			
		|||
 | 
			
		||||
func update_score() -> void:
 | 
			
		||||
	if score_label != null:
 | 
			
		||||
		score_label.text = "Final Score\n{score}".format(GameManager)
 | 
			
		||||
		score_label.text = "Final Score\n\n{score}".format(GameManager)
 | 
			
		||||
 | 
			
		||||
func restart():
 | 
			
		||||
	get_tree().change_scene_to_packed(load("res://Scenes/main.tscn"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
extends Sprite2D
 | 
			
		||||
 | 
			
		||||
const ROTATION_SPEED = 0.2
 | 
			
		||||
 | 
			
		||||
func _process(delta: float) -> void:
 | 
			
		||||
	rotate(delta * ROTATION_SPEED)
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
uid://dp3dc6g76g8wq
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
extends Sprite2D
 | 
			
		||||
 | 
			
		||||
const ROTATION_SPEED = 0.2
 | 
			
		||||
 | 
			
		||||
func _process(delta: float) -> void:
 | 
			
		||||
	var head = get_tree().get_first_node_in_group("Head")
 | 
			
		||||
	if head is SnakePart:
 | 
			
		||||
		rotate(delta * ROTATION_SPEED * (head.colour_index + 1))
 | 
			
		||||
		modulate = head.COLOURS[head.colour_index]
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
uid://8jbramxjbw1w
 | 
			
		||||
| 
						 | 
				
			
			@ -16,11 +16,11 @@ func _process(_delta: float) -> void:
 | 
			
		|||
	length_label.text = "Length\n{0}".format([get_snake_length()])
 | 
			
		||||
	var head : Node = get_tree().get_first_node_in_group("Head")
 | 
			
		||||
	if head is SnakePart:
 | 
			
		||||
		pending_length_label.text = "Eventual Length\n{0}".format([get_snake_length() + head.queued_growth])
 | 
			
		||||
		pending_length_label.text = "Eventual\nLength\n{0}".format([get_snake_length() + head.queued_growth])
 | 
			
		||||
	if ouroboros_possible:
 | 
			
		||||
		ouroboros_label.text = "Ouroboros Possible\nYes"
 | 
			
		||||
		ouroboros_label.text = "Ouroboros\nPossible?\nYes"
 | 
			
		||||
	else:
 | 
			
		||||
		ouroboros_label.text = "Ouroboros Possible\nNo"
 | 
			
		||||
		ouroboros_label.text = "Ouroboros\nPossible?\nNo"
 | 
			
		||||
 | 
			
		||||
func get_snake_length() -> int:
 | 
			
		||||
	var length : int = 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,7 +54,7 @@ var image_tail : CompressedTexture2D = preload("res://Sprites/snake_tail.png")
 | 
			
		|||
var next_part : SnakePart = null
 | 
			
		||||
var commanding_head : SnakePart = null
 | 
			
		||||
var skip_next_move_propagation : bool = false
 | 
			
		||||
var queued_growth : int = 999
 | 
			
		||||
var queued_growth : int = 0
 | 
			
		||||
 | 
			
		||||
signal on_movement(new_dir, prevent_move)
 | 
			
		||||
signal on_death
 | 
			
		||||
| 
						 | 
				
			
			@ -74,8 +74,8 @@ func _ready() -> void:
 | 
			
		|||
		var y_bounds : Vector2 = level.position.y * Vector2.ONE + Vector2(-TILE_SIZE, TILE_SIZE) * level.scale.y / 2
 | 
			
		||||
 | 
			
		||||
		# Determine the possible x and y coordinates
 | 
			
		||||
		possible_x = range(x_bounds.x, x_bounds.y, TILE_SIZE)
 | 
			
		||||
		possible_y = range(y_bounds.x, y_bounds.y, TILE_SIZE)
 | 
			
		||||
		possible_x = range(x_bounds.x, x_bounds.y + 20, TILE_SIZE)
 | 
			
		||||
		possible_y = range(y_bounds.x, y_bounds.y + 20, TILE_SIZE)
 | 
			
		||||
		
 | 
			
		||||
		# Attach clock
 | 
			
		||||
		var timer : Node = get_tree().get_first_node_in_group("GameClock")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.2 MiB  | 
| 
						 | 
				
			
			@ -0,0 +1,34 @@
 | 
			
		|||
[remap]
 | 
			
		||||
 | 
			
		||||
importer="texture"
 | 
			
		||||
type="CompressedTexture2D"
 | 
			
		||||
uid="uid://dxdtqv4do4x31"
 | 
			
		||||
path="res://.godot/imported/background.png-4fa92766cad903a1a79b587b09bd47c5.ctex"
 | 
			
		||||
metadata={
 | 
			
		||||
"vram_texture": false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[deps]
 | 
			
		||||
 | 
			
		||||
source_file="res://Sprites/background.png"
 | 
			
		||||
dest_files=["res://.godot/imported/background.png-4fa92766cad903a1a79b587b09bd47c5.ctex"]
 | 
			
		||||
 | 
			
		||||
[params]
 | 
			
		||||
 | 
			
		||||
compress/mode=0
 | 
			
		||||
compress/high_quality=false
 | 
			
		||||
compress/lossy_quality=0.7
 | 
			
		||||
compress/hdr_compression=1
 | 
			
		||||
compress/normal_map=0
 | 
			
		||||
compress/channel_pack=0
 | 
			
		||||
mipmaps/generate=false
 | 
			
		||||
mipmaps/limit=-1
 | 
			
		||||
roughness/mode=0
 | 
			
		||||
roughness/src_normal=""
 | 
			
		||||
process/fix_alpha_border=true
 | 
			
		||||
process/premult_alpha=false
 | 
			
		||||
process/normal_map_invert_y=false
 | 
			
		||||
process/hdr_as_srgb=false
 | 
			
		||||
process/hdr_clamp_exposure=false
 | 
			
		||||
process/size_limit=0
 | 
			
		||||
detect_3d/compress_to=1
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 4.1 KiB  | 
| 
						 | 
				
			
			@ -0,0 +1,34 @@
 | 
			
		|||
[remap]
 | 
			
		||||
 | 
			
		||||
importer="texture"
 | 
			
		||||
type="CompressedTexture2D"
 | 
			
		||||
uid="uid://c6kno4vjbvu28"
 | 
			
		||||
path="res://.godot/imported/ouroboros.png-da3a5483a878ddf056c771fe7aa64ca9.ctex"
 | 
			
		||||
metadata={
 | 
			
		||||
"vram_texture": false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[deps]
 | 
			
		||||
 | 
			
		||||
source_file="res://Sprites/ouroboros.png"
 | 
			
		||||
dest_files=["res://.godot/imported/ouroboros.png-da3a5483a878ddf056c771fe7aa64ca9.ctex"]
 | 
			
		||||
 | 
			
		||||
[params]
 | 
			
		||||
 | 
			
		||||
compress/mode=0
 | 
			
		||||
compress/high_quality=false
 | 
			
		||||
compress/lossy_quality=0.7
 | 
			
		||||
compress/hdr_compression=1
 | 
			
		||||
compress/normal_map=0
 | 
			
		||||
compress/channel_pack=0
 | 
			
		||||
mipmaps/generate=false
 | 
			
		||||
mipmaps/limit=-1
 | 
			
		||||
roughness/mode=0
 | 
			
		||||
roughness/src_normal=""
 | 
			
		||||
process/fix_alpha_border=true
 | 
			
		||||
process/premult_alpha=false
 | 
			
		||||
process/normal_map_invert_y=false
 | 
			
		||||
process/hdr_as_srgb=false
 | 
			
		||||
process/hdr_clamp_exposure=false
 | 
			
		||||
process/size_limit=0
 | 
			
		||||
detect_3d/compress_to=1
 | 
			
		||||
| 
						 | 
				
			
			@ -61,3 +61,4 @@ up={
 | 
			
		|||
 | 
			
		||||
renderer/rendering_method="gl_compatibility"
 | 
			
		||||
renderer/rendering_method.mobile="gl_compatibility"
 | 
			
		||||
2d/snap/snap_2d_transforms_to_pixel=true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue