mirror of
https://github.com/HarmonyHoney/ROTA.git
synced 2026-07-18 00:56:58 +00:00
WRAP IT UP title screen (:
EaseMover.new(_time, _clock, ...) Audio.dict now only using AudioStreamPlayer or ASP2D (: Wrapper.gd to wrap target node! Ignoring inputs when MenuPause open^.^ Duplicate enemies on world 4+ (=
This commit is contained in:
parent
22eb353320
commit
39df84acc7
12 changed files with 218 additions and 95 deletions
|
|
@ -22,7 +22,7 @@ func _exit_tree():
|
|||
Cam.target_node = player
|
||||
|
||||
func _physics_process(delta):
|
||||
var m = MenuPause.is_open
|
||||
var m = MenuPause.is_paused
|
||||
|
||||
joy.x = 0.0 if m else round(Input.get_axis("left", "right"))
|
||||
var a = Input.is_action_pressed("jump")
|
||||
|
|
|
|||
|
|
@ -89,11 +89,11 @@ rect_clip_content = true
|
|||
position = Vector2( 0, 310 )
|
||||
|
||||
[node name="Joystick" type="Node2D" parent="CanvasLayer/Cabinet/Controls"]
|
||||
position = Vector2( -200, 23 )
|
||||
position = Vector2( -180, 23 )
|
||||
|
||||
[node name="Polygon2D2" type="Polygon2D" parent="CanvasLayer/Cabinet/Controls/Joystick"]
|
||||
position = Vector2( 0, -50 )
|
||||
color = Color( 0.5, 0, 0, 1 )
|
||||
color = Color( 0.392157, 0, 0.196078, 1 )
|
||||
polygon = PoolVector2Array( 15, 50, 14.6239, 53.3378, 13.5145, 56.5083, 11.7275, 59.3523, 9.35235, 61.7275, 6.50826, 63.5145, 3.33781, 64.6239, -6.55671e-07, 65, -3.33781, 64.6239, -6.50826, 63.5145, -9.35235, 61.7275, -11.7275, 59.3523, -13.5145, 56.5083, -14.6239, 53.3378, -15, 50, -15, -50, -14.6239, -53.3378, -13.5145, -56.5083, -11.7275, -59.3523, -9.35234, -61.7275, -6.50826, -63.5145, -3.33782, -64.6239, 1.78873e-07, -65, 3.33782, -64.6239, 6.50826, -63.5145, 9.35235, -61.7275, 11.7275, -59.3523, 13.5145, -56.5083, 14.6239, -53.3378, 15, -50 )
|
||||
script = ExtResource( 1 )
|
||||
is_baked = false
|
||||
|
|
@ -107,11 +107,11 @@ polygon = PoolVector2Array( 50, 0, 46.194, 19.1342, 35.3553, 35.3553, 19.1342, 4
|
|||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Button" type="Node2D" parent="CanvasLayer/Cabinet/Controls"]
|
||||
position = Vector2( 50, 0 )
|
||||
position = Vector2( 30, 0 )
|
||||
scale = Vector2( 1, 0.75 )
|
||||
|
||||
[node name="Polygon2D2" type="Polygon2D" parent="CanvasLayer/Cabinet/Controls/Button"]
|
||||
color = Color( 0.5, 0, 0, 1 )
|
||||
color = Color( 0.392157, 0, 0.196078, 1 )
|
||||
polygon = PoolVector2Array( 50, 0, 46.194, 19.1342, 35.3553, 35.3553, 19.1342, 46.194, -2.18557e-06, 50, -19.1342, 46.194, -35.3553, 35.3553, -46.194, 19.1342, -50, -4.37114e-06, -46.194, -19.1342, -35.3553, -35.3553, -19.1342, -46.194, 5.96244e-07, -50, 19.1342, -46.194, 35.3553, -35.3553, 46.194, -19.1342 )
|
||||
script = ExtResource( 2 )
|
||||
|
||||
|
|
@ -141,11 +141,11 @@ rect_offset = Vector2( 0, 10 )
|
|||
radius = Plane( 0, 0, -2, -2 )
|
||||
|
||||
[node name="Button2" type="Node2D" parent="CanvasLayer/Cabinet/Controls"]
|
||||
position = Vector2( 200, 0 )
|
||||
position = Vector2( 180, 0 )
|
||||
scale = Vector2( 1, 0.75 )
|
||||
|
||||
[node name="Polygon2D2" type="Polygon2D" parent="CanvasLayer/Cabinet/Controls/Button2"]
|
||||
color = Color( 0.5, 0, 0, 1 )
|
||||
color = Color( 0.392157, 0, 0.196078, 1 )
|
||||
polygon = PoolVector2Array( 50, 0, 46.194, 19.1342, 35.3553, 35.3553, 19.1342, 46.194, -2.18557e-06, 50, -19.1342, 46.194, -35.3553, 35.3553, -46.194, 19.1342, -50, -4.37114e-06, -46.194, -19.1342, -35.3553, -35.3553, -19.1342, -46.194, 5.96244e-07, -50, 19.1342, -46.194, 35.3553, -35.3553, 46.194, -19.1342 )
|
||||
script = ExtResource( 2 )
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export var tile_size := 12.0
|
|||
export(String, DIR) var folder := ""
|
||||
onready var maps : Array = Shared.list_all_files(folder)
|
||||
export var map := 0 setget set_map
|
||||
var map_ease := EaseMover.new(1.0)
|
||||
var map_ease := EaseMover.new(1.0, 0.01)
|
||||
|
||||
var candies := []
|
||||
|
||||
|
|
@ -23,12 +23,35 @@ export var cam_speed := 100.0
|
|||
var wrap_angle = 0.0
|
||||
var delta_scale := 1.0
|
||||
|
||||
var btn_a := false
|
||||
var btn_b := false
|
||||
var is_unpause := false
|
||||
|
||||
var candy_scene := load("res://src/arcade/Candy.tscn")
|
||||
|
||||
onready var music : AudioStreamPlayer = Audio.dict["music_arcade"]
|
||||
|
||||
func _ready():
|
||||
map_ease.clock = 0.01
|
||||
|
||||
MenuPause.connect("opened", self, "pause")
|
||||
scene()
|
||||
Audio.play("arcade_boot")
|
||||
yield(get_tree().create_timer(1.0), "timeout")
|
||||
music.play()
|
||||
|
||||
func _exit_tree():
|
||||
if music:
|
||||
music.stop()
|
||||
|
||||
func _physics_process(delta):
|
||||
var m = MenuPause.is_paused
|
||||
var a = Input.is_action_pressed("jump")
|
||||
var b = Input.is_action_pressed("grab")
|
||||
|
||||
if is_unpause: is_unpause = a or b
|
||||
if !is_unpause:
|
||||
btn_a = a and !m
|
||||
btn_b = b and !m
|
||||
|
||||
var s = map_ease.count(delta)
|
||||
var f = map_ease.frac()
|
||||
|
||||
|
|
@ -42,12 +65,15 @@ func _physics_process(delta):
|
|||
yield(get_tree(), "physics_frame")
|
||||
scene()
|
||||
|
||||
|
||||
if wrap_cam > 0:
|
||||
cam.position += Vector2.RIGHT.rotated(wrap_angle) * cam_speed * delta
|
||||
cam.position = Vector2(wrapf(cam.position.x, -room_size, room_size), wrapf(cam.position.y, -room_size, room_size))
|
||||
|
||||
map_ease.from = cam.position
|
||||
|
||||
|
||||
if map == 0 and (btn_a or btn_b) and !m and map_ease.clock == 0.0:
|
||||
win(true)
|
||||
|
||||
func set_map(arg := map):
|
||||
map = max(0, arg)
|
||||
|
|
@ -56,8 +82,6 @@ func set_map(arg := map):
|
|||
var loop = floor(map / maps.size())
|
||||
|
||||
label_node.text = (str(loop + 1) + "-" if loop > 0 else "") + str(map % maps.size())
|
||||
|
||||
|
||||
|
||||
func wrap_tiles(_map):
|
||||
var tiles = _map.get_used_cells()
|
||||
|
|
@ -69,8 +93,8 @@ func wrap_tiles(_map):
|
|||
var vec = t + (Vector2(x, y) * tile_size)
|
||||
_map.set_cell(vec.x, vec.y, 0)
|
||||
|
||||
func win():
|
||||
if candies.size() > 0: return
|
||||
func win(arg := false):
|
||||
if candies.size() > 0 and !arg: return
|
||||
|
||||
map_ease.show = true
|
||||
self.map += 1
|
||||
|
|
@ -89,7 +113,7 @@ func scene():
|
|||
cam_speed = c * 100
|
||||
delta_scale = 1.0 + (clamp(wrap_cam - 1, 0.0, 5.0) * 0.2)
|
||||
|
||||
print("wrap_cam: ", wrap_cam, " cam_speed: ", cam_speed, " delta_scale : ", delta_scale)
|
||||
#print("wrap_cam: ", wrap_cam, " cam_speed: ", cam_speed, " delta_scale : ", delta_scale)
|
||||
|
||||
randomize()
|
||||
wrap_angle = lerp(0.0, TAU, (randi() % 3) / 4.0) + (0.0 if wrap_cam < 2 else deg2rad(45.0))
|
||||
|
|
@ -112,4 +136,15 @@ func scene():
|
|||
if i.is_in_group("back"):
|
||||
i.visible = false
|
||||
|
||||
yield(get_tree(), "idle_frame")
|
||||
|
||||
if wrap_cam > 2:
|
||||
var g = get_tree().get_nodes_in_group("candy")
|
||||
for i in g:
|
||||
var d = candy_scene.instance()
|
||||
d.position = i.position
|
||||
i.get_parent().add_child(d)
|
||||
d.dir_x = -i.dir_x
|
||||
|
||||
func pause(arg := false):
|
||||
is_unpause = !arg
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
extends KinematicBody2D
|
||||
|
||||
var dir_x := 1.0
|
||||
var dir_x := 0.0
|
||||
|
||||
export var speed := 100.0
|
||||
|
||||
|
|
@ -25,17 +25,11 @@ func _ready():
|
|||
arcade.candies.append(self)
|
||||
delta_scale = arcade.delta_scale
|
||||
|
||||
move_and_collide(Vector2(0, 500))
|
||||
|
||||
if randf() > 0.5:
|
||||
dir_x = -dir_x
|
||||
if dir_x == 0.0:
|
||||
dir_x = -1.0 if randf() < 0.5 else 1.0
|
||||
|
||||
|
||||
spr_list = []
|
||||
for i in 8:
|
||||
var s = image.duplicate()
|
||||
add_child(s)
|
||||
spr_list.append(s)
|
||||
if test_move(transform, Vector2(0, 100)):
|
||||
move_and_collide(Vector2(0, 100))
|
||||
|
||||
func _exit_tree():
|
||||
arcade.candies.erase(self)
|
||||
|
|
@ -48,7 +42,7 @@ func _physics_process(delta):
|
|||
if !is_dead:
|
||||
move_and_collide(Vector2(speed * dir_x, 0.0) * delta)
|
||||
if !is_floor:
|
||||
move_and_collide(Vector2(0, 5.0))
|
||||
move_and_collide(Vector2(0, 10.0))
|
||||
|
||||
var tf = Transform2D(0.0, position + Vector2(dir_x * 20, 0.0))
|
||||
|
||||
|
|
@ -72,24 +66,6 @@ func _physics_process(delta):
|
|||
position.x = wrapf(position.x, -room_size.x, room_size.x)
|
||||
position.y = wrapf(position.y, -room_size.y, room_size.y)
|
||||
|
||||
|
||||
# mirrors
|
||||
var vec = []
|
||||
for x in [-1, 0, 1]:
|
||||
for y in [-1, 0, 1]:
|
||||
if !(x == 0 and y == 0):
|
||||
vec.append(Vector2(x, y))
|
||||
|
||||
var sg = image.global_position
|
||||
var add = Vector2(room_size.x, room_size.y) * 2.0
|
||||
|
||||
for i in spr_list.size():
|
||||
spr_list[i].scale = image.scale
|
||||
spr_list[i].rotation = image.rotation
|
||||
spr_list[i].global_position = sg + (add * vec[i])
|
||||
|
||||
|
||||
|
||||
func die():
|
||||
is_dead = true
|
||||
collision_layer = 0
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
[gd_scene load_steps=4 format=2]
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://src/class/shape/Rectangle.gd" type="Script" id=1]
|
||||
[ext_resource path="res://src/arcade/Candy.gd" type="Script" id=2]
|
||||
[ext_resource path="res://src/arcade/Wrapper.gd" type="Script" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=4]
|
||||
extents = Vector2( 30, 30 )
|
||||
|
||||
[node name="Candy" type="KinematicBody2D"]
|
||||
[node name="Candy" type="KinematicBody2D" groups=["candy"]]
|
||||
collision_layer = 2
|
||||
script = ExtResource( 2 )
|
||||
speed = 130.0
|
||||
|
|
@ -42,3 +43,7 @@ is_baked = false
|
|||
size = Vector2( 7, 12 )
|
||||
radius = Plane( -2, -1, -1, -1 )
|
||||
points = 4
|
||||
|
||||
[node name="Wrapper" type="Node2D" parent="."]
|
||||
script = ExtResource( 3 )
|
||||
image_path = NodePath("../Sprites")
|
||||
|
|
|
|||
|
|
@ -3,11 +3,9 @@ extends KinematicBody2D
|
|||
onready var area := $Area2D
|
||||
onready var image := $Sprites
|
||||
onready var image_root := $Sprites/Root
|
||||
var spr_list := []
|
||||
|
||||
var joy := Vector2.ZERO
|
||||
var joy_last := Vector2.ZERO
|
||||
var btnp_jump := false
|
||||
var btn_jump := false
|
||||
var jump_ease := EaseMover.new(0.15)
|
||||
var is_jump := false
|
||||
|
|
@ -46,12 +44,8 @@ func _ready():
|
|||
for i in get_tree().get_nodes_in_group("arcade"):
|
||||
arcade = i
|
||||
|
||||
spr_list = []
|
||||
for i in 8:
|
||||
var s = image_root.duplicate()
|
||||
add_child(s)
|
||||
spr_list.append(s)
|
||||
|
||||
if arcade.map == 0:
|
||||
is_input = false
|
||||
|
||||
image_root.scale = Vector2.ZERO
|
||||
squish_ease.to = Vector2.ONE
|
||||
|
|
@ -59,14 +53,13 @@ func _ready():
|
|||
func _physics_process(delta):
|
||||
# input
|
||||
joy_last = joy
|
||||
if is_input and !MenuPause.is_open:
|
||||
if is_input and !MenuPause.is_paused:
|
||||
joy.x = round(Input.get_axis("left", "right"))
|
||||
joy.y = round(Input.get_axis("up", "down"))
|
||||
|
||||
var j = Input.is_action_pressed("jump")
|
||||
var j = Input.is_action_pressed("jump") or Input.is_action_pressed("grab")
|
||||
if !j: is_unpause = false
|
||||
if !is_unpause:
|
||||
btnp_jump = Input.is_action_just_pressed("jump")
|
||||
btn_jump = j
|
||||
|
||||
# is floor & air clock
|
||||
|
|
@ -155,23 +148,6 @@ func _physics_process(delta):
|
|||
|
||||
# squish ease
|
||||
image_root.scale = squish_ease.move(delta)
|
||||
|
||||
|
||||
|
||||
# mirrors
|
||||
var vec = []
|
||||
for x in [-1, 0, 1]:
|
||||
for y in [-1, 0, 1]:
|
||||
if !(x == 0 and y == 0):
|
||||
vec.append(Vector2(x, y))
|
||||
|
||||
var sg = image_root.global_position
|
||||
var add = Vector2(room_size.x, room_size.y) * 2.0
|
||||
|
||||
for i in spr_list.size():
|
||||
spr_list[i].scale = image_root.global_scale
|
||||
spr_list[i].rotation = image_root.global_rotation
|
||||
spr_list[i].global_position = sg + (add * vec[i])
|
||||
|
||||
func die():
|
||||
is_dead = true
|
||||
|
|
@ -186,5 +162,4 @@ func die():
|
|||
func pause(arg := false):
|
||||
joy = Vector2.ZERO
|
||||
btn_jump = false
|
||||
btnp_jump = false
|
||||
is_unpause = !arg
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
[gd_scene load_steps=6 format=2]
|
||||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://src/class/shape/Rectangle.gd" type="Script" id=1]
|
||||
[ext_resource path="res://src/class/shape/Circle.gd" type="Script" id=2]
|
||||
[ext_resource path="res://src/arcade/Player.gd" type="Script" id=3]
|
||||
[ext_resource path="res://src/arcade/Wrapper.gd" type="Script" id=4]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=3]
|
||||
extents = Vector2( 20, 34 )
|
||||
|
|
@ -95,3 +96,7 @@ size = Vector2( 10, 30 )
|
|||
rect_offset = Vector2( 0, 20 )
|
||||
radius = Plane( -2, -2, -2, -2 )
|
||||
points = 4
|
||||
|
||||
[node name="Wrapper" type="Node2D" parent="."]
|
||||
script = ExtResource( 4 )
|
||||
image_path = NodePath("../Sprites/Root")
|
||||
|
|
|
|||
34
src/arcade/Wrapper.gd
Normal file
34
src/arcade/Wrapper.gd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
extends Node2D
|
||||
|
||||
export var image_path : NodePath = ""
|
||||
onready var image_node := get_node_or_null(image_path)
|
||||
var spr_list := []
|
||||
var room_size := Vector2(600, 600)
|
||||
var vec = []
|
||||
|
||||
func _ready():
|
||||
process_priority = 1
|
||||
|
||||
spr_list = []
|
||||
for i in 8:
|
||||
var s = image_node.duplicate()
|
||||
add_child(s)
|
||||
spr_list.append(s)
|
||||
|
||||
# mirrors
|
||||
vec = []
|
||||
for x in [-1, 0, 1]:
|
||||
for y in [-1, 0, 1]:
|
||||
if !(x == 0 and y == 0):
|
||||
vec.append(Vector2(x, y))
|
||||
|
||||
func _physics_process(delta):
|
||||
if !is_instance_valid(image_node): return
|
||||
|
||||
var sg = image_node.global_position
|
||||
var add = Vector2(room_size.x, room_size.y) * 2.0
|
||||
|
||||
for i in spr_list.size():
|
||||
spr_list[i].scale = image_node.global_scale
|
||||
spr_list[i].rotation = image_node.global_rotation
|
||||
spr_list[i].global_position = sg + (add * vec[i])
|
||||
88
src/arcade/maps/0.tscn
Normal file
88
src/arcade/maps/0.tscn
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
[gd_scene load_steps=12 format=2]
|
||||
|
||||
[ext_resource path="res://src/class/shape/Rectangle.gd" type="Script" id=1]
|
||||
[ext_resource path="res://media/image/box/box-100.png" type="Texture" id=2]
|
||||
[ext_resource path="res://src/arcade/Candy.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://src/arcade/Player.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://src/stage/SolidTileMap.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://media/font/mini-wakuwaku.otf" type="DynamicFontData" id=6]
|
||||
[ext_resource path="res://src/arcade/Wrapper.gd" type="Script" id=7]
|
||||
|
||||
[sub_resource type="OccluderPolygon2D" id=5]
|
||||
polygon = PoolVector2Array( 100, 100, 0, 100, 0, 0, 100, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
points = PoolVector2Array( 100, 100, 0, 100, 0, 0, 100, 0 )
|
||||
|
||||
[sub_resource type="TileSet" id=2]
|
||||
0/name = "rect-100.png 0"
|
||||
0/texture = ExtResource( 2 )
|
||||
0/tex_offset = Vector2( 0, 0 )
|
||||
0/modulate = Color( 0, 0, 0, 0 )
|
||||
0/region = Rect2( 0, 0, 100, 100 )
|
||||
0/tile_mode = 0
|
||||
0/occluder_offset = Vector2( 0, 0 )
|
||||
0/occluder = SubResource( 5 )
|
||||
0/navigation_offset = Vector2( 0, 0 )
|
||||
0/shape_offset = Vector2( 0, 0 )
|
||||
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
0/shape = SubResource( 1 )
|
||||
0/shape_one_way = false
|
||||
0/shape_one_way_margin = 1.0
|
||||
0/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 1 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
0/z_index = 0
|
||||
|
||||
[sub_resource type="DynamicFont" id=6]
|
||||
size = 230
|
||||
extra_spacing_bottom = -20
|
||||
font_data = ExtResource( 6 )
|
||||
|
||||
[node name="Map" type="Node2D"]
|
||||
|
||||
[node name="Back" type="Polygon2D" parent="." groups=["back"]]
|
||||
color = Color( 1, 0, 0, 0.407843 )
|
||||
polygon = PoolVector2Array( 600, 600, -600, 600, -600, -600, 600, -600 )
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
size = Vector2( 600, 600 )
|
||||
|
||||
[node name="SolidTileMap" parent="." instance=ExtResource( 5 )]
|
||||
tile_set = SubResource( 2 )
|
||||
tile_data = PoolIntArray( -327686, -1610612736, 0, -327685, -1610612736, 0, -327684, -1610612736, 0, -327683, -1610612736, 0, -327682, -1610612736, 0, -393215, -1610612736, 0, -393214, -1610612736, 0, -393213, -1610612736, 0, -393212, -1610612736, 0, -393211, -1610612736, 0, -262150, -1610612736, 0, -262149, -1610612736, 0, -262148, -1610612736, 0, -262147, -1610612736, 0, -262146, -1610612736, 0, -327679, -1610612736, 0, -327678, -1610612736, 0, -327677, -1610612736, 0, -327676, -1610612736, 0, -327675, -1610612736, 0, 196602, -1610612736, 0, 196603, -1610612736, 0, 131076, -1610612736, 0, 131077, -1610612736, 0, 262138, -1610612736, 0, 262139, -1610612736, 0, 262143, -1610612736, 0, 196608, -1610612736, 0, 196612, -1610612736, 0, 196613, -1610612736, 0, 327679, -1610612736, 0, 262144, -1610612736, 0 )
|
||||
detail = 6
|
||||
|
||||
[node name="Wrapper" type="Node2D" parent="."]
|
||||
script = ExtResource( 7 )
|
||||
image_path = NodePath("../Title")
|
||||
|
||||
[node name="Title" type="Node2D" parent="."]
|
||||
position = Vector2( -600, -400 )
|
||||
|
||||
[node name="Label" type="Label" parent="Title"]
|
||||
margin_right = 1200.0
|
||||
margin_bottom = 600.0
|
||||
custom_fonts/font = SubResource( 6 )
|
||||
text = "WRAP
|
||||
IT UP"
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="Player" parent="." groups=["start"] instance=ExtResource( 4 )]
|
||||
position = Vector2( 0, 250 )
|
||||
|
||||
[node name="Candy" parent="." instance=ExtResource( 3 )]
|
||||
position = Vector2( -450, 150 )
|
||||
|
||||
[node name="Candy3" parent="." instance=ExtResource( 3 )]
|
||||
position = Vector2( -350, 450 )
|
||||
|
||||
[node name="Candy4" parent="." instance=ExtResource( 3 )]
|
||||
position = Vector2( 200, 450 )
|
||||
|
|
@ -12,13 +12,12 @@ var music_que = []
|
|||
export var wait_range := Vector2(10, 90)
|
||||
var wait_clock := 0.0
|
||||
var wait_time := 10.0
|
||||
var music_ease := EaseMover.new(1.0)
|
||||
var music_ease := EaseMover.new(1.0, -1)
|
||||
|
||||
func _ready():
|
||||
set_refresh()
|
||||
#print(dict)
|
||||
|
||||
music_player.connect("finished", self, "music_finished")
|
||||
set_refresh()
|
||||
|
||||
randomize()
|
||||
wait_clock = 4.0
|
||||
|
||||
|
|
@ -36,20 +35,15 @@ func _physics_process(delta):
|
|||
if wait_clock <= 0:
|
||||
music_play()
|
||||
|
||||
var s = music_ease.count(delta, Shared.is_arcade)
|
||||
var s = music_ease.count(delta, !Shared.is_arcade)
|
||||
if !music_ease.is_last:
|
||||
var m = dict["music_music"]
|
||||
var a = dict["music_arcade"]
|
||||
m.volume_db = lerp(0.0, -30.0, s)
|
||||
a.volume_db = lerp(-30.0, 0.0, s)
|
||||
m.volume_db = lerp(-30.0, 0.0, s)
|
||||
|
||||
if music_ease.clock == 0.0:
|
||||
if !m.playing: m.play(m.get_playback_position())
|
||||
a.stop()
|
||||
if music_ease.is_complete:
|
||||
a.play()
|
||||
m.stop()
|
||||
|
||||
elif music_ease.last == 0.0 and !m.playing:
|
||||
m.play(m.get_playback_position())
|
||||
|
||||
func music_finished():
|
||||
if !Shared.is_arcade:
|
||||
|
|
@ -67,6 +61,10 @@ func music_play():
|
|||
music_player.play()
|
||||
|
||||
func set_refresh(arg := false):
|
||||
print("Audio.dict refresh")
|
||||
is_refresh = arg
|
||||
dict = {}
|
||||
for i in Shared.get_all_children(self):
|
||||
dict[str(get_path_to(i)).to_lower().replace("/", "_")] = i
|
||||
if i is AudioStreamPlayer or i is AudioStreamPlayer2D:
|
||||
dict[str(get_path_to(i)).to_lower().replace("/", "_")] = i
|
||||
|
||||
print("Audio.dict refresh: ", dict.keys())
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=34 format=2]
|
||||
[gd_scene load_steps=35 format=2]
|
||||
|
||||
[ext_resource path="res://src/autoload/Audio.gd" type="Script" id=1]
|
||||
[ext_resource path="res://media/audio/sfx/coin1.wav" type="AudioStream" id=2]
|
||||
|
|
@ -33,6 +33,7 @@
|
|||
[ext_resource path="res://media/audio/sfx/jump1.wav" type="AudioStream" id=31]
|
||||
[ext_resource path="res://media/audio/sfx/zap0.wav" type="AudioStream" id=32]
|
||||
[ext_resource path="res://media/audio/music/arcade2.mp3" type="AudioStream" id=33]
|
||||
[ext_resource path="res://media/audio/sfx/oneup1.wav" type="AudioStream" id=34]
|
||||
|
||||
[node name="Audio" type="Node"]
|
||||
pause_mode = 2
|
||||
|
|
@ -208,3 +209,7 @@ bus = "SFX"
|
|||
[node name="Owie" type="AudioStreamPlayer" parent="Arcade"]
|
||||
stream = ExtResource( 16 )
|
||||
bus = "SFX"
|
||||
|
||||
[node name="Boot" type="AudioStreamPlayer" parent="Arcade"]
|
||||
stream = ExtResource( 34 )
|
||||
bus = "SFX"
|
||||
|
|
|
|||
|
|
@ -13,8 +13,10 @@ var is_complete setget , get_is_complete
|
|||
var is_less setget , get_is_less
|
||||
var is_last setget , get_is_last
|
||||
|
||||
func _init(_time := time, _from := from, _to := to, _node := node):
|
||||
func _init(_time := time, _clock := clock, _from := from, _to := to, _node := node):
|
||||
time = _time
|
||||
clock = _time if _clock < 0.0 else _clock
|
||||
|
||||
from = _from
|
||||
to = _to
|
||||
node = _node
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue