From fd8d1ba292e2c7d8040e8fa9efc1a00efa9ca7d6 Mon Sep 17 00:00:00 2001 From: adrien Date: Tue, 27 Aug 2024 01:57:17 +0200 Subject: [PATCH] just shot --- app.js | 83 ++++++++++++++++++++++++++++++++++----------------- img/note.png | Bin 25136 -> 25834 bytes 2 files changed, 56 insertions(+), 27 deletions(-) diff --git a/app.js b/app.js index 5e91539..8e82335 100644 --- a/app.js +++ b/app.js @@ -147,10 +147,11 @@ class Cannon extends Sprite { class Note extends Sprite { - constructor(canvasCtx, note, duration, sx, sy, width, height, frames, shotAnimationPeriod) { + constructor(canvasCtx, note, duration, velocity, sx, sy, width, height, frames, shotAnimationPeriod) { super(canvasCtx, "note.png", 34 * (note - FIRST_NOTE) + 66, -40, width, height, frames, 1) this.note = note this.duration = duration + this.velocity = velocity this.sx = sx this.sy = sy this.shotAnimationPeriod = shotAnimationPeriod @@ -159,18 +160,13 @@ class Note extends Sprite { } animate() { - if (this.shot) { - this.frame = Math.floor(this.time/this.shotAnimationPeriod) % this.frames - } else { - this.frame = Math.floor(this.time/10) % this.frames - } + this.frame = Math.floor(this.time/10) % this.frames this.time++ } draw() { - if (this.shot && this.frame == 1) { + if (this.shot) { this.drawShot() - this.animate() } else { super.draw() } @@ -181,52 +177,65 @@ class Note extends Sprite { } explose() { - playNoise(0.3, 0.4, 1400) return new Sprite(this.canvasCtx, "tiny-explosion.png", this.x, this.y, 16, 16, 7) } + + playNoise() { + playNoise(0.3, 0.4, 1400) + } } class Sixteenth extends Note { - constructor(canvasCtx, note, duration) { - super(canvasCtx, note, duration, 21, 0, 21, 32, 2, 2) + constructor(canvasCtx, note, duration, velocity) { + super(canvasCtx, note, duration, velocity, 21, 0, 21, 32, 2, 2) } } class Eighth extends Note { - constructor(canvasCtx, note, duration) { - super(canvasCtx, note, duration, 42, 0, 21, 32, 2, 2) + constructor(canvasCtx, note, duration, velocity) { + super(canvasCtx, note, duration, velocity, 42, 0, 21, 32, 2, 2) } } class Quarter extends Note { - constructor(canvasCtx, note, duration) { - super(canvasCtx, note, duration, 36, 32, 28, 68, 2, 4) + constructor(canvasCtx, note, duration, velocity) { + super(canvasCtx, note, duration, velocity, 34, 33, 30, 66, 2, 4) } drawShot() { - canvasCtx.drawImage(this.sprite, 0, 40, 34, 37, this.dx+2, this.dy+16, 34, 37) + canvasCtx.drawImage(this.sprite, 0, 34, 35, 67, this.dx, this.dy, 35, 67) } explose() { - playNoise(0.5, 0.5, 1000) return new Sprite(this.canvasCtx, "little-explosion.png", this.x, this.y, 33, 33, 5) } + + playNoise() { + playNoise(0.5, 0.5, 1000) + } } class Whole extends Note { - constructor(canvasCtx, note, duration) { - super(canvasCtx, note, duration, 0, 78, 36, 40, 1) + constructor(canvasCtx, note, duration, velocity) { + super(canvasCtx, note, duration, velocity, 36, 99, 36, 40, 1) } animate() {} + drawShot() { + canvasCtx.drawImage(this.sprite, 0, this.sy, this.sWidth, this.sHeight, this.dx, this.dy, this.dWidth, this.dHeight) + } + explose() { - playNoise(0.8, 0.7, 400) return new Sprite(canvasCtx, "big-explosion.png", this.x, this.y, 48, 48, 8) } + + playNoise() { + playNoise(0.8, 0.7, 400) + } } @@ -447,14 +456,16 @@ function update() { let explosionSprite = noteSprite.explose() explosionSprites.push(explosionSprite) explosionSprite.play().then(() => explosionSprites.remove(explosionSprite)) + noteSprite.playNoise() }) noteSprites = noteSprites.filter(note => note.y < FLOOR) - cannonSprites.forEach(cannonSprite => { + /*cannonSprites.forEach(cannonSprite => { let noteSprite = noteSprites.find(noteSprite => noteSprite.note == cannonSprite.note) if (noteSprite) { noteSprite.shot = cannonSprite.shooting if (noteSprite.shot) { + noteSprite.duration -= UPDATE_PERIOD if (noteSprite.duration > 0) { playNote(cannonSprite.note) @@ -473,10 +484,23 @@ function update() { stopNote(cannonSprite.note) cannonSprite.impactY = 0 } + })*/ + cannonSprites.filter(cannonSprite => cannonSprite.shooting).forEach(cannonSprite => { + let noteSprite = noteSprites.find(noteSprite => noteSprite.note == cannonSprite.note) + if (noteSprite) { + playNote(noteSprite.note, noteSprite.velocity, noteSprite.duration) + noteSprite.shot = true + window.setTimeout(() => { + noteSprites.remove(noteSprite) + let explosionSprite = noteSprite.explose() + explosionSprites.push(explosionSprite) + explosionSprite.play().then(() => explosionSprites.remove(explosionSprite)) + }, noteSprite.duration * 1000) + } }) } -function playNote(note, velocity=0.7) { +function playNote(note, velocity=0.7, duration=0) { if(oscillators[note]) return var oscillator = audioCtx.createOscillator() @@ -492,17 +516,22 @@ function playNote(note, velocity=0.7) { depth.connect(oscillator.detune) - oscillators[note] = oscillator + if (duration) { + oscillator.velocity.gain.setValueCurveAtTime([velocity, velocity/10, velocity/20, 0], audioCtx.currentTime + duration, 0.5) + oscillator.stop(audioCtx.currentTime + duration + 0.6) + } else { + oscillators[note] = oscillator + } } -function stopNote(note) { +function stopNote(note, delay=0) { if(!oscillators[note]) return velocity = oscillators[note].velocity.gain.value - oscillators[note].velocity.gain.setValueCurveAtTime([velocity, velocity/10, velocity/20, 0], audioCtx.currentTime + 0.1, 0.5) - oscillators[note].stop(audioCtx.currentTime + 0.6) + oscillators[note].velocity.gain.setValueCurveAtTime([velocity, velocity/10, velocity/20, 0], audioCtx.currentTime + delay + 0.1, 0.5) + oscillators[note].stop(audioCtx.currentTime + delay + 0.6) - delete(oscillators[note]) + delete(oscillators[note]) } function playNoise(noiseDuration, startGain=0.5, bandHz=1000) { diff --git a/img/note.png b/img/note.png index 1d89d45749fa73b5a77a8514701ff43d498f3ced..4ed2178057ca7c0323041637c6cf2bc031c547ea 100644 GIT binary patch delta 20441 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 Dv*R=z delta 19769 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