Ver Fonte

somemenujobs

axcwg há 5 meses atrás
pai
commit
72b08d344a
11 ficheiros alterados com 396 adições e 97 exclusões
  1. 2 0
      Autoloads/MusicController.tscn
  2. 1 2
      Start.gd
  3. 251 61
      StartMenu.tscn
  4. 35 0
      characterselect.gd
  5. 32 0
      characterselect.tscn
  6. 6 0
      easy.gd
  7. 6 0
      hard.gd
  8. 5 0
      lunatic.gd
  9. 16 0
      normal.gd
  10. BIN
      start.res
  11. 42 34
      start_menu.gd

+ 2 - 0
Autoloads/MusicController.tscn

@@ -6,5 +6,7 @@
 script = ExtResource("1_6hmfd")
 
 [node name="BGM" type="AudioStreamPlayer" parent="."]
+volume_db = -10.0
 
 [node name="SE" type="AudioStreamPlayer" parent="."]
+volume_db = -10.0

+ 1 - 2
Start.gd

@@ -17,8 +17,7 @@ func ok():
 	
 	
 	
-func cancel():
-	pass
+
 
 # Called every frame. 'delta' is the elapsed time since the previous frame.
 func _process(delta):

+ 251 - 61
StartMenu.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=12 format=3 uid="uid://c2xq1q4qs53e1"]
+[gd_scene load_steps=20 format=3 uid="uid://c2xq1q4qs53e1"]
 
 [ext_resource type="Script" path="res://start_menu.gd" id="1_gva81"]
 [ext_resource type="Texture2D" uid="uid://b2ogfu8bidlta" path="res://Assets/th0809/select00.png" id="1_mecpy"]
@@ -9,9 +9,8 @@
 [ext_resource type="Script" path="res://hard.gd" id="6_25dly"]
 [ext_resource type="Script" path="res://lunatic.gd" id="7_ujykt"]
 
-[sub_resource type="Animation" id="Animation_6nvv3"]
-resource_name = "new_animation"
-length = 0.1
+[sub_resource type="Animation" id="Animation_v7755"]
+length = 0.001
 tracks/0/type = "value"
 tracks/0/imported = false
 tracks/0/enabled = true
@@ -19,10 +18,10 @@ tracks/0/path = NodePath("Title:modulate")
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
 tracks/0/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
+"values": [Color(1, 1, 1, 0)]
 }
 tracks/1/type = "value"
 tracks/1/imported = false
@@ -31,10 +30,10 @@ tracks/1/path = NodePath("Easy:position")
 tracks/1/interp = 1
 tracks/1/loop_wrap = true
 tracks/1/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Vector2(305, 190), Vector2(365, 190)]
+"values": [Vector2(335, 190)]
 }
 tracks/2/type = "value"
 tracks/2/imported = false
@@ -43,10 +42,10 @@ tracks/2/path = NodePath("Easy:modulate")
 tracks/2/interp = 1
 tracks/2/loop_wrap = true
 tracks/2/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
+"values": [Color(1, 1, 1, 0)]
 }
 tracks/3/type = "value"
 tracks/3/imported = false
@@ -55,10 +54,10 @@ tracks/3/path = NodePath("Normal:position")
 tracks/3/interp = 1
 tracks/3/loop_wrap = true
 tracks/3/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Vector2(200, 284), Vector2(418, 284)]
+"values": [Vector2(403, 284)]
 }
 tracks/4/type = "value"
 tracks/4/imported = false
@@ -67,10 +66,10 @@ tracks/4/path = NodePath("Normal:modulate")
 tracks/4/interp = 1
 tracks/4/loop_wrap = true
 tracks/4/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
+"values": [Color(1, 1, 1, 0)]
 }
 tracks/5/type = "value"
 tracks/5/imported = false
@@ -79,10 +78,10 @@ tracks/5/path = NodePath("Hard:position")
 tracks/5/interp = 1
 tracks/5/loop_wrap = true
 tracks/5/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Vector2(368, 393), Vector2(398, 393)]
+"values": [Vector2(398, 393)]
 }
 tracks/6/type = "value"
 tracks/6/imported = false
@@ -91,10 +90,10 @@ tracks/6/path = NodePath("Hard:modulate")
 tracks/6/interp = 1
 tracks/6/loop_wrap = true
 tracks/6/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
+"values": [Color(1, 1, 1, 0)]
 }
 tracks/7/type = "value"
 tracks/7/imported = false
