From f54f449b891238171e49984ac3f257d2a9010a43 Mon Sep 17 00:00:00 2001 From: nadiarvi Date: Sat, 10 May 2025 16:39:19 +0900 Subject: [PATCH] fix flag: go through instead of collision --- src/components/Flag.js | 2 +- src/scenes/lvl3.js | 25 ++++++++++++++++--------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/components/Flag.js b/src/components/Flag.js index 1337e9e..978a4d8 100644 --- a/src/components/Flag.js +++ b/src/components/Flag.js @@ -24,7 +24,7 @@ export class Flag { this.y - this.size * 0.8, this.size, this.size, - "dynamic" + "none" ); this.sprite.layer = -1; this.sprite.spriteSheet = img; diff --git a/src/scenes/lvl3.js b/src/scenes/lvl3.js index c0b33d9..e1ba599 100644 --- a/src/scenes/lvl3.js +++ b/src/scenes/lvl3.js @@ -175,19 +175,26 @@ export default function Level3() { _checkKeyObtained(cat, key, keys, flag); if (key && !key.obtained) key.draw(); - if (cat.sprite && flag.sprite) { - if (key && key.getObtain()) { - flag.setColliderMode('none'); + // if (cat.sprite && flag.sprite) { + // if (key && key.getObtain()) { + // flag.setColliderMode('none'); - if (cat.sprite.overlaps(flag.sprite)) { + // if (cat.sprite.overlaps(flag.sprite)) { + // levelFinished = true; + // }; + // } else { + // flag.setColliderMode('static'); + // } + // }; + + if (cat.sprite && flag.sprite) { + // Only finish if key is obtained + if (cat.sprite.overlaps(flag.sprite) && key && key.obtained) { levelFinished = true; - }; - } else { - flag.setColliderMode('static'); } }; - if (levelFinished) _finishGame(nextButton); + if (levelFinished) _drawFinishGame(nextButton); }; this.onResize = () => { @@ -325,7 +332,7 @@ function _checkKeyObtained(cat, key, keys, flag) { } } -function _finishGame(nextButton){ +function _drawFinishGame(nextButton){ push(); fill(35, 20, 45, 190); rectMode(CORNER);