From cb0e699612c438c0374bf48996f30ee3ab7a91e0 Mon Sep 17 00:00:00 2001 From: daisyzhang2024 Date: Wed, 14 Feb 2024 13:56:42 -0800 Subject: [PATCH 01/11] not sure what i did --- assets/js/platformer2/speedup.js | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 assets/js/platformer2/speedup.js diff --git a/assets/js/platformer2/speedup.js b/assets/js/platformer2/speedup.js new file mode 100644 index 0000000..d4ce8a8 --- /dev/null +++ b/assets/js/platformer2/speedup.js @@ -0,0 +1,46 @@ +import Character from './Character.js'; +import GameEnv from './GameEnv.js'; +import Player from './Player.js'; +export class speedup extends Character { + // constructors sets up Character object + constructor(canvas, image, data, xPercentage, minPosition){ + super(canvas, image, data ); + + //Initial Position of speedup item + this.x = xPercentage * GameEnv.innerWidth; + + + + } + + update() { + super.update(); + // Add any other update logic here + + } + collisionAction() { + + if (this.collisionData.touchPoints.other.id === "player") { + // Collision: Top of Goomba with Bottom of Player + if (this.collisionData.touchPoints.other.bottom) { + this.destroy(); + console.log("working as intended") + } + if (this.collisionData.touchPoints.other.id === "player") { + if (this.collisionData.touchPoints.other.left || this.collisionData.touchPoints.other.right) { + this.destroy(); + console.log("working as intended") + + } + } + var y = document.getElementById("cut-story"); + y.innerHTML = "(=´∀`)人(´∀`=) ~motivational high five!~"; + } +} + + + + +} + +export default speedup; \ No newline at end of file From cc663121216b33cacc09e683b4b5f369a05b0b60 Mon Sep 17 00:00:00 2001 From: maryamabdul-aziz Date: Wed, 14 Feb 2024 14:35:13 -0800 Subject: [PATCH 02/11] justin added comments via my computer or something --- assets/js/platformer2/Player.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/assets/js/platformer2/Player.js b/assets/js/platformer2/Player.js index 305f9ce..e995e6e 100644 --- a/assets/js/platformer2/Player.js +++ b/assets/js/platformer2/Player.js @@ -226,6 +226,7 @@ export class Player extends Character { * @override */ collisionAction() { + // Tube collision check if (this.collisionData.touchPoints.other.id === "tube") { // Collision with the left side of the Tube if (this.collisionData.touchPoints.other.left) { @@ -253,6 +254,7 @@ export class Player extends Character { this.movement.right = true; } + // Tree collision check if (this.collisionData.touchPoints.other.id === "tree") { // Collision with the left side of the tree if (this.collisionData.touchPoints.other.left) { @@ -280,6 +282,7 @@ export class Player extends Character { this.movement.right = true; } + // Goomba collision check // Checks if collision touchpoint id is either "goomba" or "flyingGoomba" if (this.collisionData.touchPoints.other.id === "goomba" || this.collisionData.touchPoints.other.id === "flyingGoomba") { if (GameEnv.invincible === false) { @@ -294,11 +297,14 @@ export class Player extends Character { // Collision with the right side of the Enemy } } + + // Mushroom collision checks if (this.collisionData.touchPoints.other.id === "mushroom") { this.canvas.style.filter = 'invert(1)'; GameEnv.true = true; } - + + // Block collision checks if (this.collisionData.touchPoints.other.id === "jumpPlatform") { if (this.collisionData.touchPoints.other.left) { this.movement.right = false; @@ -316,17 +322,14 @@ export class Player extends Character { this.gravityEnabled = false; // this.y -= GameEnv.gravity; this.setAnimation(this.directionKey); // set animation to direction - }} - + } + } // Fall Off edge of Jump platform else if (this.movement.down === false) { this.movement.down = true; this.gravityEnabled = true; } } - - - /** * Handles the keydown event. From 6e14bcc0bbcb7309ea123840229fe273b1cdbba9 Mon Sep 17 00:00:00 2001 From: Gabriel-Gravin Date: Thu, 15 Feb 2024 13:16:15 -0800 Subject: [PATCH 03/11] added personal repo to about page --- navigation/about.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navigation/about.md b/navigation/about.md index c17fd99..745313c 100644 --- a/navigation/about.md +++ b/navigation/about.md @@ -18,7 +18,7 @@ permalink: /about/ Ryan - Gabriel + Gabriel Daniel Maryam Trystan From 97b26138cf0a3bb3bb61aaeec7ba3427c31b3560 Mon Sep 17 00:00:00 2001 From: katiek27 Date: Thu, 15 Feb 2024 13:16:18 -0800 Subject: [PATCH 04/11] katies personal blog is in! --- navigation/about.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navigation/about.md b/navigation/about.md index 745313c..c3795fa 100644 --- a/navigation/about.md +++ b/navigation/about.md @@ -32,7 +32,7 @@ permalink: /about/ Nathan - Katie + Katie Justin Zidane Ian From a04158d992e15495655c7502d9def079b5f797d6 Mon Sep 17 00:00:00 2001 From: maryamabdul-aziz Date: Thu, 15 Feb 2024 13:21:54 -0800 Subject: [PATCH 05/11] added coin + coin sound --- _posts/2024-01-08-CSSE-oop-game-levels2.md | 3 ++ assets/audio/coin.mp3 | Bin 0 -> 42092 bytes assets/js/platformer2/Audio4.js | 10 +++++++ assets/js/platformer2/Coin.js | 33 +++++++++++---------- assets/js/platformer2/GameSetup.js | 4 +++ 5 files changed, 34 insertions(+), 16 deletions(-) create mode 100644 assets/audio/coin.mp3 create mode 100644 assets/js/platformer2/Audio4.js diff --git a/_posts/2024-01-08-CSSE-oop-game-levels2.md b/_posts/2024-01-08-CSSE-oop-game-levels2.md index 4500e8c..3c071ec 100644 --- a/_posts/2024-01-08-CSSE-oop-game-levels2.md +++ b/_posts/2024-01-08-CSSE-oop-game-levels2.md @@ -29,6 +29,9 @@ image: /images/platformer/backgrounds/home.png + + +
diff --git a/assets/audio/coin.mp3 b/assets/audio/coin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..58997296abdadf20febbc12f1012d17b1610e546 GIT binary patch literal 42092 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 Date: Thu, 15 Feb 2024 13:39:10 -0800 Subject: [PATCH 06/11] added kaden to the about page --- navigation/about.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navigation/about.md b/navigation/about.md index c3795fa..1d2f362 100644 --- a/navigation/about.md +++ b/navigation/about.md @@ -39,7 +39,7 @@ permalink: /about/ Dean - Kaden + Kaden Abigail Zafeer Gavin I From d0c17213cf3dfa9491f3f83b5ca65108af3534cb Mon Sep 17 00:00:00 2001 From: maryamabdul-aziz Date: Thu, 15 Feb 2024 13:53:38 -0800 Subject: [PATCH 07/11] Merge branch 'main' of https://github.com/MaryamAbdul-Aziz/game_levels_mp --- _posts/2024-01-08-CSSE-oop-game-levels2.md | 9 +++++-- assets/js/platformer2/Audio4.js | 15 +++++------ assets/js/platformer2/Coin.js | 9 ++++++- assets/js/platformer2/FlyingGoomba.js | 5 ++-- assets/js/platformer2/GameControl.js | 3 +++ assets/js/platformer2/GameEnv.js | 10 +++++--- assets/js/platformer2/GameSetup.js | 5 ++-- assets/js/platformer2/Goomba.js | 1 - assets/js/platformer2/Mushroom.js | 30 +++++++++++----------- assets/js/platformer2/Player.js | 20 +++++++++++---- assets/js/platformer2/SettingsControl.js | 6 ----- navigation/about.md | 4 +-- 12 files changed, 68 insertions(+), 49 deletions(-) diff --git a/_posts/2024-01-08-CSSE-oop-game-levels2.md b/_posts/2024-01-08-CSSE-oop-game-levels2.md index 3c071ec..15c71c6 100644 --- a/_posts/2024-01-08-CSSE-oop-game-levels2.md +++ b/_posts/2024-01-08-CSSE-oop-game-levels2.md @@ -123,8 +123,13 @@ image: /images/platformer/backgrounds/home.png let cutStory = document.getElementById('cut-story'); let messages = ["Hi! My name is Mario, and I wish...", - "I wish I could be just as cool as this guy, Mr. Lopez.", "Help me get to the next level to become him!", "Do you want a speed boost? [Y/N]","This game was provided by CompSci Inc.","Turn on multiplayer from the settings tab to play with others."]; - console.log("Message length: " + messages.length); + "I wish I could be just as cool as this guy, Mr. Lopez.", "Help me get to the next level to become him!","This game was provided by CompSci Inc.","Stomp on Mushroom to get 3 seconds off your total time!","Turn on multiplayer from the settings tab to play with others."]; + + //if let messages = ("Stomp on Mushroom to get 3 seconds off your total time!") + //GameEnv.messages = true; + + + function showMessage(){ var x = cutStory; diff --git a/assets/js/platformer2/Audio4.js b/assets/js/platformer2/Audio4.js index c52c894..1ba855c 100644 --- a/assets/js/platformer2/Audio4.js +++ b/assets/js/platformer2/Audio4.js @@ -1,10 +1,9 @@ //Audio when stepping on Mushroom function coinSound() { - const coinSound = document.getElementById("coin"); - coinSound.play(); -} - - -//Export Sound -export default coinSound - + const coinSound = document.getElementById("coin"); + coinSound.play(); + } + + + //Export Sound + export default coinSound diff --git a/assets/js/platformer2/Coin.js b/assets/js/platformer2/Coin.js index cca5865..527f2a6 100644 --- a/assets/js/platformer2/Coin.js +++ b/assets/js/platformer2/Coin.js @@ -36,7 +36,6 @@ export class Coin extends GameObject { const scaledWidth = this.image.width * 0.2; const scaledHeight = this.image.height * 0.169; - const coinX = this.coinX; const coinY = (GameEnv.bottom - scaledHeight) * this.coinY; @@ -59,6 +58,14 @@ export class Coin extends GameObject { } } + collisionAction() { + // check player collision + if (this.collisionData.touchPoints.other.id === "player") { + this.destroy(); + coinSound(); + } + } + // Method to hide the coin hide() { this.canvas.style.display = 'none'; diff --git a/assets/js/platformer2/FlyingGoomba.js b/assets/js/platformer2/FlyingGoomba.js index 3bb0e28..c1d952b 100644 --- a/assets/js/platformer2/FlyingGoomba.js +++ b/assets/js/platformer2/FlyingGoomba.js @@ -89,6 +89,7 @@ export class FlyingGoomba extends Character { } } if (this.collisionData.touchPoints.other.id === "player") { + this.speed = 0; // Collision: Top of Goomba with Bottom of Player console.log(this.collisionData.touchPoints.other.bottom + 'bottom') console.log(this.collisionData.touchPoints.other.top + "top") @@ -97,9 +98,6 @@ export class FlyingGoomba extends Character { if (this.collisionData.touchPoints.other.bottom && this.immune == 0) { GameEnv.invincible = true; - this.canvas.style.transition = "transform 2s, opacity 1s"; - this.canvas.style.transformOrigin = "bottom"; // Set the transform origin to the bottom - this.canvas.style.transform = "scaleY(0)"; // Make the Goomba flat this.speed = 0; playGoombaDeath(); @@ -107,6 +105,7 @@ export class FlyingGoomba extends Character { GameEnv.invincible = false; this.destroy(); }).bind(this), 1500); + } } diff --git a/assets/js/platformer2/GameControl.js b/assets/js/platformer2/GameControl.js index e742de7..46a3deb 100644 --- a/assets/js/platformer2/GameControl.js +++ b/assets/js/platformer2/GameControl.js @@ -59,6 +59,9 @@ const GameControl = { this.stopTimer(); // Get the current user ID from SettingsControl const userID = GameEnv.userID + + // Subtract 3 seconds if destroyedMushroom is true + //const adjustedElapsedTime = GameEnv.destroyedMushroom ? Math.max(0, elapsedTimeNum - 3) : elapsedTimeNum; // Retrieve existing time scores from local storage const existingTimeScores = JSON.parse(localStorage.getItem('timeScores')) || []; diff --git a/assets/js/platformer2/GameEnv.js b/assets/js/platformer2/GameEnv.js index cb3acee..5952d20 100644 --- a/assets/js/platformer2/GameEnv.js +++ b/assets/js/platformer2/GameEnv.js @@ -35,14 +35,15 @@ export class GameEnv { * @property {boolean} invincible - invincibility for the mario when stomping on Goomba * @property {boolean} goombaInvincible - invincibility for the goomba when mario touch * @property {boolean} goombaBounce - mario touch goomba --> bounce + * @property {boolean} goombaBounce1 - bounce on mushroom * @property {number} gameSpeed - localstorage key, used by platformer objects * @property {number} backgroundHillsSpeed - used by background objects * @property {number} backgroundMountainsSpeed - used by background objects * @property {number} backgroundCloudsSpeed - used by background objects * @property {boolean} transitionHide - used to hide the transition screen * @property {number} gravity - localstorage key, used by platformer objects - * @property {boolean} true - to update gravity and settings button when mushroom is stepped on - * @property {boolean} true1 + * @property {boolean} destroyedMushroom - to see when mushroom is destroyed + * @property {boolean} playMessage * @property {Object} difficulty - localstorage key, used by GameControl * @property {number} innerWidth - used by platformer objects * @property {number} prevInnerWidth - used by platformer objects @@ -65,8 +66,8 @@ export class GameEnv { static backgroundCloudsSpeed = 2; static transitionHide = false; static gravity = 3; - static true = true; - static true1 = true; + static destroyedMushroom = false; + static playMessage = false; static difficulty = "normal"; static innerWidth; static prevInnerWidth; @@ -77,6 +78,7 @@ export class GameEnv { static invincible = false; static goombaInvincible = false; static goombaBounce = false; + static goombaBounce1 = false; diff --git a/assets/js/platformer2/GameSetup.js b/assets/js/platformer2/GameSetup.js index 837d539..3379f0c 100644 --- a/assets/js/platformer2/GameSetup.js +++ b/assets/js/platformer2/GameSetup.js @@ -355,7 +355,8 @@ const GameSetup = { { name: 'itemBlock', id: 'jumpPlatform', class: JumpPlatform, data: this.assets.platforms.itemBlock, xPercentage: 0.4, yPercentage: 0.65 }, //item block is a platform { name: 'goomba', id: 'goomba', class: Goomba, data: this.assets.enemies.goomba, xPercentage: 0.3, yPercentage: 1, minPosition: 0.05}, { name: 'goomba', id: 'goomba', class: Goomba, data: this.assets.enemies.goomba, xPercentage: 0.5, yPercentage: 1, minPosition: 0.3 }, - { name: 'mushroom', id: 'mushroom', class: Mushroom, data: this.assets.enemies.mushroom}, + { name: 'mushroom', id: 'mushroom', class: Mushroom, data: this.assets.enemies.mushroom, xPercentage: 0.09}, + { name: 'mushroom', id: 'mushroom', class: Mushroom, data: this.assets.enemies.mushroom, xPercentage: 0.49}, { name: 'goombaSpecial', id: 'goomba', class: Goomba, data: this.assets.enemies.goomba, xPercentage: 0.75, yPercentage: 1, minPosition: 0.5 }, //this special name is used for random event 2 to make sure that only one of the Goombas ends the random event { name: 'coin', id: 'coin', class: Coin, data: this.assets.obstacles.coin, xPercentage: 0.1908, yPercentage: 0.75 }, { name: 'coin', id: 'coin', class: Coin, data: this.assets.obstacles.coin, xPercentage: 0.2242, yPercentage: 0.75 }, @@ -379,7 +380,7 @@ const GameSetup = { { name: 'blocks', id: 'jumpPlatform', class: BlockPlatform, data: this.assets.platforms.block, xPercentage: 0.5368, yPercentage: 0.85 }, { name: 'goomba', id: 'goomba', class: Goomba, data: this.assets.enemies.goomba, xPercentage: 0.3, minPosition: 0.05}, { name: 'goomba', id: 'goomba', class: Goomba, data: this.assets.enemies.goomba, xPercentage: 0.5, minPosition: 0.3 }, - { name: 'mushroom', id: 'mushroom', class: Mushroom, data: this.assets.enemies.mushroom}, + { name: 'mushroom', id: 'mushroom', class: Mushroom, data: this.assets.enemies.mushroom, xPercentage: 0.09}, { name: 'goombaSpecial', id: 'goomba', class: Goomba, data: this.assets.enemies.goomba, xPercentage: 0.75, minPosition: 0.5 }, //this special name is used for random event 2 to make sure that only one of the Goombas ends the random event { name: 'flyingGoomba', id: 'flyingGoomba', class: FlyingGoomba, data: this.assets.enemies.flyingGoomba, xPercentage: 0.5, minPosition: 0.05}, { name: 'flyingGoomba', id: 'flyingGoomba', class: FlyingGoomba, data: this.assets.enemies.flyingGoomba, xPercentage: 0.9, minPosition: 0.5}, diff --git a/assets/js/platformer2/Goomba.js b/assets/js/platformer2/Goomba.js index f4d7478..dbe4de8 100644 --- a/assets/js/platformer2/Goomba.js +++ b/assets/js/platformer2/Goomba.js @@ -118,7 +118,6 @@ export class Goomba extends Character { setTimeout((function() { GameEnv.invincible = false; this.destroy(); - GameEnv.true1; }).bind(this), 1500); diff --git a/assets/js/platformer2/Mushroom.js b/assets/js/platformer2/Mushroom.js index bfd8019..03ec980 100644 --- a/assets/js/platformer2/Mushroom.js +++ b/assets/js/platformer2/Mushroom.js @@ -15,7 +15,7 @@ export class Mushroom extends Character { //Initial Position this.x = xPercentage * GameEnv.innerWidth; - + this.minPosition = minPosition * GameEnv.innerWidth; this.maxPosition = this.x + xPercentage * GameEnv.innerWidth; @@ -24,12 +24,12 @@ export class Mushroom extends Character { update() { super.update(); - + // Check for boundaries if (this.x <= this.minPosition || (this.x + this.canvasWidth >= this.maxPosition)) { this.speed = -this.speed; }; - + // Random Event 2 if (GameControl.randomEventId === 2 && GameControl.randomEventState === 1) { this.speed = 0; @@ -37,15 +37,15 @@ export class Mushroom extends Character { GameControl.endRandomEvent(); }; }; - - - + + + if (GameControl.randomEventId === 3 && GameControl.randomEventState === 1) { this.destroy(); GameControl.endRandomEvent(); }; - - + + // Chance for Mushroom to turn Gold if (["normal", "hard"].includes(GameEnv.difficulty)) { if (Math.random() < 0.00001) { @@ -53,7 +53,7 @@ export class Mushroom extends Character { this.immune = 1; } } - + // Immunize & Texture It if (GameEnv.difficulty === "hard") { this.canvas.style.filter = "invert(100%)"; @@ -63,14 +63,14 @@ export class Mushroom extends Character { this.canvas.style.filter = 'brightness(1000%)'; this.immune = 1; } - + // Remove the line that updates the x position based on speed // this.x -= this.speed; - + this.playerBottomCollision = false; } - - + + // Player action on collisions collisionAction() { if (this.collisionData.touchPoints.other.id === "tube") { @@ -87,7 +87,7 @@ export class Mushroom extends Character { //console.log(this.collisionData.touchPoints.other.left + "left") if (this.collisionData.touchPoints.other.bottom && this.immune == 0) { GameEnv.invincible = true; - GameEnv.goombaBounce = true; + GameEnv.goombaBounce1 = true; this.canvas.style.transition = "transform 1.5s, opacity 1s"; this.canvas.style.transition = "transform 2s, opacity 1s"; this.canvas.style.transformOrigin = "bottom"; @@ -98,7 +98,7 @@ export class Mushroom extends Character { setTimeout((function() { GameEnv.invincible = false; this.destroy(); - GameEnv.true1 = false; + GameEnv.destroyedMushroom = true; }).bind(this), 1500); } diff --git a/assets/js/platformer2/Player.js b/assets/js/platformer2/Player.js index 2c7fb4d..3ea4834 100644 --- a/assets/js/platformer2/Player.js +++ b/assets/js/platformer2/Player.js @@ -144,9 +144,14 @@ export class Player extends Character { // GoombaBounce deals with player.js and goomba.js if (GameEnv.goombaBounce === true) { GameEnv.goombaBounce = false; - this.y = this.y - 250; + this.y = this.y - 100; } + if (GameEnv.goombaBounce1 === true) { + GameEnv.goombaBounce1 = false; + this.y = this.y - 250 + } + // Player moving right if (this.isActiveAnimation("a")) { if (this.movement.left) this.x -= this.isActiveAnimation("s") ? this.moveSpeed : this.speed; // Move to left @@ -298,13 +303,15 @@ export class Player extends Character { } } - // Mushroom collision checks if (this.collisionData.touchPoints.other.id === "mushroom") { + GameEnv.destroyedMushroom = true; this.canvas.style.filter = 'invert(1)'; - GameEnv.true = true; + + setTimeout(() => { + this.canvas.style.filter = 'invert(0)'; + }, 2000); // 2000 milliseconds = 2 seconds } - - // Block collision checks + if (this.collisionData.touchPoints.other.id === "jumpPlatform") { if (this.collisionData.touchPoints.other.left) { this.movement.right = false; @@ -363,8 +370,10 @@ export class Player extends Character { this.isIdle = false; GameEnv.transitionHide = true; } + // dash action on if (this.isKeyActionDash(key)) { + GameEnv.dash = true; this.canvas.style.filter = 'invert(1)'; } // parallax background speed starts on player movement @@ -403,6 +412,7 @@ export class Player extends Character { // dash action off if (this.isKeyActionDash(key)) { this.canvas.style.filter = 'invert(0)'; + GameEnv.dash = false; } // parallax background speed halts on key up if (this.isKeyActionLeft(key) || this.isKeyActionRight(key) || this.isKeyActionDash(key)) { diff --git a/assets/js/platformer2/SettingsControl.js b/assets/js/platformer2/SettingsControl.js index 465c39c..178d1ed 100644 --- a/assets/js/platformer2/SettingsControl.js +++ b/assets/js/platformer2/SettingsControl.js @@ -121,12 +121,6 @@ export class SettingsControl extends LocalStorage{ // 'difficulty', the value is parsed to a floating point number GameEnv.difficulty = handleKey('difficulty', GameEnv.difficulty); - if (GameEnv.true && GameEnv.true1 === true) { - // - GameEnv.gravity = GameEnv.gravity * 2; - GameEnv.gameSpeed = GameEnv.gameSpeed * 2; - } - // List for th 'userID' update event window.addEventListener("userID", (e)=>{ diff --git a/navigation/about.md b/navigation/about.md index c17fd99..998060a 100644 --- a/navigation/about.md +++ b/navigation/about.md @@ -21,7 +21,7 @@ permalink: /about/ Gabriel Daniel Maryam - Trystan + Trystan Gavin C @@ -41,7 +41,7 @@ permalink: /about/ Dean Kaden Abigail - Zafeer + ZafeerGavin I From bdc67ca9d49870bb4ec4ee4262ae5543d09edf28 Mon Sep 17 00:00:00 2001 From: maryamabdul-aziz Date: Thu, 15 Feb 2024 14:00:42 -0800 Subject: [PATCH 08/11] delete speedup.js --- assets/js/platformer2/speedup.js | 46 -------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 assets/js/platformer2/speedup.js diff --git a/assets/js/platformer2/speedup.js b/assets/js/platformer2/speedup.js deleted file mode 100644 index d4ce8a8..0000000 --- a/assets/js/platformer2/speedup.js +++ /dev/null @@ -1,46 +0,0 @@ -import Character from './Character.js'; -import GameEnv from './GameEnv.js'; -import Player from './Player.js'; -export class speedup extends Character { - // constructors sets up Character object - constructor(canvas, image, data, xPercentage, minPosition){ - super(canvas, image, data ); - - //Initial Position of speedup item - this.x = xPercentage * GameEnv.innerWidth; - - - - } - - update() { - super.update(); - // Add any other update logic here - - } - collisionAction() { - - if (this.collisionData.touchPoints.other.id === "player") { - // Collision: Top of Goomba with Bottom of Player - if (this.collisionData.touchPoints.other.bottom) { - this.destroy(); - console.log("working as intended") - } - if (this.collisionData.touchPoints.other.id === "player") { - if (this.collisionData.touchPoints.other.left || this.collisionData.touchPoints.other.right) { - this.destroy(); - console.log("working as intended") - - } - } - var y = document.getElementById("cut-story"); - y.innerHTML = "(=´∀`)人(´∀`=) ~motivational high five!~"; - } -} - - - - -} - -export default speedup; \ No newline at end of file From 2baf5e05e6e9f10788f6eac3da14cddf6ca539a0 Mon Sep 17 00:00:00 2001 From: NoraTheTurtle Date: Thu, 15 Feb 2024 22:06:27 +0000 Subject: [PATCH 09/11] about.md nora --- navigation/about.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navigation/about.md b/navigation/about.md index a7ad715..b07ba99 100644 --- a/navigation/about.md +++ b/navigation/about.md @@ -25,7 +25,7 @@ permalink: /about/ Gavin C - Nora + Nora Xavier Daisy Matthew From 03d92e87828b3b9b05ea6c8cc7d8bc33b6915437 Mon Sep 17 00:00:00 2001 From: ryann96 Date: Thu, 15 Feb 2024 14:07:10 -0800 Subject: [PATCH 10/11] Fixed About Me Mistake --- navigation/about.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navigation/about.md b/navigation/about.md index 5eddc71..7978a16 100644 --- a/navigation/about.md +++ b/navigation/about.md @@ -41,7 +41,7 @@ permalink: /about/ Dean Kaden Abigail - ZafeerZafeer Gavin I From 02439d545400bb55d6d678fc0d835b0882581164 Mon Sep 17 00:00:00 2001 From: maryamabdul-aziz Date: Thu, 15 Feb 2024 16:46:31 -0800 Subject: [PATCH 11/11] fix duplicate code --- assets/js/platformer2/Coin.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/assets/js/platformer2/Coin.js b/assets/js/platformer2/Coin.js index 527f2a6..75c600b 100644 --- a/assets/js/platformer2/Coin.js +++ b/assets/js/platformer2/Coin.js @@ -57,14 +57,6 @@ export class Coin extends GameObject { coinSound(); } } - - collisionAction() { - // check player collision - if (this.collisionData.touchPoints.other.id === "player") { - this.destroy(); - coinSound(); - } - } // Method to hide the coin hide() {