@@ -103,10 +102,10 @@ tracks/7/path = NodePath("Lunatic:position")
 tracks/7/interp = 1
 tracks/7/loop_wrap = true
 tracks/7/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Vector2(589, 514), Vector2(499, 514)]
+"values": [Vector2(499, 514)]
 }
 tracks/8/type = "value"
 tracks/8/imported = false
@@ -115,14 +114,15 @@ tracks/8/path = NodePath("Lunatic:modulate")
 tracks/8/interp = 1
 tracks/8/loop_wrap = true
 tracks/8/keys = {
-"times": PackedFloat32Array(0, 0.1),
-"transitions": PackedFloat32Array(1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
 "update": 0,
-"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
+"values": [Color(1, 1, 1, 0)]
 }
 
-[sub_resource type="Animation" id="Animation_v7755"]
-length = 0.001
+[sub_resource type="Animation" id="Animation_6nvv3"]
+resource_name = "new_animation"
+length = 0.1
 tracks/0/type = "value"
 tracks/0/imported = false
 tracks/0/enabled = true
@@ -130,10 +130,10 @@ tracks/0/path = NodePath("Title:modulate")
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
 tracks/0/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Color(1, 1, 1, 0)]
+"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
 }
 tracks/1/type = "value"
 tracks/1/imported = false
@@ -142,10 +142,10 @@ tracks/1/path = NodePath("Easy:position")
 tracks/1/interp = 1
 tracks/1/loop_wrap = true
 tracks/1/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Vector2(335, 190)]
+"values": [Vector2(305, 190), Vector2(365, 190)]
 }
 tracks/2/type = "value"
 tracks/2/imported = false
@@ -154,10 +154,10 @@ tracks/2/path = NodePath("Easy:modulate")
 tracks/2/interp = 1
 tracks/2/loop_wrap = true
 tracks/2/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Color(1, 1, 1, 0)]
+"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
 }
 tracks/3/type = "value"
 tracks/3/imported = false
@@ -166,10 +166,10 @@ tracks/3/path = NodePath("Normal:position")
 tracks/3/interp = 1
 tracks/3/loop_wrap = true
 tracks/3/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Vector2(403, 284)]
+"values": [Vector2(200, 284), Vector2(418, 284)]
 }
 tracks/4/type = "value"
 tracks/4/imported = false
@@ -178,10 +178,10 @@ tracks/4/path = NodePath("Normal:modulate")
 tracks/4/interp = 1
 tracks/4/loop_wrap = true
 tracks/4/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Color(1, 1, 1, 0)]
+"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
 }
 tracks/5/type = "value"
 tracks/5/imported = false
@@ -190,10 +190,10 @@ tracks/5/path = NodePath("Hard:position")
 tracks/5/interp = 1
 tracks/5/loop_wrap = true
 tracks/5/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Vector2(398, 393)]
+"values": [Vector2(368, 393), Vector2(398, 393)]
 }
 tracks/6/type = "value"
 tracks/6/imported = false
@@ -202,10 +202,10 @@ tracks/6/path = NodePath("Hard:modulate")
 tracks/6/interp = 1
 tracks/6/loop_wrap = true
 tracks/6/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Color(1, 1, 1, 0)]
+"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
 }
 tracks/7/type = "value"
 tracks/7/imported = false
@@ -214,10 +214,10 @@ tracks/7/path = NodePath("Lunatic:position")
 tracks/7/interp = 1
 tracks/7/loop_wrap = true
 tracks/7/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Vector2(499, 514)]
+"values": [Vector2(589, 514), Vector2(499, 514)]
 }
 tracks/8/type = "value"
 tracks/8/imported = false
@@ -226,16 +226,200 @@ tracks/8/path = NodePath("Lunatic:modulate")
 tracks/8/interp = 1
 tracks/8/loop_wrap = true
 tracks/8/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
 "update": 0,
