diff --git a/.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f5.md5 b/.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f5.md5 index 760d219..1db66d6 100644 --- a/.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f5.md5 +++ b/.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f5.md5 @@ -1,3 +1,3 @@ source_md5="ab00363c225e4ec8a2f31bd0f5f70ace" -dest_md5="469fba5f4cafbeec5ae682d65078eb22" +dest_md5="1acb682aebab0335fd64e4543dbc03e2" diff --git a/.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f5.oggstr b/.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f5.oggstr index 51eebd0..649c05d 100644 Binary files a/.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f5.oggstr and b/.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f5.oggstr differ diff --git a/.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d5.md5 b/.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d5.md5 index 91e8852..cfcdb4d 100644 --- a/.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d5.md5 +++ b/.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d5.md5 @@ -1,3 +1,3 @@ source_md5="9f49a4664c1ecc23ef3652e8200d352c" -dest_md5="a2dd4d12f95d20c80c5dfed9998f0d90" +dest_md5="8e10226a897acf0caaddac47b97ad6a0" diff --git a/.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d5.oggstr b/.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d5.oggstr index 05cec79..cbf4ed8 100644 Binary files a/.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d5.oggstr and b/.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d5.oggstr differ diff --git a/.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29.md5 b/.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29.md5 index b005dd1..17aa63c 100644 --- a/.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29.md5 +++ b/.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29.md5 @@ -1,3 +1,3 @@ source_md5="57464395994948e6540b26760ec39a75" -dest_md5="0f2618b38edb3ad74bfe0e41e8a2fdb3" +dest_md5="faa310928bf470163626b42ccae1ed65" diff --git a/.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29.oggstr b/.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29.oggstr index 0bdc5df..1c5be4a 100644 Binary files a/.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29.oggstr and b/.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29.oggstr differ diff --git a/.import/scavengers_die1.ogg-24bd84d81b645b97e4b9d4701822d67e.md5 b/.import/scavengers_die1.ogg-24bd84d81b645b97e4b9d4701822d67e.md5 new file mode 100644 index 0000000..ee4ebf2 --- /dev/null +++ b/.import/scavengers_die1.ogg-24bd84d81b645b97e4b9d4701822d67e.md5 @@ -0,0 +1,3 @@ +source_md5="19e8c9704133435c8fd3152e58e3b778" +dest_md5="7eec72fe5b26e616a8aa3f94bc187def" + diff --git a/.import/scavengers_die1.ogg-24bd84d81b645b97e4b9d4701822d67e.oggstr b/.import/scavengers_die1.ogg-24bd84d81b645b97e4b9d4701822d67e.oggstr new file mode 100644 index 0000000..ec1f633 Binary files /dev/null and b/.import/scavengers_die1.ogg-24bd84d81b645b97e4b9d4701822d67e.oggstr differ diff --git a/.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a8b.md5 b/.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a8b.md5 index c114d5c..877c66b 100644 --- a/.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a8b.md5 +++ b/.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a8b.md5 @@ -1,3 +1,3 @@ source_md5="22a422bcf0468fb7d3547caaf9332cd4" -dest_md5="72dfc5ba37e6373dd4f3f18bcf72e567" +dest_md5="da5bce6dd2cda1b6d2675d149ef6fc53" diff --git a/.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a8b.oggstr b/.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a8b.oggstr index 088199e..ad60369 100644 Binary files a/.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a8b.oggstr and b/.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a8b.oggstr differ diff --git a/.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018c0.md5 b/.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018c0.md5 index 1581e8e..ee4ebf2 100644 --- a/.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018c0.md5 +++ b/.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018c0.md5 @@ -1,3 +1,3 @@ source_md5="19e8c9704133435c8fd3152e58e3b778" -dest_md5="eab71b12cb54e0162fc7d8f362a2766d" +dest_md5="7eec72fe5b26e616a8aa3f94bc187def" diff --git a/.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018c0.oggstr b/.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018c0.oggstr index 6accea6..ec1f633 100644 Binary files a/.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018c0.oggstr and b/.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018c0.oggstr differ diff --git a/.import/scavengers_enemy3.ogg-224af90a69a6b813d2f9bf893bdfc04a.md5 b/.import/scavengers_enemy3.ogg-224af90a69a6b813d2f9bf893bdfc04a.md5 new file mode 100644 index 0000000..ee4ebf2 --- /dev/null +++ b/.import/scavengers_enemy3.ogg-224af90a69a6b813d2f9bf893bdfc04a.md5 @@ -0,0 +1,3 @@ +source_md5="19e8c9704133435c8fd3152e58e3b778" +dest_md5="7eec72fe5b26e616a8aa3f94bc187def" + diff --git a/.import/scavengers_enemy3.ogg-224af90a69a6b813d2f9bf893bdfc04a.oggstr b/.import/scavengers_enemy3.ogg-224af90a69a6b813d2f9bf893bdfc04a.oggstr new file mode 100644 index 0000000..ec1f633 Binary files /dev/null and b/.import/scavengers_enemy3.ogg-224af90a69a6b813d2f9bf893bdfc04a.oggstr differ diff --git a/.import/scavengers_footstep1.ogg-f550c0146a892007838f885281fd66f3.md5 b/.import/scavengers_footstep1.ogg-f550c0146a892007838f885281fd66f3.md5 index 89129da..d75626e 100644 --- a/.import/scavengers_footstep1.ogg-f550c0146a892007838f885281fd66f3.md5 +++ b/.import/scavengers_footstep1.ogg-f550c0146a892007838f885281fd66f3.md5 @@ -1,3 +1,3 @@ source_md5="ca5a1fe65cb6229fb8213afd1b52092d" -dest_md5="62eeafb74f9b318441575d2cfd5eb435" +dest_md5="c3bc8fd301da2a9546b437ff4c5cfb4e" diff --git a/.import/scavengers_footstep1.ogg-f550c0146a892007838f885281fd66f3.oggstr b/.import/scavengers_footstep1.ogg-f550c0146a892007838f885281fd66f3.oggstr index ca1ab9f..4c43243 100644 Binary files a/.import/scavengers_footstep1.ogg-f550c0146a892007838f885281fd66f3.oggstr and b/.import/scavengers_footstep1.ogg-f550c0146a892007838f885281fd66f3.oggstr differ diff --git a/.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a33398.md5 b/.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a33398.md5 index 7955cc7..b96759c 100644 --- a/.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a33398.md5 +++ b/.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a33398.md5 @@ -1,3 +1,3 @@ source_md5="4af9f05940e058e6c387e1d358b966c5" -dest_md5="0166b4b668555f1d3940ca0caa4e06f0" +dest_md5="a8d2115bb2a0d31f8641b05a63d3f936" diff --git a/.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a33398.oggstr b/.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a33398.oggstr index 5f43d39..eec09f9 100644 Binary files a/.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a33398.oggstr and b/.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a33398.oggstr differ diff --git a/.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bdd3.md5 b/.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bdd3.md5 index f048478..445f2ad 100644 --- a/.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bdd3.md5 +++ b/.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bdd3.md5 @@ -1,3 +1,3 @@ source_md5="d724fda50098950d04ac2445e419e9a2" -dest_md5="5961ec15093bcfe975d5b4c2e5d7d5cf" +dest_md5="00f0b4778e1c036a59cc81bf56dac614" diff --git a/.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bdd3.oggstr b/.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bdd3.oggstr index bfbe872..b75057f 100644 Binary files a/.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bdd3.oggstr and b/.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bdd3.oggstr differ diff --git a/.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca172.md5 b/.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca172.md5 index 435d88a..ea993ba 100644 --- a/.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca172.md5 +++ b/.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca172.md5 @@ -1,3 +1,3 @@ source_md5="813ede8c4c117f5c95945be9924454c7" -dest_md5="61fa21f966f9aad7fcf20a878c49a26b" +dest_md5="aeaffe94849a71b376d1b49b14ec2591" diff --git a/.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca172.oggstr b/.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca172.oggstr index 392133b..77bcc57 100644 Binary files a/.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca172.oggstr and b/.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca172.oggstr differ diff --git a/.import/scavengers_music.wav-c87cac7d0166b281460cb329e271f752.md5 b/.import/scavengers_music.wav-c87cac7d0166b281460cb329e271f752.md5 index f4374d9..9c147ed 100644 --- a/.import/scavengers_music.wav-c87cac7d0166b281460cb329e271f752.md5 +++ b/.import/scavengers_music.wav-c87cac7d0166b281460cb329e271f752.md5 @@ -1,3 +1,3 @@ source_md5="7e458f4185b8902eb4f572d5fd2d532d" -dest_md5="2094092fb028b04070741a1e2800ed80" +dest_md5="693c4fc2f80b7ca4c62534fc97907e01" diff --git a/.import/scavengers_music.wav-c87cac7d0166b281460cb329e271f752.sample b/.import/scavengers_music.wav-c87cac7d0166b281460cb329e271f752.sample index fef4ae0..4d53bbd 100644 Binary files a/.import/scavengers_music.wav-c87cac7d0166b281460cb329e271f752.sample and b/.import/scavengers_music.wav-c87cac7d0166b281460cb329e271f752.sample differ diff --git a/.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591d.md5 b/.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591d.md5 index 14b1a9a..5cd7eee 100644 --- a/.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591d.md5 +++ b/.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591d.md5 @@ -1,3 +1,3 @@ source_md5="c2205c981ec1b7d542c943e7ca170057" -dest_md5="1d18ab2b1243689164144dc1d5b6296a" +dest_md5="6cf7b101ec32addbd3adfd1e8a95abc6" diff --git a/.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591d.oggstr b/.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591d.oggstr index 4007e80..fa886a3 100644 Binary files a/.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591d.oggstr and b/.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591d.oggstr differ diff --git a/.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de89.md5 b/.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de89.md5 index bf8a1d4..c349bd0 100644 --- a/.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de89.md5 +++ b/.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de89.md5 @@ -1,3 +1,3 @@ source_md5="a1e73f6417d6c1051386add97168acf4" -dest_md5="f06a1f2caf8c64ba57cb3b2e2d12a186" +dest_md5="62447907e4eb87f31f90134ba9c93bf0" diff --git a/.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de89.oggstr b/.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de89.oggstr index 0ffbbb2..b8095dc 100644 Binary files a/.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de89.oggstr and b/.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de89.oggstr differ diff --git a/.mono/metadata/scripts_metadata.editor b/.mono/metadata/scripts_metadata.editor index 44cb16b..e3bd200 100644 --- a/.mono/metadata/scripts_metadata.editor +++ b/.mono/metadata/scripts_metadata.editor @@ -1 +1 @@ -{"res://codigos/BoardManager.cs":{"modified_time":"1587848329","class":{"namespace":"","class_name":"BoardManager","nested":false}},"res://codigos/Enemy.cs":{"modified_time":"1588009964","class":{"namespace":"","class_name":"Enemy","nested":false}},"res://codigos/Escena_Principal.cs":{"modified_time":"1588085127","class":{"namespace":"","class_name":"Escena_Principal","nested":false}},"res://codigos/GameManager.cs":{"modified_time":"1588088651","class":{"namespace":"","class_name":"GameManager","nested":false}},"res://codigos/MovingObject.cs":{"modified_time":"1588009857","class":{"namespace":"","class_name":"MovingObject","nested":false}},"res://codigos/Player.cs":{"modified_time":"1588088747","class":{"namespace":"","class_name":"Player","nested":false}},"res://codigos/SingletonVariables.cs":{"modified_time":"1588087915","class":{"namespace":"","class_name":"SingletonVariables","nested":false}},"res://codigos/SuelosScript/Suelo1.cs":{"modified_time":"1587836811","class":{"namespace":"","class_name":"Suelo1","nested":false}},"res://codigos/Wall.cs":{"modified_time":"1587905397","class":{"namespace":"","class_name":"Wall","nested":false}}} \ No newline at end of file +{"res://codigos/BoardManager.cs":{"modified_time":"1587848329","class":{"namespace":"","class_name":"BoardManager","nested":false}},"res://codigos/Enemy.cs":{"modified_time":"1588266694","class":{"namespace":"","class_name":"Enemy","nested":false}},"res://codigos/Escena_Principal.cs":{"modified_time":"1588085127","class":{"namespace":"","class_name":"Escena_Principal","nested":false}},"res://codigos/GameManager.cs":{"modified_time":"1588265510","class":{"namespace":"","class_name":"GameManager","nested":false}},"res://codigos/MovingObject.cs":{"modified_time":"1588268271","class":{"namespace":"","class_name":"MovingObject","nested":false}},"res://codigos/Player.cs":{"modified_time":"1588266209","class":{"namespace":"","class_name":"Player","nested":false}},"res://codigos/SingletonVariables.cs":{"modified_time":"1588182349","class":{"namespace":"","class_name":"SingletonVariables","nested":false}},"res://codigos/SuelosScript/Suelo1.cs":{"modified_time":"1587836811","class":{"namespace":"","class_name":"Suelo1","nested":false}},"res://codigos/Wall.cs":{"modified_time":"1588244399","class":{"namespace":"","class_name":"Wall","nested":false}}} \ No newline at end of file diff --git a/.mono/metadata/scripts_metadata.editor_player b/.mono/metadata/scripts_metadata.editor_player index 44cb16b..e3bd200 100644 --- a/.mono/metadata/scripts_metadata.editor_player +++ b/.mono/metadata/scripts_metadata.editor_player @@ -1 +1 @@ -{"res://codigos/BoardManager.cs":{"modified_time":"1587848329","class":{"namespace":"","class_name":"BoardManager","nested":false}},"res://codigos/Enemy.cs":{"modified_time":"1588009964","class":{"namespace":"","class_name":"Enemy","nested":false}},"res://codigos/Escena_Principal.cs":{"modified_time":"1588085127","class":{"namespace":"","class_name":"Escena_Principal","nested":false}},"res://codigos/GameManager.cs":{"modified_time":"1588088651","class":{"namespace":"","class_name":"GameManager","nested":false}},"res://codigos/MovingObject.cs":{"modified_time":"1588009857","class":{"namespace":"","class_name":"MovingObject","nested":false}},"res://codigos/Player.cs":{"modified_time":"1588088747","class":{"namespace":"","class_name":"Player","nested":false}},"res://codigos/SingletonVariables.cs":{"modified_time":"1588087915","class":{"namespace":"","class_name":"SingletonVariables","nested":false}},"res://codigos/SuelosScript/Suelo1.cs":{"modified_time":"1587836811","class":{"namespace":"","class_name":"Suelo1","nested":false}},"res://codigos/Wall.cs":{"modified_time":"1587905397","class":{"namespace":"","class_name":"Wall","nested":false}}} \ No newline at end of file +{"res://codigos/BoardManager.cs":{"modified_time":"1587848329","class":{"namespace":"","class_name":"BoardManager","nested":false}},"res://codigos/Enemy.cs":{"modified_time":"1588266694","class":{"namespace":"","class_name":"Enemy","nested":false}},"res://codigos/Escena_Principal.cs":{"modified_time":"1588085127","class":{"namespace":"","class_name":"Escena_Principal","nested":false}},"res://codigos/GameManager.cs":{"modified_time":"1588265510","class":{"namespace":"","class_name":"GameManager","nested":false}},"res://codigos/MovingObject.cs":{"modified_time":"1588268271","class":{"namespace":"","class_name":"MovingObject","nested":false}},"res://codigos/Player.cs":{"modified_time":"1588266209","class":{"namespace":"","class_name":"Player","nested":false}},"res://codigos/SingletonVariables.cs":{"modified_time":"1588182349","class":{"namespace":"","class_name":"SingletonVariables","nested":false}},"res://codigos/SuelosScript/Suelo1.cs":{"modified_time":"1587836811","class":{"namespace":"","class_name":"Suelo1","nested":false}},"res://codigos/Wall.cs":{"modified_time":"1588244399","class":{"namespace":"","class_name":"Wall","nested":false}}} \ No newline at end of file diff --git a/.mono/temp/bin/Debug/Rogue en Godot.dll b/.mono/temp/bin/Debug/Rogue en Godot.dll index e42bc1f..6104409 100644 Binary files a/.mono/temp/bin/Debug/Rogue en Godot.dll and b/.mono/temp/bin/Debug/Rogue en Godot.dll differ diff --git a/.mono/temp/bin/Debug/Rogue en Godot.pdb b/.mono/temp/bin/Debug/Rogue en Godot.pdb index 08fb821..2d76661 100644 Binary files a/.mono/temp/bin/Debug/Rogue en Godot.pdb and b/.mono/temp/bin/Debug/Rogue en Godot.pdb differ diff --git a/.mono/temp/obj/Debug/Rogue en Godot.dll b/.mono/temp/obj/Debug/Rogue en Godot.dll index e42bc1f..6104409 100644 Binary files a/.mono/temp/obj/Debug/Rogue en Godot.dll and b/.mono/temp/obj/Debug/Rogue en Godot.dll differ diff --git a/.mono/temp/obj/Debug/Rogue en Godot.pdb b/.mono/temp/obj/Debug/Rogue en Godot.pdb index 08fb821..2d76661 100644 Binary files a/.mono/temp/obj/Debug/Rogue en Godot.pdb and b/.mono/temp/obj/Debug/Rogue en Godot.pdb differ diff --git a/codigos/Enemy.cs b/codigos/Enemy.cs index ba89e11..4eb9f07 100644 --- a/codigos/Enemy.cs +++ b/codigos/Enemy.cs @@ -1,4 +1,5 @@ using Godot; +using Godot.Collections; using System; public class Enemy : MovingObject @@ -11,18 +12,28 @@ public class Enemy : MovingObject private bool skinMove;//como es por turnos esta variable es para saber cuando puede moverse private AnimationNodeStateMachinePlayback playback;//referencia al animator + private Array scavengers_enemy = new Array();//cargo en este arreglo el recurso de audio enemigo,nota importante el arreglo de Godot es un Generico + private AudioStreamPlayer scavengersEnemyNode;//referencia al nodo // Called when the node enters the scene tree for the first time. public override void _Ready() { + //para procesar el game manager _GameManager = (GameManager)GetTree().GetNodesInGroup("GameManager")[0];//para poder acceder al GameManager _GameManager.AddEnemyToList(this);//tendria que agregarse este mismo objeto kinematico2D + + //para procesar el enemigo movementSpeed = 1f / moveTime;//velocidad a la que se movera rayo = GetNode("RayCast2D");//referencia al raycast moverConTween = GetNode("Tween");//referencia al nodo tween targetCharacter = (KinematicBody2D)GetTree().GetNodesInGroup("Player")[0];//referencia al nodo del personaje playback = (AnimationNodeStateMachinePlayback)GetNode("AnimationTree").Get("parameters/playback");//accedo al nodo animation three y a la propiedad de las maquinas de estado playback.Start("EnemyIdle");//como inicia la animación del personaje + + //para procesar el audio + scavengersEnemyNode = (AudioStreamPlayer)GetTree().GetNodesInGroup("scavengers_enemy")[0];//busco el nodo que controla el audio + scavengers_enemy.Add((AudioStreamOGGVorbis)GD.Load("res://musica/scavengers_enemy1.ogg"));//agrego el recurso de sonido + scavengers_enemy.Add((AudioStreamOGGVorbis)GD.Load("res://musica/scavengers_enemy2.ogg"));//agrego el recurso de sonido } public override void _Process(float delta) @@ -30,16 +41,17 @@ public override void _Process(float delta) targetPosition = targetCharacter.Position;//guardo la posición del personaje en targetPosition } - protected override void AttempMove(int xDir, int yDir) + protected override bool AttempMove(int xDir, int yDir)//este metodo devuelve si se movio o no "Bool" { if(skinMove)//si se movio { skinMove = false;//desactivo el movimiento - return;//salgo de esta función + return false;//retorna falso,el enemigo no se a movido } - base.AttempMove(xDir,yDir);//la segunda ves sera falso y se ejecutara el movimiento + bool canMove = base.AttempMove(xDir,yDir);//la segunda ves sera falso y se ejecutara el movimiento skinMove = true;//una ves hecho el movimiento otra ves sera verdadero + return canMove;//regresa si se movio o no } public void MoveEnemy()//metodo que se encarga de mover al personaje,esto es publico y lo hara el GameManager en una lista de enemigos @@ -69,7 +81,7 @@ protected override void OnCantMoveStaticBody2D(StaticBody2D go)//sino puede move { } - + protected override Vector2 RaycastDirection(int xDir, int Ydir)//cuando el raycast es del enemigo { return new Vector2(xDir,Ydir);//devuelvo la posición normal y con esto funciona bien hacia adonde apunta el raycast @@ -82,6 +94,7 @@ protected override void OnCantMoveRigidBody2D(KinematicBody2D go)//sino puede mo { hitPlayer.LoseFood(playerDamage);//descuento comida del personaje playback.Travel("EnemyAttack");//el enemigo ataca cuando le quitamos puntos al jugador + _GameManager.RandomizeSfx(scavengers_enemy,scavengersEnemyNode);//activo sonido golpe } } // // Called every frame. 'delta' is the elapsed time since the previous frame. diff --git a/codigos/GameManager.cs b/codigos/GameManager.cs index a678298..b4ae51a 100644 --- a/codigos/GameManager.cs +++ b/codigos/GameManager.cs @@ -1,4 +1,5 @@ using Godot; +using Godot.Collections; using System; using System.Collections.Generic; @@ -67,11 +68,11 @@ public void _on_TimerlevelStarDelay_timeout()//cuando termina el tiempo del star public void GameOver()//posiblemente esto despues voy a tener que correguirlo { - LevelText.Text = "After " + level + " Days\nyou starved";//si es game over cambio el texto fondoColorUI.Visible = true;//hago visible el fondo LevelText.Visible = true;//hace visible el texto Visible = false;//desactivo el nodo que contiene este script,esto tendria que desactivar el Game manager para saber que es Game over puede que lo haga de otra manera + doingSetup = true;//si es Game over ya no puedo mover al jugador } private async void MoveEnemies()//esta función sera como una corrutina la utilizare para mover a los personajes cada cierto tiempo @@ -108,7 +109,15 @@ public void AddEnemyToList(KinematicBody2D enemy)//los enemigos se agregan cuans enemies.Add(enemy);//agrega el enemigo a la lista } - + public void RandomizeSfx( Array clips,AudioStreamPlayer SfxSource )//Función para ejecutar audio recibe el clip y el nodo + { + int randomIndex = (int)GD.RandRange(0,clips.Count);//devuelve un número aleatorio entre los 2 clips que recibio como parametro + float randomPitch = (float)GD.RandRange(0.9f,1.1f);//para cambiar la recuencía del sonido + SfxSource.PitchScale = randomPitch;//el sonido tiene una pequeña variación + SfxSource.Stream = clips[randomIndex];//aleatoriamente elijo una de las pistas de audio + SfxSource.Play();//doy play al sonido + + } } diff --git a/codigos/MovingObject.cs b/codigos/MovingObject.cs index 6e56bef..2fe33db 100644 --- a/codigos/MovingObject.cs +++ b/codigos/MovingObject.cs @@ -45,17 +45,15 @@ protected void SmoothMovementWithTween(Vector2 end)//Esta función va a procesar //metodo para mover al jugador o al enemigo devuelve 2 si se movio y la colisión de raycast protected bool Move(int xDir, int Ydir,RayCast2D hitRaycast)//es privada para cualquier otra clase que no hereda de esta { + Vector2 posicionAnteriorRayCast = hitRaycast.CastTo; bool colisiono;//para saber cuando el raycast colisiona Vector2 start = Position;//posicion inicial Vector2 end = start + new Vector2(xDir,Ydir);//la posición de adonde queremos movernos suma de vectores (0,0) + (1,0) = (1,0) - //hitRaycast.CastTo = new Vector2(-Ydir,xDir);//esto determina para adonde va apuntar el raycast hitRaycast.CastTo = RaycastDirection(xDir,Ydir);//esto determina para adonde va apuntar el raycast //hacemos una raycast entre el punto inicial y final - //si hay un collider por donde pasa esa linea abremos encontrado ese objeto - //BoxCollider.Visible = false; //desactivamos el boxcollider para que no choque con nosotros mismos en el resultado + //si hay un collider por donde pasa esa linea encontrado ese objeto colisiono = hitRaycast.IsColliding();//esto es para verificar si colisionamos tengo que verificar utilizando la colisión del raycast con un grupo - //BoxCollider.Visible = true;//una ves hecho el raycast lo volvemos a habilitar if(colisiono == false)//sino esta colisionando { //hacemos el movimiento @@ -64,7 +62,6 @@ protected bool Move(int xDir, int Ydir,RayCast2D hitRaycast)//es privada para cu //GD.Print("cantidad que mueve en Y: ",Ydir); //GD.Print("la posicion en final X: ",end.x); //GD.Print("laposicion en final Y: ",end.y); - SmoothMovementWithTween(end);//movemos con interpolación lineal recibe por parametro la ultima posición return true; } @@ -73,28 +70,34 @@ protected bool Move(int xDir, int Ydir,RayCast2D hitRaycast)//es privada para cu GD.Print("No podemos movernos"); return false;//no hemos podido movernos } + } //Esto es relacionado al movimiento y al tipo de obstaculo protected abstract void OnCantMoveStaticBody2D(StaticBody2D go); //aqui viene el comportamiento luego de no poder moverse,es un meotdoABstracto ya que se va a comportar de diferente manera según sea el personaje o elenemigo protected abstract void OnCantMoveRigidBody2D(KinematicBody2D go); protected abstract Vector2 RaycastDirection(int xDir, int Ydir);//como el personaje y el enemigo tienen algunas diferencias tengo que procesar la direccioń del raycast en cada uno por separado - protected virtual void AttempMove(int xDir,int yDir)//metodo para internar moverse esto recive por arametro cuanto en x y cuanto en y lo marcamos como abstracto ya que cada esto lo haremos en cada personaje + + + protected virtual bool AttempMove(int xDir,int yDir)//metodo para internar moverse esto recibe por parametro cuanto en x y cuanto en y lo marcamos como abstracto ya que esto lo haremos en cada personaje { RayCast2D hit = rayo;//tomo la referencia del nodo que esta en la función ready bool canMove = Move(xDir,yDir,hit);// - if(canMove) return;//si se movio termino esta función - - Node col = (Node)hit.GetCollider();//usando la colisicioń del raycast busco el nodo - if(col.IsInGroup("Wall"))//si el nodo colisionado esta en el grupo wall - { - //GD.Print("estoy conlisionado con un muro"); - OnCantMoveStaticBody2D((StaticBody2D)hit.GetCollider());//aqui tengo que pasarle el staticbody que estamos colisionando - } - if(col.IsInGroup("characters"))//si el nodo colisionado esta enel grupo character + if(!canMove)//si no se movio { - //GD.Print("estoy conlisionado con un personaje"); - OnCantMoveRigidBody2D((KinematicBody2D)hit.GetCollider());//aqui tengo que pasarle el kinematicBody que estamos colisionando) + Node col = (Node)hit.GetCollider();//usando la colisicioń del raycast busco el nodo + if(col != null && col.IsInGroup("Wall"))//si el nodo colisionado esta en el grupo wall + { + //GD.Print("estoy conlisionado con un muro"); + OnCantMoveStaticBody2D((StaticBody2D)hit.GetCollider());//aqui tengo que pasarle el staticbody que estamos colisionando + } + if(col != null && col.IsInGroup("characters"))//si el nodo colisionado esta enel grupo character + { + //GD.Print("estoy conlisionado con un personaje"); + OnCantMoveRigidBody2D((KinematicBody2D)hit.GetCollider());//aqui tengo que pasarle el kinematicBody que estamos colisionando) + } } + return canMove;//devuelve verdadero o falso para saber si se movio o no } + } diff --git a/codigos/Player.cs b/codigos/Player.cs index c7446cc..d4442ad 100644 --- a/codigos/Player.cs +++ b/codigos/Player.cs @@ -1,8 +1,30 @@ using Godot; +using Godot.Collections; using System; public class Player : MovingObject { + //todp estp es para procesar el audio en el jugador + [Export] + private Array scavengers_footstep;//arreglo de sonidos de pasos + [Export] + private Array scavengers_fruit;//arreglo de sonidos de frutas + [Export] + private Array scavengers_soda;//arreglo de sonidos de soda + [Export] + private AudioStreamOGGVorbis scavengers_die;//arreglo de sonidos de soda + + + //private AudioStreamOGGVorbis die;//referenia al sonido morir + + private AudioStreamPlayer scavengersFootstepNode;//referencia al nodo + private AudioStreamPlayer scavengersFruitNode;//referencia al nodo + private AudioStreamPlayer scavengersSodaNode;//referencia al nodo + private AudioStreamPlayer scavengersDieNode;//referencia al nodo + private AudioStreamPlayer scavengersMusicNode;//referencia al nodo + + + /////////////////////////////////////////////////// public int wallDamage = 1;//daño public int pointPerFood = 10;//puntos por comida public int pointPerSOda = 20;//puntos por soda @@ -15,7 +37,7 @@ public class Player : MovingObject private SingletonVariables _SingletonVariables; private Label _FoodText; //private bool seMovio = false; - + Wall hitWall;//referencia a la pared que esta chocando // Called when the node enters the scene tree for the first time. @@ -39,6 +61,13 @@ public override void _Ready() _FoodText = (Label)GetTree().GetNodesInGroup("FoodText")[0];//accedo al nodo label que muestra la comida en la pantalla food = _SingletonVariables.food;//la comida inicial del jugador busco desde el game manager _FoodText.Text = "food " + food;//comida del jugador + + //para procesar el audio y buscar los nodos + scavengersFootstepNode = (AudioStreamPlayer)GetTree().GetNodesInGroup("scavengers_footstep")[0]; + scavengersFruitNode = (AudioStreamPlayer)GetTree().GetNodesInGroup("scavengers_fruit")[0]; + scavengersSodaNode = (AudioStreamPlayer)GetTree().GetNodesInGroup("scavengers_soda")[0]; + scavengersDieNode = (AudioStreamPlayer)GetTree().GetNodesInGroup("scavengers_die")[0]; + scavengersMusicNode = (AudioStreamPlayer)GetTree().GetNodesInGroup("MusicGame")[0]; } @@ -46,6 +75,8 @@ private void CheckIfGameOver()//verifica que si es GameOver { if(food <= 0)//sino tenemos comida { + scavengersDieNode.Playing = true;//activo el sonido muerte + scavengersMusicNode.Playing = false;//desactivo la música _GameManager.GameOver();//llamo a la función Game Over,ojo esta función tiene que terminar el juego } } @@ -55,13 +86,18 @@ protected override Vector2 RaycastDirection(int xDir, int Ydir)//cuando el rayca return new Vector2(-Ydir,xDir);//invierto la posición y con esto funciona bien hacia adonde apunta el raycast } - protected override void AttempMove(int xDir, int yDir) - { - food --;//en cada paso dismunuje la comida - _FoodText.Text = "food " + food;//comida del jugador - base.AttempMove(xDir,yDir);//ejecuto esta acción + protected override bool AttempMove(int xDir, int yDir)//para mover el personaje + { + bool canMove = base.AttempMove(xDir,yDir);//ejecuto esta acción del metodo base y devuelve verdadero o falso + if(canMove)//si puede moverse + { + food --;//en cada paso dismunuje la comida + _FoodText.Text = "food " + food;//comida del jugador + _GameManager.RandomizeSfx(scavengers_footstep,scavengersFootstepNode);//en cada paso hay un sonido de caminar + } CheckIfGameOver();//siempre que se decrementa la comida verificamos si es game over _GameManager.playersTurn = false;//luego terminamos el turno del jugador + return canMove;//regresa si se movio o no } public override void _PhysicsProcess(float delta) @@ -80,8 +116,7 @@ public override void _PhysicsProcess(float delta) if(horizontal != 0 || vertical != 0 )///nos estamos moviendo { AttempMove(horizontal,vertical);//movemos el personaje - } - + } } protected override void OnCantMoveStaticBody2D(StaticBody2D pared)//si "NO" podemos movernos recibe el cuerpo estatico y es un una pared.Este es un metodo que se sobreescribe @@ -97,10 +132,17 @@ protected override void OnCantMoveStaticBody2D(StaticBody2D pared)//si "NO" pode playback.Travel("PlayerChop");//activo animación romper pared } } - protected override void OnCantMoveRigidBody2D(KinematicBody2D pared)//si "NO" podemos movernos recibe el cuerpo rigido y es un character.Este es un metodo que se sobreescribe + protected override void OnCantMoveRigidBody2D(KinematicBody2D body2D)//si "NO" podemos movernos recibe el cuerpo rigido y es un character.Este es un metodo que se sobreescribe { - playback.Travel("PlayerChop");//activo animación romper pared + //esta función es para detectar kinematic como el enemigo,pero el enemigo + //en este juego no puede ser atacado por el jugador,sin embargo + //dejo el codigo aqui por las dudas + /*if(body2D.IsInGroup("wall"))//solo golpea cuando esta en el grupo wall + { + playback.Travel("PlayerChop");//activo animación romper pared + }*/ } + @@ -125,13 +167,16 @@ public async void _on_Area2D_area_entered(Area _area)//esta funcion tiene una co { enable = false;//el jugador no se puede mover //aqui tendria que venir una transcición al cambiar de pantalla - _SingletonVariables.level += 1; - _SingletonVariables.food = food; + _GameManager.doingSetup = true;//Cuando entro al area exit ya no puedo mover el personaje + _SingletonVariables.level += 1;//aumento el nivel desde el singleton + _SingletonVariables.food = food;//guardo el valor de la comida en el singleton await ToSignal(GetTree().CreateTimer(1.0f),"timeout");//detengo por 1 segundo Restart();//reinicio el nivel,voy a tener que utilizar un singleton para guardar puntajes } if(_area.IsInGroup("Food")) { + + _GameManager.RandomizeSfx(scavengers_fruit,scavengersFruitNode);//Activo sonido comer fruta food += pointPerFood;//sumo el puntaje de la comida _FoodText.Text = " + "+ pointPerFood +" food " + food;//comida del jugador (_area.GetParent().GetChild(0) as Area2D).Monitoring = false;//para que el cuerpo deje de ser detectado,porque aunque desaparesca el sprite sigue estando la colisión del area detectando cuerpos @@ -139,6 +184,7 @@ public async void _on_Area2D_area_entered(Area _area)//esta funcion tiene una co } if(_area.IsInGroup("Soda")) { + _GameManager.RandomizeSfx(scavengers_soda,scavengersSodaNode);//Activo sonido tomar soda food += pointPerSOda;//sumo el puntaje de la soda _FoodText.Text = " + "+ pointPerSOda +" food " + food;//comida del jugador (_area.GetParent().GetChild(0) as Area2D).Monitoring = false;//para que el cuerpo deje de ser detectado,porque aunque desaparesca el sprite sigue estando la colisión del area detectando cuerpos diff --git a/codigos/SingletonVariables.cs b/codigos/SingletonVariables.cs index 1ae3110..2eb701b 100644 --- a/codigos/SingletonVariables.cs +++ b/codigos/SingletonVariables.cs @@ -5,12 +5,38 @@ public class SingletonVariables : Node { public int food = 100; public int level = 1; + + public AudioStreamPlayer musicGame = new AudioStreamPlayer(); + private AudioStreamSample audioMusic = (AudioStreamSample)GD.Load("res://musica/scavengers_music.wav");//precargo la musica + + private Sprite spr = new Sprite(); + private void IniciarMusica()//función para procesar datos y inicar la musica + { + //esto evita que al reinicar la escena la musica se reinicie ya que + //esta clase es un singleton que se ejecuta 1 ves sola y luego + //queda arriba en la gerarquia de los nodos por lo tanto al reiniciar + //los nodos de abajo este sigue estando activo + AddChild(musicGame);//agrego el nodo en el singleton para que solo se inicie 1 ves + AddChild(spr); + musicGame.Stream = audioMusic;//agrego la musica que busque desde el script + musicGame.Autoplay = true;//hago que la musica inicie al comienzo del juego + musicGame.Playing = true; + } // Called when the node enters the scene tree for the first time. public override void _Ready() - { - + { + //estube viendo que en el juego no la musica se + //reinicia en cada ves que cambia de nivel + //asi que esto lo dejo comentado,sin embargo es bueno + //saber que es posible hacerlo de esta manera con el singleton + //IniciarMusica();//inicio la música desde esta clase singleton. } + + + + + // // Called every frame. 'delta' is the elapsed time since the previous frame. // public override void _Process(float delta) diff --git a/codigos/Wall.cs b/codigos/Wall.cs index 3673f9d..7ce0eb8 100644 --- a/codigos/Wall.cs +++ b/codigos/Wall.cs @@ -1,4 +1,5 @@ using Godot; +using Godot.Collections; using System; public class Wall : Sprite @@ -7,15 +8,27 @@ public class Wall : Sprite private int indiceDmgSprite = 0; public int hp = 4; private CollisionShape2D _collisionShape2D; + private GameManager _GameManager; + + //para procesar el sonido + private Array scavengers_chop = new Array();//cargo en este arreglo el recurso de audio chop,nota importante el arreglo de Godot es un Generico + private AudioStreamPlayer scavengersChopNode;//referencia al nodo // Called when the node enters the scene tree for the first time. public override void _Ready() { _collisionShape2D = GetNode("StaticBody2DWall/CollisionShape2D"); + _GameManager = (GameManager)GetTree().GetNodesInGroup("GameManager")[0]; + scavengersChopNode = (AudioStreamPlayer)GetTree().GetNodesInGroup("scavengers_chop")[0]; + scavengers_chop.Add((AudioStreamOGGVorbis)GD.Load("res://musica/scavengers_chop1.ogg"));//guardo el audio precargado + scavengers_chop.Add((AudioStreamOGGVorbis)GD.Load("res://musica/scavengers_chop2.ogg"));//guardo el audio precargado } + public void DamageWall(int loss)//funcion publica que usara el personaje para dañar y hacer invisible este nodo { + //aqui viene el sonido de golpear la columna + _GameManager.RandomizeSfx(scavengers_chop,scavengersChopNode);//activo sonido golpear Frame = indiceDmgSprite;//cuando es golpeado toma esta textura que esta en el indice DmgSprite hp -= loss;//descuento puntaje if(hp<2) diff --git a/default_bus_layout.tres b/default_bus_layout.tres new file mode 100644 index 0000000..42e4613 --- /dev/null +++ b/default_bus_layout.tres @@ -0,0 +1,45 @@ +[gd_resource type="AudioBusLayout" format=2] + +[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 = "scavengers_footstep" +bus/2/solo = false +bus/2/mute = false +bus/2/bypass_fx = false +bus/2/volume_db = 0.0 +bus/2/send = "Master" +bus/3/name = "scavengers_fruit" +bus/3/solo = false +bus/3/mute = false +bus/3/bypass_fx = false +bus/3/volume_db = 0.0 +bus/3/send = "Master" +bus/4/name = "scavengers_soda" +bus/4/solo = false +bus/4/mute = false +bus/4/bypass_fx = false +bus/4/volume_db = 0.0 +bus/4/send = "Master" +bus/5/name = "scavengers_chop" +bus/5/solo = false +bus/5/mute = false +bus/5/bypass_fx = false +bus/5/volume_db = 0.0 +bus/5/send = "Master" +bus/6/name = "scavengers_die" +bus/6/solo = false +bus/6/mute = false +bus/6/bypass_fx = false +bus/6/volume_db = 0.0 +bus/6/send = "Master" +bus/7/name = "scavengers_enemy" +bus/7/solo = false +bus/7/mute = false +bus/7/bypass_fx = false +bus/7/volume_db = 0.0 +bus/7/send = "Master" diff --git a/escenas/Escena_Principal.tscn b/escenas/Escena_Principal.tscn index 7390ab7..4c7da9f 100644 --- a/escenas/Escena_Principal.tscn +++ b/escenas/Escena_Principal.tscn @@ -1,7 +1,9 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://escenas/characters/Player.tscn" type="PackedScene" id=1] [ext_resource path="res://escenas/ControlUI.tscn" type="PackedScene" id=2] +[ext_resource path="res://musica/scavengers_music.wav" type="AudioStream" id=3] +[ext_resource path="res://musica/scavengers_die.ogg" type="AudioStream" id=8] [ext_resource path="res://escenas/GameManager.tscn" type="PackedScene" id=27] [ext_resource path="res://codigos/Escena_Principal.cs" type="Script" id=28] @@ -26,7 +28,6 @@ zoom = Vector2( 0.54, 0.54 ) ]] [node name="Player" parent="." instance=ExtResource( 1 )] -position = Vector2( 0, 224 ) [node name="TimerlevelStarDelay" type="Timer" parent="."] one_shot = true @@ -35,4 +36,44 @@ autostart = true [node name="Canvas" type="CanvasLayer" parent="."] [node name="ControlUI" parent="Canvas" instance=ExtResource( 2 )] + +[node name="Audio_Y_Sfx" type="Node" parent="."] + +[node name="MusicGame" type="AudioStreamPlayer" parent="Audio_Y_Sfx" groups=[ +"MusicGame", +]] +stream = ExtResource( 3 ) +autoplay = true +bus = "music" + +[node name="scavengers_footstep" type="AudioStreamPlayer" parent="Audio_Y_Sfx" groups=[ +"scavengers_footstep", +]] +bus = "scavengers_footstep" + +[node name="scavengers_fruit" type="AudioStreamPlayer" parent="Audio_Y_Sfx" groups=[ +"scavengers_fruit", +]] +bus = "scavengers_fruit" + +[node name="scavengers_soda" type="AudioStreamPlayer" parent="Audio_Y_Sfx" groups=[ +"scavengers_soda", +]] +bus = "scavengers_soda" + +[node name="scavengers_chop" type="AudioStreamPlayer" parent="Audio_Y_Sfx" groups=[ +"scavengers_chop", +]] +bus = "scavengers_chop" + +[node name="scavengers_die" type="AudioStreamPlayer" parent="Audio_Y_Sfx" groups=[ +"scavengers_die", +]] +stream = ExtResource( 8 ) +bus = "scavengers_die" + +[node name="scavengers_enemy" type="AudioStreamPlayer" parent="Audio_Y_Sfx" groups=[ +"scavengers_enemy", +]] +bus = "scavengers_enemy" [connection signal="timeout" from="TimerlevelStarDelay" to="GameManager" method="_on_TimerlevelStarDelay_timeout"] diff --git a/escenas/FloorScene/Soda.tscn b/escenas/FloorScene/Soda.tscn index 3891675..0211641 100644 --- a/escenas/FloorScene/Soda.tscn +++ b/escenas/FloorScene/Soda.tscn @@ -8,6 +8,7 @@ extents = Vector2( 15.9082, 15.8257 ) [node name="Soda" type="Sprite" groups=[ "Soda", ]] +z_index = 1 texture = ExtResource( 1 ) vframes = 7 hframes = 8 diff --git a/escenas/characters/Enemy1.tscn b/escenas/characters/Enemy1.tscn index 4e01468..fe23a25 100644 --- a/escenas/characters/Enemy1.tscn +++ b/escenas/characters/Enemy1.tscn @@ -6,7 +6,7 @@ [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 12.8874, 13.6713 ) -[sub_resource type="Animation" id=4] +[sub_resource type="Animation" id=2] resource_name = "EnemyAttack" length = 0.3 tracks/0/type = "value" @@ -22,7 +22,7 @@ tracks/0/keys = { "values": [ 42, 43 ] } -[sub_resource type="Animation" id=5] +[sub_resource type="Animation" id=3] resource_name = "EnemyIdle" loop = true tracks/0/type = "value" @@ -38,33 +38,34 @@ tracks/0/keys = { "values": [ 6, 7, 8, 9, 10, 11 ] } -[sub_resource type="AnimationNodeAnimation" id=8] +[sub_resource type="AnimationNodeAnimation" id=4] animation = "EnemyAttack" -[sub_resource type="AnimationNodeAnimation" id=9] +[sub_resource type="AnimationNodeAnimation" id=5] animation = "EnemyIdle" -[sub_resource type="AnimationNodeStateMachineTransition" id=10] +[sub_resource type="AnimationNodeStateMachineTransition" id=6] -[sub_resource type="AnimationNodeStateMachineTransition" id=11] +[sub_resource type="AnimationNodeStateMachineTransition" id=7] switch_mode = 2 auto_advance = true -[sub_resource type="AnimationNodeStateMachine" id=6] -states/EnemyAttack/node = SubResource( 8 ) +[sub_resource type="AnimationNodeStateMachine" id=8] +states/EnemyAttack/node = SubResource( 4 ) states/EnemyAttack/position = Vector2( 407, 198 ) -states/EnemyIdle/node = SubResource( 9 ) +states/EnemyIdle/node = SubResource( 5 ) states/EnemyIdle/position = Vector2( 407, 80 ) -transitions = [ "EnemyIdle", "EnemyAttack", SubResource( 10 ), "EnemyAttack", "EnemyIdle", SubResource( 11 ) ] +transitions = [ "EnemyIdle", "EnemyAttack", SubResource( 6 ), "EnemyAttack", "EnemyIdle", SubResource( 7 ) ] graph_offset = Vector2( -9, 18.2934 ) -[sub_resource type="AnimationNodeStateMachinePlayback" id=7] +[sub_resource type="AnimationNodeStateMachinePlayback" id=9] [node name="Enemy1" type="KinematicBody2D" groups=[ "Enemy", "characters", ]] z_index = 2 +collision_layer = 3 collision_mask = 2 script = ExtResource( 2 ) @@ -80,14 +81,14 @@ hframes = 8 frame = 9 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/EnemyAttack = SubResource( 4 ) -anims/EnemyIdle = SubResource( 5 ) +anims/EnemyAttack = SubResource( 2 ) +anims/EnemyIdle = SubResource( 3 ) [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource( 8 ) anim_player = NodePath("../AnimationPlayer") active = true -parameters/playback = SubResource( 7 ) +parameters/playback = SubResource( 9 ) [node name="RayCast2D" type="RayCast2D" parent="."] enabled = true diff --git a/escenas/characters/Enemy2.tscn b/escenas/characters/Enemy2.tscn index 4e87b23..b09a8c9 100644 --- a/escenas/characters/Enemy2.tscn +++ b/escenas/characters/Enemy2.tscn @@ -6,7 +6,7 @@ [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 13.1248, 13.6713 ) -[sub_resource type="Animation" id=9] +[sub_resource type="Animation" id=2] resource_name = "EnemyAttack" length = 0.3 tracks/0/type = "value" @@ -22,7 +22,7 @@ tracks/0/keys = { "values": [ 44, 45 ] } -[sub_resource type="Animation" id=4] +[sub_resource type="Animation" id=3] resource_name = "EnemyIdle" loop = true tracks/0/type = "value" @@ -38,32 +38,33 @@ tracks/0/keys = { "values": [ 12, 13, 14, 15, 16, 17 ] } -[sub_resource type="AnimationNodeAnimation" id=10] +[sub_resource type="AnimationNodeAnimation" id=4] animation = "EnemyAttack" -[sub_resource type="AnimationNodeAnimation" id=11] +[sub_resource type="AnimationNodeAnimation" id=5] animation = "EnemyIdle" -[sub_resource type="AnimationNodeStateMachineTransition" id=12] +[sub_resource type="AnimationNodeStateMachineTransition" id=6] -[sub_resource type="AnimationNodeStateMachineTransition" id=13] +[sub_resource type="AnimationNodeStateMachineTransition" id=7] switch_mode = 2 auto_advance = true -[sub_resource type="AnimationNodeStateMachine" id=14] -states/EnemyAttack/node = SubResource( 10 ) +[sub_resource type="AnimationNodeStateMachine" id=8] +states/EnemyAttack/node = SubResource( 4 ) states/EnemyAttack/position = Vector2( 383, 183 ) -states/EnemyIdle/node = SubResource( 11 ) +states/EnemyIdle/node = SubResource( 5 ) states/EnemyIdle/position = Vector2( 383, 68 ) -transitions = [ "EnemyIdle", "EnemyAttack", SubResource( 12 ), "EnemyAttack", "EnemyIdle", SubResource( 13 ) ] +transitions = [ "EnemyIdle", "EnemyAttack", SubResource( 6 ), "EnemyAttack", "EnemyIdle", SubResource( 7 ) ] -[sub_resource type="AnimationNodeStateMachinePlayback" id=15] +[sub_resource type="AnimationNodeStateMachinePlayback" id=9] [node name="Enemy2" type="KinematicBody2D" groups=[ "Enemy", "characters", ]] z_index = 2 +collision_layer = 3 collision_mask = 2 script = ExtResource( 2 ) playerDamage = 20 @@ -78,14 +79,14 @@ hframes = 8 frame = 12 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/EnemyAttack = SubResource( 9 ) -anims/EnemyIdle = SubResource( 4 ) +anims/EnemyAttack = SubResource( 2 ) +anims/EnemyIdle = SubResource( 3 ) [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 14 ) +tree_root = SubResource( 8 ) anim_player = NodePath("../AnimationPlayer") active = true -parameters/playback = SubResource( 15 ) +parameters/playback = SubResource( 9 ) [node name="RayCast2D" type="RayCast2D" parent="."] enabled = true diff --git a/escenas/characters/Player.tscn b/escenas/characters/Player.tscn index ccbd6d3..9536430 100644 --- a/escenas/characters/Player.tscn +++ b/escenas/characters/Player.tscn @@ -1,13 +1,20 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=23 format=2] [ext_resource path="res://sprite/Scavengers_SpriteSheet.png" type="Texture" id=1] [ext_resource path="res://codigos/Player.cs" type="Script" id=2] +[ext_resource path="res://musica/scavengers_footstep2.ogg" type="AudioStream" id=3] +[ext_resource path="res://musica/scavengers_soda2.ogg" type="AudioStream" id=4] +[ext_resource path="res://musica/scavengers_footstep1.ogg" type="AudioStream" id=5] +[ext_resource path="res://musica/scavengers_soda1.ogg" type="AudioStream" id=6] +[ext_resource path="res://musica/scavengers_fruit1.ogg" type="AudioStream" id=7] +[ext_resource path="res://musica/scavengers_fruit2.ogg" type="AudioStream" id=8] +[ext_resource path="res://musica/scavengers_die.ogg" type="AudioStream" id=9] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 10.7465, 13.6713 ) [sub_resource type="Animation" id=2] -length = 0.3 +length = 0.2 step = 0.05 tracks/0/type = "value" tracks/0/path = NodePath("SpritePlayer:frame") @@ -90,9 +97,15 @@ graph_offset = Vector2( -280.399, 1 ) "Player", "characters", ]] +position = Vector2( 0, 224 ) z_index = 2 +collision_layer = 3 collision_mask = 2 script = ExtResource( 2 ) +scavengers_footstep = [ ExtResource( 5 ), ExtResource( 3 ) ] +scavengers_fruit = [ ExtResource( 7 ), ExtResource( 8 ) ] +scavengers_soda = [ ExtResource( 6 ), ExtResource( 4 ) ] +scavengers_die = ExtResource( 9 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource( 1 ) @@ -106,7 +119,7 @@ shape = SubResource( 1 ) texture = ExtResource( 1 ) vframes = 7 hframes = 8 -frame = 1 +frame = 41 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/PlayerChop = SubResource( 2 ) diff --git a/mono_crash.0.1.json b/mono_crash.0.1.json new file mode 100644 index 0000000..4e5a9f8 --- /dev/null +++ b/mono_crash.0.1.json @@ -0,0 +1,272 @@ +{ + "protocol_version" : "0.0.5", + "configuration" : { + "version" : "(6.6.0) ((no/d9001b5)", + "tlc" : "__thread", + "sigsgev" : "altstack", + "notifications" : "epoll", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "disabled", + "suspend" : "preemptive" + }, + "memory" : { + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x7f29fd7f71c0", + "thread_info_addr" : "0x7aa9db0", + "thread_name" : "Godot_v3.2.2-be", + "ctx" : { + "IP" : "0x1eb8080", + "SP" : "0x7ffcb2357b98", + "BP" : "(nil)" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0xd01a26", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xe96729", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xe975d5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xea238c", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xd10d2f", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xd10efc", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xd039a8", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xc7c211", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x1eb8080", + "native_offset" : "0x00000" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f29ef137700", + "thread_info_addr" : "0x7f29c8000b20", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7f29fd3f56d6", + "SP" : "0x7f29ef136bc0", + "BP" : "0x4bed4e0" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0xd01a26", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xe96729", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xe975d5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xea2257", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xd1011f", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fd3f7890", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fd3f56d6", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fd3f57c8", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xdcdd78", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xea1a55", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fd3ec6db", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fc96b88f", + "native_offset" : "0x00000" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7f29ecffe700", + "thread_info_addr" : "0x7f29bc000b20", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7f29fd3f66d7", + "SP" : "0x7f29ecffd940", + "BP" : "(nil)" + }, + "unmanaged_frames" : [ + { + "is_managed" : "false", + "native_address" : "0xd01a26", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xe96729", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xe975d5", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xea2257", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xd1011f", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fd3f7890", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fd3f66d7", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xd70843", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xd829e4", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0xea1a55", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fd3ec6db", + "native_offset" : "0x00000" + } +, + { + "is_managed" : "false", + "native_address" : "0x7f29fc96b88f", + "native_offset" : "0x00000" + } + + ] + } + ] +} \ No newline at end of file diff --git a/mono_crash.mem.31267.1.blob b/mono_crash.mem.31267.1.blob new file mode 100644 index 0000000..eb065b9 Binary files /dev/null and b/mono_crash.mem.31267.1.blob differ diff --git a/musica/scavengers_chop1.ogg.import b/musica/scavengers_chop1.ogg.import index bf5d5ea..edb40e4 100644 --- a/musica/scavengers_chop1.ogg.import +++ b/musica/scavengers_chop1.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_chop1.ogg-101a711e337424b027a92018d00ba6f [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_chop2.ogg.import b/musica/scavengers_chop2.ogg.import index 9e6c942..0b80af8 100644 --- a/musica/scavengers_chop2.ogg.import +++ b/musica/scavengers_chop2.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_chop2.ogg-075f8abc8443715d640b742603dc42d [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_die.ogg.import b/musica/scavengers_die.ogg.import index e7ec153..6adcba3 100644 --- a/musica/scavengers_die.ogg.import +++ b/musica/scavengers_die.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_die.ogg-c525b5c44e24766c2b8f2748839e4c29. [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_enemy1.ogg.import b/musica/scavengers_enemy1.ogg.import index b6e1294..c77c459 100644 --- a/musica/scavengers_enemy1.ogg.import +++ b/musica/scavengers_enemy1.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_enemy1.ogg-90c2b54c814fdf74d3f6510c38cc5a [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_enemy2.ogg.import b/musica/scavengers_enemy2.ogg.import index 8756832..3f6fc1b 100644 --- a/musica/scavengers_enemy2.ogg.import +++ b/musica/scavengers_enemy2.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_enemy2.ogg-475454d479de76f7c1d703ceffa018 [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_footstep1.ogg.import b/musica/scavengers_footstep1.ogg.import index efc579f..bdd5515 100644 --- a/musica/scavengers_footstep1.ogg.import +++ b/musica/scavengers_footstep1.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_footstep1.ogg-f550c0146a892007838f885281f [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_footstep2.ogg.import b/musica/scavengers_footstep2.ogg.import index 9ac1c44..f007bcb 100644 --- a/musica/scavengers_footstep2.ogg.import +++ b/musica/scavengers_footstep2.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_footstep2.ogg-6b6027db77ebfccd3a8e1c3f38a [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_fruit1.ogg.import b/musica/scavengers_fruit1.ogg.import index ce5c58a..4e6632d 100644 --- a/musica/scavengers_fruit1.ogg.import +++ b/musica/scavengers_fruit1.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_fruit1.ogg-0a61d5fc85a8013d9c48157820e1bd [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_fruit2.ogg.import b/musica/scavengers_fruit2.ogg.import index f9e077f..a3b36ba 100644 --- a/musica/scavengers_fruit2.ogg.import +++ b/musica/scavengers_fruit2.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_fruit2.ogg-67a643fb9527e5e3a036e3b586fca1 [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_music.wav.import b/musica/scavengers_music.wav.import index 036160a..dd8b890 100644 --- a/musica/scavengers_music.wav.import +++ b/musica/scavengers_music.wav.import @@ -17,5 +17,5 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=false edit/normalize=false -edit/loop=false +edit/loop=true compress/mode=0 diff --git a/musica/scavengers_soda1.ogg.import b/musica/scavengers_soda1.ogg.import index b07b560..84980f1 100644 --- a/musica/scavengers_soda1.ogg.import +++ b/musica/scavengers_soda1.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_soda1.ogg-629764a09efbfb7a70d4eea16fcc591 [params] -loop=true +loop=false loop_offset=0 diff --git a/musica/scavengers_soda2.ogg.import b/musica/scavengers_soda2.ogg.import index d0dfc33..6116405 100644 --- a/musica/scavengers_soda2.ogg.import +++ b/musica/scavengers_soda2.ogg.import @@ -11,5 +11,5 @@ dest_files=[ "res://.import/scavengers_soda2.ogg-ae322ce00ae7133846e505a65507de8 [params] -loop=true +loop=false loop_offset=0