boom sound for the bomb

This commit is contained in:
minjaesong
2024-02-14 16:59:01 +09:00
parent c66f5cbb54
commit c84e01646c
13 changed files with 64 additions and 30 deletions

View File

@@ -1,9 +1,10 @@
package net.torvald.terrarum.modulebasegame.gameactors
import com.badlogic.gdx.Gdx
import net.torvald.spriteanimation.SingleImageSprite
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.INGAME
import net.torvald.terrarum.Second
import net.torvald.terrarum.*
import net.torvald.terrarum.audio.MusicContainer
import net.torvald.terrarum.audio.decibelsToFullscale
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameactors.PhysProperties
import net.torvald.terrarum.modulebasegame.ExplosionManager
@@ -19,6 +20,7 @@ open class ActorPrimedBomb(
init {
renderOrder = RenderOrder.MIDTOP
physProp = PhysProperties.PHYSICS_OBJECT()
elasticity = 0.34
}
protected constructor() : this(1f, 1f) {
@@ -26,17 +28,37 @@ open class ActorPrimedBomb(
physProp = PhysProperties.PHYSICS_OBJECT()
}
private var explosionCalled = false
@Transient private val boomSound = MusicContainer(
"boom", ModMgr.getFile("basegame", "audio/effects/explosion/bang_bomb.ogg")
) {
this.flagDespawn()
}
override fun updateImpl(delta: Float) {
super.updateImpl(delta)
fuse -= delta
if (fuse <= 0f) {
if (fuse <= 0f && !explosionCalled) {
explosionCalled = true
physProp.usePhysics = false
ExplosionManager.goBoom(INGAME.world, intTilewiseHitbox.centeredX.toInt(), intTilewiseHitbox.centeredY.toInt(), explosionPower)
flagDespawn()
this.isVisible = false // or play explosion anim
startAudio(boomSound, 10.0)
ExplosionManager.goBoom(INGAME.world, intTilewiseHitbox.centeredX.toInt(), intTilewiseHitbox.centeredY.toInt(), explosionPower) {
}
}
}
override fun dispose() {
super.dispose()
boomSound.dispose()
}
}

View File

@@ -60,11 +60,7 @@ class FixtureFurnaceAndAnvil : FixtureBase, CraftingStation {
}
}
@Transient val static = MusicContainer("bonfire", ModMgr.getFile("basegame", "audio/effects/static/bonfire.ogg"), Gdx.audio.newMusic(
ModMgr.getGdxFile("basegame", "audio/effects/static/bonfire.ogg")
).also {
it.isLooping = true
})
@Transient val static = MusicContainer("bonfire", ModMgr.getFile("basegame", "audio/effects/static/bonfire.ogg"), true)
@Transient override var lightBoxList = arrayListOf(Lightbox(Hitbox(0.0, 0.0, TerrarumAppConfiguration.TILE_SIZED * 2, TerrarumAppConfiguration.TILE_SIZED * 2), Cvec(0.5f, 0.18f, 0f, 0f)))

View File

@@ -127,7 +127,7 @@ class FixtureJukebox : Electric, PlaysMusic {
printdbg(this, "Title: $title, artist: $artist")
musicNowPlaying = MusicContainer(title, musicFile.file(), Gdx.audio.newMusic(musicFile)) {
musicNowPlaying = MusicContainer(title, musicFile.file()) {
unloadEffector(musicNowPlaying)
discCurrentlyPlaying = null
musicNowPlaying?.gdxMusic?.tryDispose()

View File

@@ -119,7 +119,7 @@ class FixtureMusicalTurntable : Electric, PlaysMusic {
App.printdbg(this, "Title: $title, artist: $artist")
musicNowPlaying = MusicContainer(title, musicFile.file(), Gdx.audio.newMusic(musicFile)) {
musicNowPlaying = MusicContainer(title, musicFile.file()) {
unloadEffector(musicNowPlaying)
musicNowPlaying?.gdxMusic?.tryDispose()
musicNowPlaying = null

View File

@@ -81,12 +81,7 @@ class FixtureSmelterBasic : FixtureBase, CraftingStation {
this.mainUI = UISmelterBasic(this)
}
@Transient val static = MusicContainer("bonfire", ModMgr.getFile("basegame", "audio/effects/static/bonfire.ogg"), Gdx.audio.newMusic(
ModMgr.getGdxFile("basegame", "audio/effects/static/bonfire.ogg")
).also {
it.isLooping = true
})
@Transient val static = MusicContainer("bonfire", ModMgr.getFile("basegame", "audio/effects/static/bonfire.ogg"), true)
@Transient val light = Cvec(0.5f, 0.18f, 0f, 0f)
@Transient override var lightBoxList = arrayListOf(Lightbox(Hitbox(0.0, 2*TILE_SIZED, TILE_SIZED * 2, TILE_SIZED * 2), Cvec(0.5f, 0.18f, 0f, 0f)))