-"values": [Color(1, 1, 1, 0)]
+"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_ubub6"]
+resource_name = "normal_selected"
+length = 0.1
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Normal:position")
+tracks/0/interp = 2
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(418, 284), Vector2(160, 525)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("Normal:modulate")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_rmfnf"]
+resource_name = "easy_selected"
+length = 0.1
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Easy:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(365, 190), Vector2(160, 525)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("Easy:modulate")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_fw2c0"]
+resource_name = "hard_selected"
+length = 0.1
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Hard:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(398, 393), Vector2(160, 525)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("Hard:modulate")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_u7kdn"]
+resource_name = "lunatic_selected"
+length = 0.1
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Lunatic:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(499, 514), Vector2(160, 525)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("Lunatic:modulate")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 0.1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_7obow"]
+resource_name = "easy_select_ani"
+length = 0.05
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Easy:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.0333333),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(365, 190), Vector2(315, 190)]
+}
+
+[sub_resource type="Animation" id="Animation_1sfeo"]
+resource_name = "normal_select_ani"
+length = 0.05
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Normal:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.0333333),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(418, 284), Vector2(368, 284)]
+}
+
+[sub_resource type="Animation" id="Animation_hevwb"]
+resource_name = "hard_select_ani"
+length = 0.05
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Hard:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.0333333),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(398, 393), Vector2(348, 393)]
+}
+
+[sub_resource type="Animation" id="Animation_1xwcd"]
+resource_name = "lunatic_select_ani"
+length = 0.05
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Lunatic:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.0333333),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(499, 514), Vector2(449, 514)]
 }
 
 [sub_resource type="AnimationLibrary" id="AnimationLibrary_ucd7n"]
 _data = {
 "RESET": SubResource("Animation_v7755"),
-"new_animation": SubResource("Animation_6nvv3")
+"easy_select_ani": SubResource("Animation_7obow"),
+"easy_selected": SubResource("Animation_rmfnf"),
+"hard_select_ani": SubResource("Animation_hevwb"),
+"hard_selected": SubResource("Animation_fw2c0"),
+"lunatic_select_ani": SubResource("Animation_1xwcd"),
+"lunatic_selected": SubResource("Animation_u7kdn"),
+"new_animation": SubResource("Animation_6nvv3"),
+"normal_select_ani": SubResource("Animation_1sfeo"),
+"normal_selected": SubResource("Animation_ubub6")
 }
 
 [node name="StartMenu" type="Control"]
@@ -305,3 +489,9 @@ libraries = {
 "": SubResource("AnimationLibrary_ucd7n")
 }
 speed_scale = 0.5
+
+[node name="AnimationPlayer2" type="AnimationPlayer" parent="."]
+libraries = {
+"": SubResource("AnimationLibrary_ucd7n")
+}
+speed_scale = 0.5

+ 35 - 0
characterselect.gd

@@ -0,0 +1,35 @@
+extends Node2D
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready() -> void:
+	pass # Replace with function body.
+
+	
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta: float) -> void:
+	if(Input.is_action_just_pressed("ui_cancel")):
+		MusicController.playSE(MusicController.SEs.cancel)
+		for i in get_tree().current_scene.get_node("StartMenu").nodes:
+			if (i as Sprite2D).get_meta("selected")==true:
+				match (i as Sprite2D).name:
+					"Easy":
+						(get_tree().current_scene.get_node("StartMenu").get_node("AnimationPlayer") as AnimationPlayer).play("new_animation")
+						(get_tree().current_scene.get_node("StartMenu").get_node("AnimationPlayer2") as AnimationPlayer).play_backwards("easy_selected")
+						
+
+					"Normal":
+						(get_tree().current_scene.get_node("StartMenu").get_node("AnimationPlayer") as AnimationPlayer).play("new_animation")
+						(get_tree().current_scene.get_node("StartMenu").get_node("AnimationPlayer2") as AnimationPlayer).play_backwards("normal_selected")
+					"Hard":
+						(get_tree().current_scene.get_node("StartMenu").get_node("AnimationPlayer") as AnimationPlayer).play("new_animation")
+						(get_tree().current_scene.get_node("StartMenu").get_node("AnimationPlayer2") as AnimationPlayer).play_backwards("hard_selected")
+					"Lunatic":
+						(get_tree().current_scene.get_node("StartMenu").get_node("AnimationPlayer") as AnimationPlayer).play("new_animation")
+						(get_tree().current_scene.get_node("StartMenu").get_node("AnimationPlayer2") as AnimationPlayer).play_backwards("lunatic_selected")
+			
+		get_tree().current_scene.get_node("StartMenu").upmenuopened=false
+		self.queue_free()
+		
+	pass

+ 32 - 0
characterselect.tscn

