surround sound

This commit is contained in:
Page Asgardius 2024-07-14 14:55:40 -07:00
parent 43323bb086
commit 7930630475
26 changed files with 354 additions and 20 deletions

View file

@ -3,6 +3,7 @@ var housefreedom
var welcometext = "" var welcometext = ""
var playername var playername
func _ready(): func _ready():
_audiotest()
if OS.get_data_dir().begins_with("/home"): if OS.get_data_dir().begins_with("/home"):
playername = OS.get_data_dir().rsplit("/", true, 7)[2] playername = OS.get_data_dir().rsplit("/", true, 7)[2]
else: else:
@ -24,6 +25,14 @@ func _ready():
welcometext = welcometext+"\nYour overlay already has a FPS counter, built-in one is disabled" welcometext = welcometext+"\nYour overlay already has a FPS counter, built-in one is disabled"
if OS.get_environment("WAYLAND_DISPLAY").length() > 0: if OS.get_environment("WAYLAND_DISPLAY").length() > 0:
welcometext = welcometext+"\nKung Fury was Willys first victim, Wrights wife his second one, and a robot avoided a third one" welcometext = welcometext+"\nKung Fury was Willys first victim, Wrights wife his second one, and a robot avoided a third one"
if Global.spkmode == 0:
welcometext = welcometext+"\nExperience Presented in Stereo"
elif Global.spkmode == 1:
welcometext = welcometext+"\nExperience Presented in 3.1 Surround (WIP)"
elif Global.spkmode == 2:
welcometext = welcometext+"\nExperience Presented in 5.1 Surround (WIP)"
elif Global.spkmode == 3:
welcometext = welcometext+"\nExperience Presented in 7.1 Surround (WIP)"
welcometext = welcometext+"\nbooting virtual machine" welcometext = welcometext+"\nbooting virtual machine"
#This can be used to detect background process, may be useful later #This can be used to detect background process, may be useful later
#var output = [] #var output = []
@ -44,3 +53,6 @@ func _sk():
func _input(event): func _input(event):
if Global.sk && (Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) || Input.is_joy_button_pressed(0,JOY_BUTTON_Y) || Input.is_joy_button_pressed(0,JOY_BUTTON_A) || Input.is_joy_button_pressed(0,JOY_BUTTON_B) || Input.is_joy_button_pressed(0,JOY_BUTTON_BACK) || Input.is_joy_button_pressed(0,JOY_BUTTON_START) || Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) || Input.is_joy_button_pressed(0,JOY_BUTTON_LEFT_SHOULDER) || Input.is_key_pressed(KEY_ESCAPE) || Input.is_key_pressed(KEY_ENTER)): if Global.sk && (Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) || Input.is_joy_button_pressed(0,JOY_BUTTON_Y) || Input.is_joy_button_pressed(0,JOY_BUTTON_A) || Input.is_joy_button_pressed(0,JOY_BUTTON_B) || Input.is_joy_button_pressed(0,JOY_BUTTON_BACK) || Input.is_joy_button_pressed(0,JOY_BUTTON_START) || Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) || Input.is_joy_button_pressed(0,JOY_BUTTON_LEFT_SHOULDER) || Input.is_key_pressed(KEY_ESCAPE) || Input.is_key_pressed(KEY_ENTER)):
get_tree().quit() get_tree().quit()
func _audiotest():
Global.spkmode = AudioServer.get_speaker_mode()

View file

@ -8,7 +8,9 @@ func _ready():
add_child(rmusic) add_child(rmusic)
var titlemusic = load(Global.musictracks[1]) var titlemusic = load(Global.musictracks[1])
rmusic.stream = titlemusic rmusic.stream = titlemusic
rmusic.mix_target = 1
rmusic.play(0) rmusic.play(0)
rmusic.bus = &"Music"
wait = Time.get_ticks_msec() wait = Time.get_ticks_msec()
#pass # Replace with function body. #pass # Replace with function body.

15
default_bus_layout.tres Normal file
View file

@ -0,0 +1,15 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://bqawb6yqspxw6"]
[resource]
bus/1/name = &"Music"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0
bus/1/send = &"Master"
bus/2/name = &"SFX1"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Master"

View file

