From 0815a5235d226434e17ead0166227f5ec60133b8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 7 Jan 2024 09:24:04 +0900 Subject: [PATCH] tweak game --- .../assets/drop-and-fusion/dropper.png | Bin 0 -> 32415 bytes .../assets/drop-and-fusion/frame-dark.svg | 28 ++++++ .../assets/drop-and-fusion/frame-light.svg | 28 ++++++ .../frontend/assets/drop-and-fusion/frame.svg | 25 ------ .../frontend/src/pages/drop-and-fusion.vue | 80 ++++++++++++++---- 5 files changed, 120 insertions(+), 41 deletions(-) create mode 100644 packages/frontend/assets/drop-and-fusion/dropper.png create mode 100644 packages/frontend/assets/drop-and-fusion/frame-dark.svg create mode 100644 packages/frontend/assets/drop-and-fusion/frame-light.svg delete mode 100644 packages/frontend/assets/drop-and-fusion/frame.svg diff --git a/packages/frontend/assets/drop-and-fusion/dropper.png b/packages/frontend/assets/drop-and-fusion/dropper.png new file mode 100644 index 0000000000000000000000000000000000000000..f4300aa5c06f6001a87c01f8525847b294f43be3 GIT binary patch literal 32415 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 I=akR{02N9P_y7O^ literal 0 HcmV?d00001 diff --git a/packages/frontend/assets/drop-and-fusion/frame-dark.svg b/packages/frontend/assets/drop-and-fusion/frame-dark.svg new file mode 100644 index 0000000000..3fa7c0da81 --- /dev/null +++ b/packages/frontend/assets/drop-and-fusion/frame-dark.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/assets/drop-and-fusion/frame-light.svg b/packages/frontend/assets/drop-and-fusion/frame-light.svg new file mode 100644 index 0000000000..6052ccbaa0 --- /dev/null +++ b/packages/frontend/assets/drop-and-fusion/frame-light.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/assets/drop-and-fusion/frame.svg b/packages/frontend/assets/drop-and-fusion/frame.svg deleted file mode 100644 index 4276dae833..0000000000 --- a/packages/frontend/assets/drop-and-fusion/frame.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/frontend/src/pages/drop-and-fusion.vue b/packages/frontend/src/pages/drop-and-fusion.vue index d0ca5157ef..7f4a885b44 100644 --- a/packages/frontend/src/pages/drop-and-fusion.vue +++ b/packages/frontend/src/pages/drop-and-fusion.vue @@ -11,7 +11,8 @@ SPDX-License-Identifier: AGPL-3.0-only
- SCORE: +
SCORE:
+
HIGH SCORE: -
@@ -33,7 +34,8 @@ SPDX-License-Identifier: AGPL-3.0-only
- + +
{{ comboPrev }} Chain!
+ (); const canvasEl = shallowRef(); @@ -191,7 +196,7 @@ const FRUITS = [{ const GAME_WIDTH = 450; const GAME_HEIGHT = 600; -const PHYSICS_QUALITY_FACTOR = 32; // 低いほどパフォーマンスが高いがガタガタして安定しなくなる +const PHYSICS_QUALITY_FACTOR = 16; // 低いほどパフォーマンスが高いがガタガタして安定しなくなる、逆に高すぎても何故か不安定になる let viewScaleX = 1; let viewScaleY = 1; @@ -203,6 +208,7 @@ const comboPrev = ref(0); const dropReady = ref(true); const gameOver = ref(false); const gameStarted = ref(false); +const highScore = ref(null); class Game extends EventEmitter<{ changeScore: (score: number) => void; @@ -251,6 +257,8 @@ class Game extends EventEmitter<{ this.emit('changeScore', value); } + private comboIntervalId: number | null = null; + constructor() { super(); @@ -294,6 +302,8 @@ class Game extends EventEmitter<{ //#region walls const WALL_OPTIONS: Matter.IChamferableBodyDefinition = { isStatic: true, + friction: 0.7, + slop: 1.0, render: { strokeStyle: 'transparent', fillStyle: 'transparent', @@ -308,7 +318,7 @@ class Game extends EventEmitter<{ ]); //#endregion - this.overflowCollider = Matter.Bodies.rectangle(GAME_WIDTH / 2, 0, GAME_WIDTH, 125, { + this.overflowCollider = Matter.Bodies.rectangle(GAME_WIDTH / 2, 0, GAME_WIDTH, 200, { isStatic: true, isSensor: true, render: { @@ -328,11 +338,13 @@ class Game extends EventEmitter<{ private createBody(fruit: typeof FRUITS[number], x: number, y: number) { return Matter.Bodies.circle(x, y, fruit.size / 2, { label: fruit.id, - density: 0.0005, + //density: 0.0005, + density: fruit.size / 1000, + restitution: 0.2, frictionAir: 0.01, - restitution: 0.4, - friction: 0.5, + friction: 0.7, frictionStatic: 5, + slop: 1.0, //mass: 0, render: { sprite: { @@ -372,7 +384,7 @@ class Game extends EventEmitter<{ this.activeBodyIds.push(body.id); }, 100); - const additionalScore = Math.round(currentFruit.score * (1 + (this.combo / 3))); + const additionalScore = Math.round(currentFruit.score * (1 + ((this.combo - 1) / 3))); this.score += additionalScore; const pan = ((newX / GAME_WIDTH) - 0.5) * 2; @@ -449,7 +461,7 @@ class Game extends EventEmitter<{ } }); - window.setInterval(() => { + this.comboIntervalId = window.setInterval(() => { if (this.latestFusionedAt < Date.now() - this.COMBO_INTERVAL) { this.combo = 0; } @@ -469,7 +481,7 @@ class Game extends EventEmitter<{ this.emit('changeStock', this.stock); const x = Math.min(GAME_WIDTH - this.PLAYAREA_MARGIN - (st.fruit.size / 2), Math.max(this.PLAYAREA_MARGIN + (st.fruit.size / 2), _x)); - const body = this.createBody(st.fruit, x, st.fruit.size / 2); + const body = this.createBody(st.fruit, x, 50 + st.fruit.size / 2); Matter.Composite.add(this.engine.world, body); this.activeBodyIds.push(body.id); this.latestDroppedBodyId = body.id; @@ -480,6 +492,7 @@ class Game extends EventEmitter<{ } public dispose() { + if (this.comboIntervalId) window.clearInterval(this.comboIntervalId); Matter.Render.stop(this.render); Matter.Runner.stop(this.runner); Matter.World.clear(this.engine.world, false); @@ -567,10 +580,28 @@ function attachGame() { currentPick.value = null; dropReady.value = false; gameOver.value = true; + + if (score.value > (highScore.value ?? 0)) { + highScore.value = score.value; + + misskeyApi('i/registry/set', { + scope: ['dropAndFusionGame'], + key: 'highScore', + value: highScore.value, + }); + } }); } -onMounted(() => { +onMounted(async () => { + try { + highScore.value = await misskeyApi('i/registry/get', { + scope: ['dropAndFusionGame'], + key: 'highScore', + }); + } catch (err) { + } + game = new Game(); attachGame(); @@ -667,7 +698,9 @@ definePageMetadata({ top: 0; left: 0; width: 100%; - filter: drop-shadow(0 6px 16px #0007); + // なんかiOSでちらつく + //filter: drop-shadow(0 6px 16px #0007); + border-radius: 16px; pointer-events: none; user-select: none; } @@ -699,13 +732,28 @@ definePageMetadata({ text-align: center; font-weight: bold; font-style: oblique; + color: #fff; + -webkit-text-stroke: 1px rgb(255, 145, 0); + text-shadow: 0 0 6px #0005; pointer-events: none; user-select: none; } .currentFruit { position: absolute; - margin-top: 20px; + margin-top: 80px; + z-index: 2; + filter: drop-shadow(0 6px 16px #0007); + pointer-events: none; + user-select: none; +} + +.dropper { + position: absolute; + top: 0; + width: 70px; + margin-top: -10px; + margin-left: -30px; z-index: 2; filter: drop-shadow(0 6px 16px #0007); pointer-events: none; @@ -714,7 +762,7 @@ definePageMetadata({ .currentFruitArrow { position: absolute; - margin-top: 20px; + margin-top: 100px; z-index: 3; animation: currentFruitArrow 2s ease infinite; pointer-events: none; @@ -723,10 +771,10 @@ definePageMetadata({ .dropGuide { position: absolute; - top: 50px; + top: 120px; z-index: 3; width: 3px; - height: calc(100% - 50px); + height: calc(100% - 120px); background: #f002; pointer-events: none; user-select: none;