@@ -0,0 +1,32 @@
+[gd_scene load_steps=6 format=3 uid="uid://tin4ww4uy4wn"]
+
+[ext_resource type="Texture2D" uid="uid://c3ub7v8cvloky" path="res://Assets/title/sl_pl00h.png" id="1_qkwno"]
+[ext_resource type="Script" path="res://characterselect.gd" id="1_xr02q"]
+[ext_resource type="Texture2D" uid="uid://ctkev4rmfccdt" path="res://Assets/title/sl_pl00a.png" id="2_gplis"]
+[ext_resource type="Texture2D" uid="uid://dg1ktgauf6yo1" path="res://Assets/title/sl_pltxt0.png" id="3_3le1y"]
+[ext_resource type="Texture2D" uid="uid://ccq3b3bpc7lln" path="res://Assets/title/sl_text.png" id="4_wkmmt"]
+
+[node name="reimu_group" type="Node2D"]
+script = ExtResource("1_xr02q")
+
+[node name="reimu" type="Sprite2D" parent="."]
+position = Vector2(430, 335)
+scale = Vector2(1.25, 1.25)
+texture = ExtResource("1_qkwno")
+
+[node name="yukari" type="Sprite2D" parent="."]
+position = Vector2(436, 345)
+scale = Vector2(1.25, 1.25)
+texture = ExtResource("2_gplis")
+
+[node name="SlPltxt0" type="Sprite2D" parent="."]
+position = Vector2(639, 421)
+scale = Vector2(1.25, 1.25)
+texture = ExtResource("3_3le1y")
+
+[node name="SlText" type="Sprite2D" parent="."]
+position = Vector2(400, 60)
+scale = Vector2(1.25, 1.25)
+texture = ExtResource("4_wkmmt")
+region_enabled = true
+region_rect = Rect2(0, 52, 256, 43)

+ 6 - 0
easy.gd

@@ -1,6 +1,12 @@
 extends Sprite2D
 
 
+
+func ok():
+	var characterselect = load("res://characterselect.tscn").instantiate() as Node2D
+	(self.find_parent("StartMenu").get_node("AnimationPlayer") as AnimationPlayer).play_backwards("new_animation")
+	(self.find_parent("StartMenu").get_node("AnimationPlayer2") as AnimationPlayer).play("easy_selected")
+	get_tree().current_scene.add_child(characterselect)
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
 	pass # Replace with function body.

+ 6 - 0
hard.gd

@@ -1,6 +1,12 @@
 extends Sprite2D
 
 
+
+func ok():
+	var characterselect = load("res://characterselect.tscn").instantiate() as Node2D
+	(self.find_parent("StartMenu").get_node("AnimationPlayer") as AnimationPlayer).play_backwards("new_animation")
+	(self.find_parent("StartMenu").get_node("AnimationPlayer2") as AnimationPlayer).play("hard_selected")
+	get_tree().current_scene.add_child(characterselect)
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
 	pass # Replace with function body.

+ 5 - 0
lunatic.gd

@@ -1,6 +1,11 @@
 extends Sprite2D
 
 
+func ok():
+	var characterselect = load("res://characterselect.tscn").instantiate() as Node2D
+	(self.find_parent("StartMenu").get_node("AnimationPlayer") as AnimationPlayer).play_backwards("new_animation")
+	(self.find_parent("StartMenu").get_node("AnimationPlayer2") as AnimationPlayer).play("lunatic_selected")
+	get_tree().current_scene.add_child(characterselect)
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
 	pass # Replace with function body.

+ 16 - 0
normal.gd

@@ -1,13 +1,29 @@
 extends Sprite2D
 
 
+	
+
+func ok():
+	var characterselect = load("res://characterselect.tscn").instantiate() as Node2D
+	(self.find_parent("StartMenu").get_node("AnimationPlayer") as AnimationPlayer).play_backwards("new_animation")
+	(self.find_parent("StartMenu").get_node("AnimationPlayer2") as AnimationPlayer).play("normal_selected")
+	get_tree().current_scene.add_child(characterselect)
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
 	pass # Replace with function body.
 
+var selectAnimationPlayed = 0
 
 # Called every frame. 'delta' is the elapsed time since the previous frame.
 func _process(delta: float) -> void:
+	
 	self.set_region_rect(Rect2(256,80,256,80))
 	if(self.get_meta("selected") == true):
 		self.set_region_rect(Rect2(0,80,256,80))
+		if(selectAnimationPlayed == 0):
+			(self.get_parent().get_node("AnimationPlayer2") as AnimationPlayer).play("normal_select_ani")
+			selectAnimationPlayed = 1; 
+	elif selectAnimationPlayed==1:
+		(self.get_parent().get_node("AnimationPlayer2") as AnimationPlayer).play_backwards("normal_select_ani")
+		selectAnimationPlayed = 0;
+		