@ -2,6 +2,7 @@ extends Node
var live = 0 var live = 0
var time var time
var spkmode
var origmpos var origmpos
var mousepos var mousepos
var timelimit = 15000 var timelimit = 15000
@ -25,7 +26,7 @@ var cdialog = []
const places = [[[[null, null, false], [null, null, false]], [["res://levels/Testrooms/bullethell.tscn", 11, true], ["res://levels/Testrooms/lilytest.tscn", 6, false]], [["res://levels/Testrooms/dialogtest.tscn", 19, false], ["res://levels/Testrooms/testspawn.tscn", 2 ,false]]], [null, null, null, null, null, null, null, null, null, null, null, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/L20.tscn", 3, true]]]] const places = [[[[null, null, false], [null, null, false]], [["res://levels/Testrooms/bullethell.tscn", 11, true], ["res://levels/Testrooms/lilytest.tscn", 6, false]], [["res://levels/Testrooms/dialogtest.tscn", 19, false], ["res://levels/Testrooms/testspawn.tscn", 2 ,false]]], [null, null, null, null, null, null, null, null, null, null, null, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/L20.tscn", 3, true]]]]
var cplace = [0,2,1] var cplace = [0,2,1]
var dplace = [null, null, null] var dplace = [null, null, null]
const pbbullets = ["res://sprites/common/bullet/fireball.tscn", "res://sprites/common/bullet/X11.tscn", null, "res://sprites/common/bullet/arrow.tscn", null, null, null, null, null, "res://sprites/common/bullet/snowflake.tscn"] const pbbullets = ["res://sprites/common/bullet/fireball.tscn", "res://sprites/common/bullet/sword.tscn", null, "res://sprites/common/bullet/arrow.tscn", null, null, null, null, null, "res://sprites/common/bullet/snowflake.tscn"]
const pcspecialities = [1, 2, null, 3, null, null, null, null, null, 0] const pcspecialities = [1, 2, null, 3, null, null, null, null, null, 0]
const pchars = [["res://sprites/common/midori/sprite.png"], ["res://sprites/common/tuna/sprite.png"], [null], ["res://sprites/common/kimberly/sprite.png"], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/sprite.png"]] const pchars = [["res://sprites/common/midori/sprite.png"], ["res://sprites/common/tuna/sprite.png"], [null], ["res://sprites/common/kimberly/sprite.png"], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/sprite.png"]]
const npchars = ["res://sprites/common/midori/sprite.png", null, null, null, null, null, null, null, null, "res://sprites/common/natasha/sprite.png"] const npchars = ["res://sprites/common/midori/sprite.png", null, null, null, null, null, null, null, null, "res://sprites/common/natasha/sprite.png"]

View file

@ -20,6 +20,7 @@ func _ready():
get_tree().root.add_child.call_deferred(bhud) get_tree().root.add_child.call_deferred(bhud)
#get_tree().root.add_child.call_deferred(player) #get_tree().root.add_child.call_deferred(player)
bgsound.stream = music bgsound.stream = music
bgsound.mix_target = 1
bgsound.play(0) bgsound.play(0)

View file

@ -1,29 +1,45 @@
extends Control extends Control
var bgsound := AudioStreamPlayer.new() var bgsound := AudioStreamPlayer.new()
var fl := AudioStreamPlayer2D.new() var fl
var fr := AudioStreamPlayer2D.new() var fr
var rl
var rr
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
fl = $Front_Left
fr = $Front_Right
rl = $Rear_Left
rr = $Rear_Right
add_child(bgsound) add_child(bgsound)
add_child(fl) #add_child(fl)
add_child(fr) #add_child(fr)
bgsound.stream = load(Global.musictracks[21]) bgsound.stream = load(Global.musictracks[21])
fl.stream = load("res://sfx/Front_Left.wav") bgsound.mix_target = 1
fr.stream = load("res://sfx/Front_Right.wav") bgsound.bus = &"Music"
#fl.mix_target = 1
#fr.mix_target = 1
#fl.stream = load("res://sfx/Front_Left.wav")
#fr.stream = load("res://sfx/Front_Right.wav")
bgsound.set_volume_db(-10) bgsound.set_volume_db(-10)
fl.set_volume_db(10) #fl.set_volume_db(10)
fr.set_volume_db(10) #fr.set_volume_db(10)
bgsound.play(0) bgsound.play(0)
func _input(event): func _input(event):
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
get_tree().change_scene_to_file("res://levels/ui/soundtest.tscn") get_tree().change_scene_to_file("res://levels/ui/soundtest.tscn")
elif Input.is_action_just_pressed("ui_left"): elif Input.is_action_pressed("ui_left") && Input.is_action_pressed("ui_up"):
fl.play(0) fl.play(0)
elif Input.is_action_just_pressed("ui_right"): elif Input.is_action_pressed("ui_right") && Input.is_action_pressed("ui_up"):
fr.play(0) fr.play(0)
elif Input.is_action_pressed("ui_left") && Input.is_action_pressed("ui_down"):
rl.play(0)
elif Input.is_action_pressed("ui_right") && Input.is_action_pressed("ui_down"):
rr.play(0)
#if event is InputEventMouseMotion:
# bgsound.position = Vector3(event.position.x-640, 0, event.position.y-480)
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
pass pass

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=7 format=3 uid="uid://bivi1ncwnunrp"] [gd_scene load_steps=11 format=3 uid="uid://bivi1ncwnunrp"]
[ext_resource type="Script" path="res://levels/ui/alsatest.gd" id="1_hqlyt"] [ext_resource type="Script" path="res://levels/ui/alsatest.gd" id="1_hqlyt"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_ribwb"] [ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_ribwb"]
@ -6,6 +6,10 @@
[ext_resource type="Script" path="res://Game name.gd" id="3_iuwjb"] [ext_resource type="Script" path="res://Game name.gd" id="3_iuwjb"]
[ext_resource type="Script" path="res://start.gd" id="4_cp7hy"] [ext_resource type="Script" path="res://start.gd" id="4_cp7hy"]
[ext_resource type="Script" path="res://exit.gd" id="5_aogyx"] [ext_resource type="Script" path="res://exit.gd" id="5_aogyx"]
[ext_resource type="AudioStream" uid="uid://blllkdxk3sj0g" path="res://sfx/Front_Left.wav" id="7_msbfk"]
[ext_resource type="AudioStream" uid="uid://dpn17gurdra0l" path="res://sfx/Front_Right.wav" id="8_tqilb"]
[ext_resource type="AudioStream" uid="uid://by6uoipfuc23n" path="res://sfx/Rear_Left.wav" id="9_skj4n"]
[ext_resource type="AudioStream" uid="uid://w1c1uvatrkbn" path="res://sfx/Rear_Right.wav" id="10_v8t5w"]
[node name="Alsatest" type="Control"] [node name="Alsatest" type="Control"]
layout_mode = 3 layout_mode = 3
@ -58,3 +62,37 @@ script = ExtResource("5_aogyx")
[node name="Bottomhud" parent="." instance=ExtResource("3_2tyrv")] [node name="Bottomhud" parent="." instance=ExtResource("3_2tyrv")]
layout_mode = 1 layout_mode = 1
[node name="Front_Left" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0, -5)
stream = ExtResource("7_msbfk")
volume_db = 80.0
max_distance = 30.0
panning_strength = 50.0
bus = &"SFX1"
[node name="Front_Right" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 0, -5)
stream = ExtResource("8_tqilb")
volume_db = 80.0
max_distance = 30.0
panning_strength = 50.0
bus = &"SFX1"
[node name="Rear_Left" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0, 5)
stream = ExtResource("9_skj4n")
volume_db = 80.0
max_distance = 30.0
panning_strength = 50.0
bus = &"SFX1"
[node name="Rear_Right" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 0, -5)
stream = ExtResource("10_v8t5w")
volume_db = 80.0
max_distance = 30.0
panning_strength = 50.0
bus = &"SFX1"
[node name="Camera3D" type="Camera3D" parent="."]

View file

@ -10,10 +10,12 @@ var playstart = false
var playindex = 0 var playindex = 0
func _ready(): func _ready():
bgsound.mix_target = 1
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(bgsound) add_child(bgsound)
bgsound.stream = song1 bgsound.stream = song1
bgsound.play(0) bgsound.play(0)
bgsound.bus = &"Music"
#pass # Replace with function body. #pass # Replace with function body.

View file

@ -255,13 +255,16 @@ Used at every image
Godot Engine development Godot Engine development
Project Founders Project Founders
Juan Linietsky (reduz) Juan Linietsky (reduz)
Ariel Manzur (punto-) Ariel Manzur (punto-)
Lead Developer Lead Developer
Juan Linietsky (reduz) Juan Linietsky (reduz)
Project Manager Project Manager
Rémi Verschelde (akien-mga) Rémi Verschelde (akien-mga)
Developers Developers
@ -270,10 +273,13 @@ Aaron Franke (aaronfranke)
Aaron Record (LightningAA) Aaron Record (LightningAA)
Adam Scott (adamscott) Adam Scott (adamscott)
Alexander Holland (AlexHolly) Alexander Holland (AlexHolly)
Alex Drozd (brno32)
Alexey Khoroshavin (allkhor) Alexey Khoroshavin (allkhor)
Alfred Reinold Baudisch (alfredbaudisch) Alfred Reinold Baudisch (alfredbaudisch)
Alistair Leslie-Hughes (alesliehughes)
Alket Rexhepi (alketii) Alket Rexhepi (alketii)
Andrea Catania (AndreaCatania) Andrea Catania (AndreaCatania)
Andreia Gaita (shana)
Andrii Doroshenko (Xrayez) Andrii Doroshenko (Xrayez)
Andy Maloney (asmaloney) Andy Maloney (asmaloney)
Andy Moss (MillionOstrich) Andy Moss (MillionOstrich)
@ -284,7 +290,9 @@ Anton Yabchinskiy (a12n)
Anutrix Anutrix
Aren Villanueva (kurikaesu) Aren Villanueva (kurikaesu)
Ariel Manzur (punto-) Ariel Manzur (punto-)
Arman Elgudzhyan (puchik)
AThousandShips AThousandShips
aXu-AP
Bartłomiej T. Listwon (Listwon) Bartłomiej T. Listwon (Listwon)
Bastiaan Olij (BastiaanOlij) Bastiaan Olij (BastiaanOlij)
Ben Brookshire (sheepandshepherd) Ben Brookshire (sheepandshepherd)
@ -292,6 +300,7 @@ Benjamin Larsson (Nallebeorn)
Bernhard Liebl (poke1024) Bernhard Liebl (poke1024)
Bhuvan Vemula (Bhu1-V) Bhuvan Vemula (Bhu1-V)
bitsawer bitsawer
BlueCube3310
Błażej Szczygieł (zaps166) Błażej Szczygieł (zaps166)
Bojidar Marinov (bojidar-bg) Bojidar Marinov (bojidar-bg)
Brian Semrau (briansemrau) Brian Semrau (briansemrau)
@ -301,6 +310,7 @@ Camille Mohr-Daurat (pouleyKetchoupp)
Caner Demirer (cdemirer) Caner Demirer (cdemirer)
Carl Olsson (not-surt) Carl Olsson (not-surt)
Carter Anderson (cart) Carter Anderson (cart)
ChibiDenDen
Chris Bradfield (cbscribe) Chris Bradfield (cbscribe)
Clay John (clayjohn) Clay John (clayjohn)
ConteZero ConteZero
@ -310,6 +320,7 @@ Daniel Rakos (aqnuep)
Daniel Zilberleyb (dzil123) Daniel Zilberleyb (dzil123)
Danil Alexeev (dalexeev) Danil Alexeev (dalexeev)
dankan1890 dankan1890
Darío Banini (DarioSamo)
David Cambré (Gallilus) David Cambré (Gallilus)
David Sichma (DavidSichma) David Sichma (DavidSichma)
David Snopek (dsnopek) David Snopek (dsnopek)
@ -334,6 +345,7 @@ Fabio Alessandrelli (Faless)
Fabrice Cipolla (fabriceci) Fabrice Cipolla (fabriceci)
Ferenc Arn (tagcup) Ferenc Arn (tagcup)
FireForge (fire-forge) FireForge (fire-forge)
Florian Kothmeier (Dragoncraft89)
follower follower
foxydevloper foxydevloper
François Belair (Razoric480) François Belair (Razoric480)
@ -352,6 +364,7 @@ HP van Braam (hpvb)
Hendrik Brucker (Geometror) Hendrik Brucker (Geometror)
hilfazer hilfazer
Hiroshi Ogawa (hi-ogawa) Hiroshi Ogawa (hi-ogawa)
HolonProduction
homer666 homer666
hoontee hoontee
Hugo Locurcio (Calinou) Hugo Locurcio (Calinou)
@ -364,12 +377,14 @@ Indah Sylvia (ISylvox)
J08nY J08nY
Jake Young (Duroxxigar) Jake Young (Duroxxigar)
Jakub Grzesik (kubecz3k) Jakub Grzesik (kubecz3k)
Jakub Marcowski (Chubercik)
James Buck (jbuck3) James Buck (jbuck3)
Jan Haller (Bromeon) Jan Haller (Bromeon)
Jason Knight (jasonwinterpixel) Jason Knight (jasonwinterpixel)
Jean-Michel Bernard (jmb462) Jean-Michel Bernard (jmb462)
Jérôme Gully (Nutriz) Jérôme Gully (Nutriz)
Jia Jun Chai (SkyLucilfer) Jia Jun Chai (SkyLucilfer)
jitspoe
Joan Fons Sanchez (JFonS) Joan Fons Sanchez (JFonS)
Johan Manuel (29jm) Johan Manuel (29jm)
Johannes Witt (HaSa1002) Johannes Witt (HaSa1002)
@ -394,6 +409,7 @@ Liz Haas (27thLiz)
Lucien Menassol (Kanabenki) Lucien Menassol (Kanabenki)
Lyuma Lyuma
Maganty Rushyendra (mrushyendra) Maganty Rushyendra (mrushyendra)
Malcolm Nixon (Malcolmnixon)
Manuele Finocchiaro (m4nu3lf) Manuele Finocchiaro (m4nu3lf)
Marcel Admiraal (madmiraal) Marcel Admiraal (madmiraal)
Marcelo Fernandez (marcelofg55) Marcelo Fernandez (marcelofg55)
@ -413,6 +429,7 @@ Martin Sjursen (binbitten)
marynate marynate
Masoud BH (masoudbh3) Masoud BH (masoudbh3)
Mateo Kuruk Miccino (kuruk-mm) Mateo Kuruk Miccino (kuruk-mm)
Matias N. Goldberg (darksylinc)
Matthew (skyace65) Matthew (skyace65)
Matthias Hölzl (hoelzl) Matthias Hölzl (hoelzl)
Max Hilbrunner (mhilbrunner) Max Hilbrunner (mhilbrunner)
@ -425,10 +442,12 @@ MichiRecRoom (LikeLakers2)
Micky (Mickeon) Micky (Mickeon)
Mikael Hermansson (mihe) Mikael Hermansson (mihe)
MinusKube MinusKube
MJacred
Morris \"Tabor\" Arroad (mortarroad) Morris \"Tabor\" Arroad (mortarroad)
mrezai mrezai
Muhammad Huri (CakHuri) Muhammad Huri (CakHuri)
muiroc muiroc
myaaaaaaaaa
Nathan Franke (nathanfranke) Nathan Franke (nathanfranke)
Nathan Lovato (NathanLovato) Nathan Lovato (NathanLovato)
Nathan Warden (NathanWarden) Nathan Warden (NathanWarden)
@ -442,6 +461,9 @@ ocean (they/them) (anvilfolk)
Omar El Sheikh (The-O-King) Omar El Sheikh (The-O-King)
Ovnuniarchos Ovnuniarchos
Pascal Richter (ShyRed) Pascal Richter (ShyRed)
passivestar
Patrick Dawson (pkdawson)
Patrick Exner (FlameLizard)
Patrick (firefly2442) Patrick (firefly2442)
Paul Batty (Paulb23) Paul Batty (Paulb23)
Paul Joannon (paulloz) Paul Joannon (paulloz)
@ -455,6 +477,7 @@ Pieter-Jan Briers (PJB3005)
Poommetee Ketson (Noshyaar) Poommetee Ketson (Noshyaar)
Przemysław Gołąb (n-pigeon) Przemysław Gołąb (n-pigeon)
Rafael M. G. (rafallus) Rafael M. G. (rafallus)
Raffaele Picca (RPicster)
Rafał Mikrut (qarmin) Rafał Mikrut (qarmin)
Ralf Hölzemer (rollenrolm) Ralf Hölzemer (rollenrolm)
Ramesh Ravone (RameshRavone) Ramesh Ravone (RameshRavone)
@ -469,6 +492,7 @@ Ricardo Buring (rburing)
Ricardo Subtil (Ev1lbl0w) Ricardo Subtil (Ev1lbl0w)
Riteo Siuga (Riteo) Riteo Siuga (Riteo)
Roberto F. Arroyo (robfram) Roberto F. Arroyo (robfram)
Robert Yevdokimov (ryevdokimov)
Robin Hübner (profan) Robin Hübner (profan)
romulox-x romulox-x
Rune Smith (rune-scape) Rune Smith (rune-scape)
@ -477,6 +501,7 @@ Ryan Roden-Corrent (rrcore)
Saniko (sanikoyes) Saniko (sanikoyes)
santouits santouits
SaracenOne SaracenOne
Septian Ganendra S. K. (sepTN)
Sergey Minakov (naithar) Sergey Minakov (naithar)
sersoong sersoong
Shiqing (kawa-yoiko) Shiqing (kawa-yoiko)
@ -484,10 +509,14 @@ Silc 'Tokage' Renew (TokageItLab)
Simon Wenner (swenner) Simon Wenner (swenner)
smix8 smix8
snailrhymer snailrhymer
Sofox (TheSofox)
Stanislav Labzyuk (DarkMessiah)
Stijn Hinlopen (hinlopen) Stijn Hinlopen (hinlopen)
stmSi
Swarnim Arun (minraws) Swarnim Arun (minraws)
TC (floppyhammer) TC (floppyhammer)
TechnoPorg TechnoPorg
Thaddeus Crews (Repiteo)
Thakee Nathees (ThakeeNathees) Thakee Nathees (ThakeeNathees)
thebestnom thebestnom
Theo Hallenius (TheoXD) Theo Hallenius (TheoXD)
@ -507,13 +536,17 @@ William Deurwaarder (williamd67)
Will Nations (willnationsdev) Will Nations (willnationsdev)
Wilson E. Alvarez (Rubonnek) Wilson E. Alvarez (Rubonnek)
Xavier Cho (mysticfall) Xavier Cho (mysticfall)
Yaohua Xiong (xiongyaohua)
yg2f (SuperUserNameMan) yg2f (SuperUserNameMan)
Yordan Dolchinkov (Jordyfel)
Yuri Rubinsky (Chaosus) Yuri Rubinsky (Chaosus)
Yuri Sizov (YuriSizov) Yuri Sizov (YuriSizov)
Zae Chao (zaevi) Zae Chao (zaevi)
Zak Stam (zaksnet) Zak Stam (zaksnet)
Zher Huei Lee (leezh) Zher Huei Lee (leezh)
Zi Ye (MajorMcDoom)
ZuBsPaCe ZuBsPaCe
谢天 (jsjtxietian)
风青山 (Rindbee) 风青山 (Rindbee)
Asgardius Virtualx Project contributors Asgardius Virtualx Project contributors
@ -592,15 +625,12 @@ Kawaielli
For helping with my best character: For helping with my best character:
Kimberly Arch Kimberly Arch
HoYoVerse HoYoVerse Staff
For laughing at me and let me know that i need my own Genshin Killer For those great characters
Paul Klee Paul Klee
For inspiring my own art For inspiring my own art
My father
For let me know that humanity is awful
??? (Kuro Games Staff) ??? (Kuro Games Staff)
For creating Yinlin as a tribute to my best character: Kimberly arch For creating Yinlin as a tribute to my best character: Kimberly arch

View file

@ -41,6 +41,10 @@ func _ready():
get_tree().root.add_child.call_deferred(thud) get_tree().root.add_child.call_deferred(thud)
#get_tree().root.add_child.call_deferred(player) #get_tree().root.add_child.call_deferred(player)
bgsound.stream = music bgsound.stream = music
bgsound.bus = &"Music"
bgsound.mix_target = 1
sfx1.mix_target = 1
sfx1.bus = &"SFX1"
if !Global.isboss: if !Global.isboss:
bgsound.play(0) bgsound.play(0)

View file

@ -6,6 +6,8 @@ var infobox
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(player) add_child(player)
player.mix_target = 1
player.bus = &"Music"
$"BoxContainer/VBoxContainer/Title Screen".grab_focus() $"BoxContainer/VBoxContainer/Title Screen".grab_focus()
infobox = $Info infobox = $Info

View file

@ -5,6 +5,8 @@ var player := AudioStreamPlayer.new()
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(player) add_child(player)
player.mix_target = 1
player.bus = &"SFX1"
$"BoxContainer/VBoxContainer/Game Over".grab_focus() $"BoxContainer/VBoxContainer/Game Over".grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.

View file

@ -8,8 +8,8 @@ const savegame = preload("res://save.gd")
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
#OS.get_data_dir().rsplit("/", true, 7)[2] #OS.get_data_dir().rsplit("/", true, 7)[2]
loadgame.new() #loadgame.new()
print(OS.get_processor_name()) #print(OS.get_processor_name())
#pass # Replace with function body. #pass # Replace with function body.
#add_child(title) #add_child(title)

View file

@ -15,6 +15,10 @@ run/main_scene="res://main.tscn"
config/features=PackedStringArray("4.3", "GL Compatibility") config/features=PackedStringArray("4.3", "GL Compatibility")
config/icon="res://icon.png" config/icon="res://icon.png"
[audio]
buses/default_bus_layout=""
[autoload] [autoload]
Global="*res://global.gd" Global="*res://global.gd"

Binary file not shown.

Binary file not shown.

BIN
sfx/Rear_Left.wav Normal file

Binary file not shown.

24
sfx/Rear_Left.wav.import Normal file
View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://by6uoipfuc23n"
path="res://.godot/imported/Rear_Left.wav-1f0457bb3c48ae4a849c884234a95531.sample"
[deps]
source_file="res://sfx/Rear_Left.wav"
dest_files=["res://.godot/imported/Rear_Left.wav-1f0457bb3c48ae4a849c884234a95531.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
sfx/Rear_Right.wav Normal file

Binary file not shown.

24
sfx/Rear_Right.wav.import Normal file
View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://w1c1uvatrkbn"
path="res://.godot/imported/Rear_Right.wav-49be52ab60b1f1986754de400fb0756b.sample"
[deps]
source_file="res://sfx/Rear_Right.wav"
dest_files=["res://.godot/imported/Rear_Right.wav-49be52ab60b1f1986754de400fb0756b.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View file

@ -0,0 +1,93 @@
extends Area2D
var velocity: Vector2 = Vector2()
var direction
var speciality
var btype
var attack
var crit
var angular_speed = 5*PI
var origangle
# Called when the node enters the scene tree for the first time.
func _ready():
if direction == null:
origangle = velocity.angle()
else:
origangle = direction.angle()
rotation = origangle
if is_in_group("players"):
speciality = Global.pcspecialities[Global.dparty[Global.dcpchar][0]]
add_to_group(btype)
#pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _physics_process(delta):
rotation -= angular_speed * delta
print(rotation)
if rotation+deg_to_rad(180) < origangle:
queue_free()
func _on_body_entered(body):
if !body.is_in_group(btype) && Global.live == 1:
if body.is_in_group("players") && Global.dificulty != 1:
if body.weakness == speciality:
print("weakness")
#Input.start_joy_vibration(0,0,1,3)
if Global.debug:
if Global.dstats[Global.dparty[Global.dcpchar][0]][0] > (attack * crit):
Global.dstats[Global.dparty[Global.dcpchar][0]][0] -= attack * crit
else:
Global.dstats[Global.dparty[Global.dcpchar][0]][0] = 0
else:
if Global.cstats[Global.party[Global.cpchar][0]][0] > (attack * crit):
Global.cstats[Global.party[Global.cpchar][0]][0] -= attack * crit
else:
Global.cstats[Global.party[Global.cpchar][0]][0] = 0
else:
#Input.start_joy_vibration(0,1,0,2)
if Global.debug:
if Global.dstats[Global.dparty[Global.dcpchar][0]][0] > attack:
Global.dstats[Global.dparty[Global.dcpchar][0]][0] -= attack
else:
Global.dstats[Global.dparty[Global.dcpchar][0]][0] = 0
else:
if Global.cstats[Global.party[Global.cpchar][0]][0] > attack:
Global.cstats[Global.party[Global.cpchar][0]][0] -= attack
else:
Global.cstats[Global.party[Global.cpchar][0]][0] = 0
elif body.is_in_group("boss") && Global.dificulty != 1:
if body.weakness == speciality:
print("weakness")
if Global.cboss[1] > (attack * crit):
Global.cboss[1] -= attack * crit
else:
Global.cboss[1] = 0
else:
if Global.cboss[1] > (attack):
Global.cboss[1] -= attack
else:
Global.cboss[1] = 0
elif body.is_in_group("enemies") && Global.dificulty != 1:
if body.weakness == speciality:
print("weakness")
#if body.is_in_group("players"):
# Global.live = 2
#elif body.is_in_group("enemies"):
# Global.live = 3
#elif body.is_in_group("boss"):
# Global.live = 3
# queue_free()
func _on_area_entered(area):
if !area.is_in_group(btype):
queue_free()
#pass # Replace with function body.
func _on_timer_timeout():
queue_free()

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ca17ddf0kokpv"
path="res://.godot/imported/sword.png-b74bc94f384d21eae7c7d6c961dab98b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/common/bullet/sword.png"
dest_files=["res://.godot/imported/sword.png-b74bc94f384d21eae7c7d6c961dab98b.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

View file

@ -0,0 +1,28 @@
[gd_scene load_steps=4 format=3 uid="uid://bex0xeqbq5uci"]
[ext_resource type="Script" path="res://sprites/common/bullet/sword.gd" id="1_7tric"]
[ext_resource type="Texture2D" uid="uid://ca17ddf0kokpv" path="res://sprites/common/bullet/sword.png" id="2_pgywo"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_g125y"]
size = Vector2(128, 28)
[node name="Sword" type="Area2D"]
script = ExtResource("1_7tric")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(0, 64)
rotation = 1.5708
texture = ExtResource("2_pgywo")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 64)
rotation = 1.5708
shape = SubResource("RectangleShape2D_g125y")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
position = Vector2(0, 64)
rotation = 1.5708
scale = Vector2(6.4, 1.4)
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View file

@ -82,7 +82,7 @@ SONG21_INFO;MrGamer\nHostlov\nA song made to calibrate your sound system while p
SONG22_LABEL;Elysium Fields;Campos Elíseos;エリジウム フィールド SONG22_LABEL;Elysium Fields;Campos Elíseos;エリジウム フィールド
SONG22_INFO;4mat\nEternity\nA song about eternity and immutability;4mat\nEternity\nUna canción sobre la eternidad y la inmutabilidad;4mat\nEternity\n永遠と不変性についての歌 SONG22_INFO;4mat\nEternity\nA song about eternity and immutability;4mat\nEternity\nUna canción sobre la eternidad y la inmutabilidad;4mat\nEternity\n永遠と不変性についての歌
ALSA_TEST_MENU;ALSA Audio Calibration;Calibración de Audio ALSA;ALSA オーディオキャリブレーション ALSA_TEST_MENU;ALSA Audio Calibration;Calibración de Audio ALSA;ALSA オーディオキャリブレーション
ALSA_TEST_SPK;Use Left and Right to test speakers;Utilice izquierda y derecha para probar los altavoces;左と右を使ってスピーカーをテストする ALSA_TEST_SPK;Use directional corners to test speakers;Utilice las esquinas direccionales para probar los altavoces;指向性コーナーを使用してスピーカーをテストする
DIALOG_TEST_0;What is this place?;¿Qué es este lugar?;この場所は何ですか? DIALOG_TEST_0;What is this place?;¿Qué es este lugar?;この場所は何ですか?
DIALOG_TEST_1;I'm here;Estoy aquí;私はここにいます DIALOG_TEST_1;I'm here;Estoy aquí;私はここにいます
DIALOG_TEST_2;I got you, cheap copy;Te atrapé, copia barata;手に入れたよ、安物コピー DIALOG_TEST_2;I got you, cheap copy;Te atrapé, copia barata;手に入れたよ、安物コピー

1 en es ja
82 SONG22_LABEL Elysium Fields Campos Elíseos エリジウム フィールド
83 SONG22_INFO 4mat\nEternity\nA song about eternity and immutability 4mat\nEternity\nUna canción sobre la eternidad y la inmutabilidad 4mat\nEternity\n永遠と不変性についての歌
84 ALSA_TEST_MENU ALSA Audio Calibration Calibración de Audio ALSA ALSA オーディオキャリブレーション
85 ALSA_TEST_SPK Use Left and Right to test speakers Use directional corners to test speakers Utilice izquierda y derecha para probar los altavoces Utilice las esquinas direccionales para probar los altavoces 左と右を使ってスピーカーをテストする 指向性コーナーを使用してスピーカーをテストする
86 DIALOG_TEST_0 What is this place? ¿Qué es este lugar? この場所は何ですか?
87 DIALOG_TEST_1 I'm here Estoy aquí 私はここにいます
88 DIALOG_TEST_2 I got you, cheap copy Te atrapé, copia barata 手に入れたよ、安物コピー

View file

@ -15,7 +15,9 @@ func _ready():
add_child(bgsound) add_child(bgsound)
var titlemusic = load(Global.musictracks[0]) var titlemusic = load(Global.musictracks[0])
bgsound.stream = titlemusic bgsound.stream = titlemusic
bgsound.mix_target = 1
bgsound.play(0) bgsound.play(0)
bgsound.bus = &"Music"
wait = Time.get_ticks_msec() wait = Time.get_ticks_msec()
#pass # Replace with function body. #pass # Replace with function body.