From 810e07cc446b527f01bf906fd187b75fd42a5cf6 Mon Sep 17 00:00:00 2001 From: trivernis Date: Sat, 19 Nov 2022 16:48:30 +0100 Subject: [PATCH 1/3] Add foodsteps --- .../sounds/effects/steps/steps_indoor_1.mp3 | Bin 0 -> 2996 bytes .../sounds/effects/steps/steps_indoor_2.mp3 | Bin 0 -> 3716 bytes .../sounds/effects/steps/steps_indoor_3.mp3 | Bin 0 -> 2996 bytes assets/sounds/effects/steps_indoor.mp3 | Bin 3212 -> 0 bytes .../src/main/kotlin/com/last/commit/Player.kt | 12 +++++-- .../com/last/commit/audio/GameSoundEffect.kt | 8 ++++- .../com/last/commit/audio/SoundEngine.kt | 32 +++++++++--------- 7 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 assets/sounds/effects/steps/steps_indoor_1.mp3 create mode 100644 assets/sounds/effects/steps/steps_indoor_2.mp3 create mode 100644 assets/sounds/effects/steps/steps_indoor_3.mp3 delete mode 100644 assets/sounds/effects/steps_indoor.mp3 diff --git a/assets/sounds/effects/steps/steps_indoor_1.mp3 b/assets/sounds/effects/steps/steps_indoor_1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..14a9874525b522a9d25b451be9acb14facd5875d GIT binary patch literal 2996 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 SfbRFd_A7>8fAs$&)qesZlwqp? literal 0 HcmV?d00001 diff --git a/assets/sounds/effects/steps/steps_indoor_3.mp3 b/assets/sounds/effects/steps/steps_indoor_3.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..02dbf87f6232b0747f9d0e6dd62675b8c8ced573 GIT binary patch literal 2996 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 500) { + gameState.soundEngine.play(GameSoundEffect.STEPS_INDOOR, 0.5f) + lastStep = System.currentTimeMillis() + } + } } private fun updatePosition(v: Vector2, delta: Float) { diff --git a/core/src/main/kotlin/com/last/commit/audio/GameSoundEffect.kt b/core/src/main/kotlin/com/last/commit/audio/GameSoundEffect.kt index 424ce22..c45673d 100644 --- a/core/src/main/kotlin/com/last/commit/audio/GameSoundEffect.kt +++ b/core/src/main/kotlin/com/last/commit/audio/GameSoundEffect.kt @@ -4,7 +4,13 @@ import com.last.commit.audio.GameSound public class GameSoundEffect(name: String): GameSound(name) { companion object { - val STEPS_INDOOR = GameSoundEffect("steps_indoor.mp3") + val STEPS_INDOOR: GameSoundEffect + get() = listOf( + GameSoundEffect("steps/steps_indoor_1.mp3"), + GameSoundEffect("steps/steps_indoor_2.mp3"), + GameSoundEffect("steps/steps_indoor_3.mp3"), + ).random() + val DOOR_OPEN = GameSoundEffect("door_open.mp3") val DOOR_CLOSE = GameSoundEffect("door_close.mp3") } diff --git a/core/src/main/kotlin/com/last/commit/audio/SoundEngine.kt b/core/src/main/kotlin/com/last/commit/audio/SoundEngine.kt index cb674d0..d1dd402 100644 --- a/core/src/main/kotlin/com/last/commit/audio/SoundEngine.kt +++ b/core/src/main/kotlin/com/last/commit/audio/SoundEngine.kt @@ -1,18 +1,17 @@ -package com.last.commit.audio; +package com.last.commit.audio import com.badlogic.gdx.Gdx -import com.badlogic.gdx.audio.Sound import com.badlogic.gdx.audio.Music -import com.last.commit.audio.GameSound -import com.last.commit.audio.GameMusic - +import com.badlogic.gdx.audio.Sound public class SoundEngine { - private val sounds: HashMap = HashMap() - private val musicTracks: HashMap = HashMap() - - public fun play(gameSound: GameSound, volume: Float = 1f) { + private val sounds: ThreadLocal> = + ThreadLocal.withInitial() { HashMap() } + private val musicTracks: ThreadLocal> = + ThreadLocal.withInitial() { HashMap() } + + fun play(gameSound: GameSound, volume: Float = 1f) { if (gameSound is GameSoundEffect) { val sound = loadEffect(gameSound.name) sound.play(volume) @@ -24,28 +23,29 @@ public class SoundEngine { music.play() } } - - private fun loadEffect(name: String): Sound { + + private fun loadEffect(name: String): Sound { return loadSound("effects/$name") } private fun loadMusic(name: String): Music { - var music = musicTracks.get(name) + var music = musicTracks.get().get(name) + if (music == null) { println("Loading sound $name") - music = Gdx.audio.newMusic(Gdx.files.internal("sounds/music/$name")) - musicTracks[name] = music + music = Gdx.audio.newMusic(Gdx.files.internal("sounds/music/$name")) + musicTracks.get()[name] = music } return music!! } private fun loadSound(name: String): Sound { - var sound = sounds.get(name) + var sound = sounds.get().get(name) if (sound == null) { println("Loading sound $name") sound = Gdx.audio.newSound(Gdx.files.internal("sounds/$name")) - sounds[name] = sound + sounds.get()[name] = sound } return sound!! From 0404964b848bc7692a5c5dfe324a61f959a45c67 Mon Sep 17 00:00:00 2001 From: trivernis Date: Sat, 19 Nov 2022 17:01:26 +0100 Subject: [PATCH 2/3] Add time travel sound --- assets/sounds/effects/time_travel.mp3 | Bin 0 -> 29119 bytes .../com/last/commit/audio/GameSoundEffect.kt | 1 + .../main/kotlin/com/last/commit/map/TimeMap.kt | 3 +++ 3 files changed, 4 insertions(+) create mode 100644 assets/sounds/effects/time_travel.mp3 diff --git a/assets/sounds/effects/time_travel.mp3 b/assets/sounds/effects/time_travel.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9543b3e9f41b76fcce20da711577471d0721bc8a GIT binary patch literal 29119 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 Z?+D|RG6Mc16AOn1-6uu=yZ-+Z_&-VT#SZ`g literal 0 HcmV?d00001 diff --git a/core/src/main/kotlin/com/last/commit/audio/GameSoundEffect.kt b/core/src/main/kotlin/com/last/commit/audio/GameSoundEffect.kt index c45673d..747daff 100644 --- a/core/src/main/kotlin/com/last/commit/audio/GameSoundEffect.kt +++ b/core/src/main/kotlin/com/last/commit/audio/GameSoundEffect.kt @@ -13,5 +13,6 @@ public class GameSoundEffect(name: String): GameSound(name) { val DOOR_OPEN = GameSoundEffect("door_open.mp3") val DOOR_CLOSE = GameSoundEffect("door_close.mp3") + val TIME_TRAVEL = GameSoundEffect("time_travel.mp3") } } \ No newline at end of file diff --git a/core/src/main/kotlin/com/last/commit/map/TimeMap.kt b/core/src/main/kotlin/com/last/commit/map/TimeMap.kt index 1f7627b..1553f3b 100644 --- a/core/src/main/kotlin/com/last/commit/map/TimeMap.kt +++ b/core/src/main/kotlin/com/last/commit/map/TimeMap.kt @@ -14,6 +14,7 @@ import com.badlogic.gdx.utils.Array import com.last.commit.Collidable import com.last.commit.Player import com.last.commit.Wall +import com.last.commit.audio.GameSoundEffect import Position import GameState @@ -50,6 +51,7 @@ class TimeMap(fileName: String, val state: GameState) { for (teleporter in teleporters) { if (teleporter is RectangleMapObject) { if (teleporter.rectangle.contains(player.getX(), player.getY())) { + state.soundEngine.play(GameSoundEffect.TIME_TRAVEL) val targetMap = teleporter.properties.get("target", String::class.java) System.out.println("Teleporting to targetMap $targetMap") map = mapLoader.load("tiled/$targetMap") @@ -67,6 +69,7 @@ class TimeMap(fileName: String, val state: GameState) { fun getPlayerSpawn(): Vector2 { val mapLayers = map.layers val spawnPoints = mapLayers["Spawnpoints"].objects + for (spawnPoint in spawnPoints) { val spawnPointProperties = spawnPoint.properties if (spawnPointProperties != null && spawnPointProperties.containsKey("playerSpawn")) { From 2a4820db24ae8784da7e91ce4303a3313013d8b6 Mon Sep 17 00:00:00 2001 From: trivernis Date: Sat, 19 Nov 2022 17:18:09 +0100 Subject: [PATCH 3/3] Add grab sound effect --- assets/sounds/effects/grab.mp3 | Bin 0 -> 8476 bytes .../com/last/commit/audio/GameSoundEffect.kt | 1 + .../kotlin/com/last/commit/map/Collectible.kt | 2 ++ 3 files changed, 3 insertions(+) create mode 100644 assets/sounds/effects/grab.mp3 diff --git a/assets/sounds/effects/grab.mp3 b/assets/sounds/effects/grab.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..260841a9145e5c8822fe3eaf30fa811744b2d91e GIT binary patch literal 8476 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