BIN
start.res


+ 42 - 34
start_menu.gd

@@ -2,6 +2,8 @@ extends Control
 
 
 var nodes
+var upmenuopened = false; 
+
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
 	nodes = [
@@ -10,45 +12,51 @@ func _ready() -> void:
 		self.get_node("Hard"),
 		self.get_node("Lunatic")
 	]
+	#(self.get_node("AnimationPlayer") as AnimationPlayer).speed_scale=99 
 	(self.get_node("AnimationPlayer") as AnimationPlayer).play("new_animation")
 
 
 # Called every frame. 'delta' is the elapsed time since the previous frame.
 func _process(delta: float) -> void:
-	if(Input.is_action_just_pressed("ui_accept")):
-		MusicController.playSE(MusicController.SEs.ok)
-
-	if(Input.is_action_just_pressed("ui_cancel")):
-		get_tree().current_scene.get_node("TitleMenuGroup").get_node("Menu").get_node("Start").submenuopened = false
-		MusicController.playSE(MusicController.SEs.cancel)
-		(self.get_node("AnimationPlayer") as AnimationPlayer).play_backwards("new_animation")
-		await get_tree().create_timer(0.25).timeout
-
-
-		self.queue_free()
-		(get_tree().get_root().get_node("Mainmenu").get_node("TitleMenuGroup").get_node("AnimationPlayer") as AnimationPlayer).play_backwards("new_animation_2")
-
-		
-		
-	if(Input.is_action_just_pressed("ui_up")):
-		MusicController.playSE(MusicController.SEs.select)
-		for i in range(0, nodes.size()) :
-			if((nodes[i] as Sprite2D).get_meta("selected") == true):
-				(nodes[i] as Sprite2D).set_meta("selected", false) 
-				(nodes[i-1] as Sprite2D).set_meta("selected", true) 
-				break
-	if(Input.is_action_just_pressed("ui_down")):
-		MusicController.playSE(MusicController.SEs.select)
-		for i in nodes.size():
+	if(upmenuopened==false):
+		if(Input.is_action_just_pressed("ui_accept")):
+			MusicController.playSE(MusicController.SEs.ok)
+			for i in nodes :
+					if(i.get_meta("selected") == true ):
+						upmenuopened = true	; 
+						i.ok()
+
+		if(Input.is_action_just_pressed("ui_cancel")):
+			get_tree().current_scene.get_node("TitleMenuGroup").get_node("Menu").get_node("Start").submenuopened = false
+			MusicController.playSE(MusicController.SEs.cancel)
+			(self.get_node("AnimationPlayer") as AnimationPlayer).play_backwards("new_animation")
+			await get_tree().create_timer(0.25).timeout
+
+
+			self.queue_free()
+			(get_tree().get_root().get_node("Mainmenu").get_node("TitleMenuGroup").get_node("AnimationPlayer") as AnimationPlayer).play_backwards("new_animation_2")
+
 			
-			if((nodes[i] as Sprite2D).get_meta("selected") == true):
-				(nodes[i] as Sprite2D).set_meta("selected", false) 
-				if(i+1 >= nodes.size()):
-					(nodes[0] as Sprite2D).set_meta("selected", true)
-					
-					break
-				else:
-					(nodes[i+1] as Sprite2D).set_meta("selected", true)
-					
+			
+		if(Input.is_action_just_pressed("ui_up")):
+			MusicController.playSE(MusicController.SEs.select)
+			for i in range(0, nodes.size()) :
+				if((nodes[i] as Sprite2D).get_meta("selected") == true):
+					(nodes[i] as Sprite2D).set_meta("selected", false) 
+					(nodes[i-1] as Sprite2D).set_meta("selected", true) 
 					break
+		if(Input.is_action_just_pressed("ui_down")):
+			MusicController.playSE(MusicController.SEs.select)
+			for i in nodes.size():
+				
+				if((nodes[i] as Sprite2D).get_meta("selected") == true):
+					(nodes[i] as Sprite2D).set_meta("selected", false) 
+					if(i+1 >= nodes.size()):
+						(nodes[0] as Sprite2D).set_meta("selected", true)
+						
+						break
+					else:
+						(nodes[i+1] as Sprite2D).set_meta("selected", true)
+						
+						break