From 6e5aadefe09f505f2e2fef62ffe4046420f57693 Mon Sep 17 00:00:00 2001 From: Golen Date: Tue, 21 Nov 2023 23:27:22 +0100 Subject: [PATCH] Fix turtles ground movement. Add animations in preload --- src/assets/assets.ts | 5 +- .../{turtle_stuck.png => turtle_stuck1.png} | Bin .../images/characters/turtle_stuck2.png | Bin 21900 -> 24083 bytes .../images/characters/turtle_stuck_sweat1.png | Bin 0 -> 21900 bytes ...tle_stuck3.png => turtle_stuck_sweat2.png} | Bin src/components/Trampoline.ts | 22 +- src/components/Turtle.ts | 264 +++++++++++------- src/scenes/OverworldState.ts | 32 ++- src/scenes/PreloadScene.ts | 60 ++++ 9 files changed, 269 insertions(+), 114 deletions(-) rename src/assets/images/characters/{turtle_stuck.png => turtle_stuck1.png} (100%) create mode 100644 src/assets/images/characters/turtle_stuck_sweat1.png rename src/assets/images/characters/{turtle_stuck3.png => turtle_stuck_sweat2.png} (100%) diff --git a/src/assets/assets.ts b/src/assets/assets.ts index 5a263a6..6916e49 100644 --- a/src/assets/assets.ts +++ b/src/assets/assets.ts @@ -11,9 +11,10 @@ const images: Image[] = [ // Characters image("characters/turtle_jumping", "turtle_jumping"), image("characters/turtle_scared", "turtle_scared"), - image("characters/turtle_stuck", "turtle_stuck"), + image("characters/turtle_stuck1", "turtle_stuck1"), image("characters/turtle_stuck2", "turtle_stuck2"), - image("characters/turtle_stuck3", "turtle_stuck3"), + image("characters/turtle_stuck_sweat1", "turtle_stuck_sweat1"), + image("characters/turtle_stuck_sweat2", "turtle_stuck_sweat2"), image("characters/turtle_waiting", "turtle_waiting"), image("characters/turtle_waiting_angry", "turtle_waiting_angry"), // For walking animation, do this: turtle_walking - turtle_walking1 - turtle_walking - turtle_walking2 -loop diff --git a/src/assets/images/characters/turtle_stuck.png b/src/assets/images/characters/turtle_stuck1.png similarity index 100% rename from src/assets/images/characters/turtle_stuck.png rename to src/assets/images/characters/turtle_stuck1.png diff --git a/src/assets/images/characters/turtle_stuck2.png b/src/assets/images/characters/turtle_stuck2.png index 90c087e2281341b5abe6483210eb62f4e3eae9f4..20f172617af0d62c27ccfdb17f521db3fb47d5aa 100644 GIT binary patch literal 24083 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Ⓢ-V{|(U;cA7!c1I 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 literal 21900 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 Tpo3v>o>)q6-pPNKH4pnAKux7A diff --git a/src/assets/images/characters/turtle_stuck_sweat1.png b/src/assets/images/characters/turtle_stuck_sweat1.png new file mode 100644 index 0000000000000000000000000000000000000000..90c087e2281341b5abe6483210eb62f4e3eae9f4 GIT binary patch literal 21900 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 Tpo3v>o>)q6-pPNKH4pnAKux7A literal 0 HcmV?d00001 diff --git a/src/assets/images/characters/turtle_stuck3.png b/src/assets/images/characters/turtle_stuck_sweat2.png similarity index 100% rename from src/assets/images/characters/turtle_stuck3.png rename to src/assets/images/characters/turtle_stuck_sweat2.png diff --git a/src/components/Trampoline.ts b/src/components/Trampoline.ts index 8b814dc..4e2e0c2 100644 --- a/src/components/Trampoline.ts +++ b/src/components/Trampoline.ts @@ -10,6 +10,9 @@ export class Trampoline extends Button { public zone: Phaser.Geom.Rectangle; public surface: Phaser.Geom.Ellipse; + private squishTimer: number; + private recoil: number; + constructor(scene: GameScene, x: number, y: number) { super(scene, x, y); scene.add.existing(this); @@ -43,6 +46,9 @@ export class Trampoline extends Button { 120 ); + this.recoil = 0; + this.squishTimer = 0; + /* Input */ this.bindInteractive(this.sprite, true); this.on("click", () => { @@ -51,12 +57,20 @@ export class Trampoline extends Button { } update(time: number, delta: number) { - const holdX = 1.0 + 0.2 * this.holdSmooth; - const holdY = 1.0 - 0.1 * this.holdSmooth; + const holdX = 1.0 + 0.2 * (this.holdSmooth + this.recoil); + const holdY = 1.0 - 0.1 * (this.holdSmooth + this.recoil); const squish = 0.01; this.setScale( - (1.0 + squish * Math.sin(time / 200)) * holdX, - (1.0 + squish * Math.sin(-time / 200)) * holdY + (1.0 + squish * Math.sin(this.squishTimer / 200)) * holdX, + (1.0 + squish * Math.sin(-this.squishTimer / 200)) * holdY ); + + this.squishTimer += delta; + this.recoil -= 0.15 * this.recoil; + } + + addRecoil() { + this.recoil += 0.5; + this.squishTimer = 0; } } diff --git a/src/components/Turtle.ts b/src/components/Turtle.ts index 0038bdf..4f4c554 100644 --- a/src/components/Turtle.ts +++ b/src/components/Turtle.ts @@ -21,8 +21,7 @@ export class Turtle extends Button { public sprite: Phaser.GameObjects.Sprite; private tween: Phaser.Tweens.Tween; private flailTimer: number; - // private debug: Phaser.GameObjects.Ellipse; - // private debugLand: Phaser.GameObjects.Ellipse; + private debug: Phaser.GameObjects.Graphics; // Controls public physicsPosition: Phaser.Math.Vector2; @@ -34,8 +33,8 @@ export class Turtle extends Button { // Walking private ground: Phaser.Geom.Rectangle; + private onGround: boolean; private walkTarget: Phaser.Geom.Point; - private walkTimer: number; //Score private baseScore: number; @@ -70,18 +69,17 @@ export class Turtle extends Button { scene.add.existing(this); this.scene = scene; - // this.debugLand = this.scene.add - // .ellipse(0, 0, 30, 30, 0xff0000) - // .setDepth(1000); - // this.debug = this.scene.add.ellipse(0, 0, 20, 20, 0x007700).setDepth(1000); + this.debug = this.scene.add.graphics().setDepth(1000); /* Sprite */ this.spriteSize = 200; this.sprite = this.scene.add.sprite(0, 0, "turtle_waiting"); this.sprite.setScale(this.spriteSize / this.sprite.width); - this.flailTimer = 0; + this.sprite.play("turtle_waiting"); // this.add(this.sprite); + this.flailTimer = 0; + /* Controls */ this.physicsPosition = new Phaser.Math.Vector2(x, y); this.physicsVelocity = new Phaser.Math.Vector2(0, 0); @@ -96,9 +94,8 @@ export class Turtle extends Button { /* Walking */ this.walkTarget = new Phaser.Geom.Point(); this.ground = ground; + this.onGround = true; this.newWalkTarget(); - this.border.bottom = this.walkTarget.y; - this.walkTimer = 0; /* Trampoline */ this.trampoline = trampoline; @@ -109,9 +106,9 @@ export class Turtle extends Button { this.newJumpTarget(); this.maxJumpSpeed = Phaser.Math.RND.between(27, 31); this.bounceCount = 0; - this.baseScore = 50+(Math.random()*100); + this.baseScore = 50 + Math.random() * 100; this.multiplier = 1.0; - this.leaving = false; + this.leaving = false; this.fadeTimer = 0; this.deleteFlag = false; this.desiredBounces = 5 + Math.round(Math.random() * 15); @@ -148,19 +145,17 @@ export class Turtle extends Button { this.bounceCount += 1; //this.scene.addScore(1); this.multiplier += 0.05; - if(this.totalBounces >= this.desiredBounces) - { - if(this.multiplier >= 0.5) { + if (this.totalBounces >= this.desiredBounces) { + if (this.multiplier >= 0.5) { this.multiplier -= 0.05; } } this.totalBounces += 1; if (this.scene.game.hasFocus) { const relSpeed = this.maxJumpSpeed - jumpSpeed; - this.scene.sound.play( - relSpeed < 1e-5 ? "spring" : "spring2", - { volume: -0.02 * relSpeed + 0.3 } - ); + this.scene.sound.play(relSpeed < 1e-5 ? "spring" : "spring2", { + volume: -0.02 * relSpeed + 0.3, + }); } this.emit("bounce"); } @@ -185,6 +180,7 @@ export class Turtle extends Button { this.physicsVelocity.y += 1; if (this.isFallingTooQuickly) { this.lostBalance = true; + this.newWalkTarget(); } } } @@ -193,21 +189,31 @@ export class Turtle extends Button { else if (this.isGrounded) { // Walking if (!this.lostBalance) { - const distance = this.walkTarget.x - this.physicsPosition.x; - if (Math.abs(distance) > 5) { - const walkingSpeed = 1.0; - this.physicsVelocity.x += walkingSpeed * Math.sign(distance); + if (!this.onGround) { + this.emit("land"); + this.physicsPosition.y = this.border.bottom - this.feetOffset; + this.physicsVelocity.y = 0; + } + this.onGround = true; + + const walkDirection = new Phaser.Math.Vector2( + this.walkTarget.x - this.physicsPosition.x, + this.walkTarget.y - this.physicsPosition.y - this.feetOffset + ); + if (walkDirection.lengthSq() > 5) { + walkDirection.limit(1.5); // Walking speed + this.physicsVelocity.x += walkDirection.x; + this.physicsVelocity.y += walkDirection.y; } - if(this.totalBounces > 0) { - if(this.fadeTimer > 0 && this.leaving) { + if (this.totalBounces > 0) { + if (this.fadeTimer > 0 && this.leaving) { this.fadeTimer -= delta; - if(this.fadeTimer <= 0) - { + if (this.fadeTimer <= 0) { this.fadeTimer = 0; this.deleteFlag = true; } - this.sprite.setAlpha(this.fadeTimer/MAX_FADE); + this.sprite.setAlpha(this.fadeTimer / MAX_FADE); } else if (!this.leaving) { this.turtleLeave(); } @@ -215,14 +221,13 @@ export class Turtle extends Button { } // Friction - this.physicsVelocity.x = 0.5 * this.physicsVelocity.x; - // Stop fall - this.physicsVelocity.y = 0; - this.physicsPosition.y = this.border.bottom - this.feetOffset; + this.physicsVelocity.scale(0.5); if (this.lostBalance && !this.hasCrashed) { this.hasCrashed = true; - this.scene.sound.play("trip", {volume: 0.25}); - this.scene.addDust(this.x, this.y-90); + this.physicsPosition.y = this.border.bottom - this.feetOffset; + this.physicsVelocity.y = 0; + this.scene.sound.play("trip", { volume: 0.25 }); + this.scene.addDust(this.x, this.y - 90); this.emit("crashed"); } } @@ -234,6 +239,7 @@ export class Turtle extends Button { if (this.isFallingTooQuickly) { this.lostBalance = true; + this.newWalkTarget(); } } @@ -246,8 +252,6 @@ export class Turtle extends Button { // Movement this.x += 0.5 * (this.physicsPosition.x - this.x); this.y += 0.5 * (this.physicsPosition.y - this.y); - // this.debug.setPosition(this.x, this.physicsPosition.y + this.feetOffset); - // this.debugLand.setPosition(this.walkTarget.x, this.walkTarget.y); if (this.hold) { this.dragVelocity.set( @@ -259,8 +263,6 @@ export class Turtle extends Button { } // Animation - const squish = 0.02 * Math.sin((6 * time) / 1000); - this.setScale(1.0 + squish, 1.0 - squish); this.flailTimer = Math.max(0, (this.flailTimer ?? 0) - delta); const scale = this.spriteSize / this.sprite.width; @@ -269,44 +271,42 @@ export class Turtle extends Button { this.sprite.angle = this.dragVelocity.x; if (this.hold || this.isOnTrampoline) { - this.sprite.setTexture("turtle_jumping"); + this.sprite.play("turtle_jumping", true); } else if (this.isGrounded) { if (this.lostBalance) { - if (this.flailTimer > 0) { - const variant = this.flailTimer < 150 ? "2" : "3"; - this.sprite.setTexture("turtle_stuck" + variant); - } else - this.sprite.setTexture("turtle_stuck"); + // if (this.flailTimer > 0) { + // const variant = this.flailTimer < 150 ? "2" : "3"; + // this.sprite.play("turtle_stuck" + variant, true); + // } else { + // this.sprite.play("turtle_stuck", true); + // } + this.sprite.play("turtle_stuck", true); this.setSpriteOrigin(0.5, 0.8); this.sprite.angle = 10 * Math.sin((7 * time) / 1000); - if (this.scene.game.getFrame() % 400 == Phaser.Math.RND.integerInRange(0, 400)) { + if ( + this.scene.game.getFrame() % 400 == + Phaser.Math.RND.integerInRange(0, 400) + ) { this.flailTimer = 300; if (this.scene.game.hasFocus) - this.scene.sound.play("flail", { volume: 0.2, pan: this.pan * 0.3 }); + this.scene.sound.play("flail", { + volume: 0.2, + pan: this.pan * 0.3, + }); } - - } else if (Math.abs(this.physicsVelocity.x) > 0.1) { - const walkSprites = [ - "turtle_walking", - "turtle_walking1", - "turtle_walking", - "turtle_walking2", - ]; - this.walkTimer += 1; - this.sprite.setTexture( - walkSprites[Math.floor(this.walkTimer / 20) % walkSprites.length] - ); + } else if (this.onGround && this.physicsVelocity.lengthSq() > 0.1) { + this.sprite.play("turtle_walking", true); } else { - this.sprite.setTexture("turtle_waiting"); + this.sprite.play("turtle_waiting", true); if (Math.random() < 0.01) { this.newWalkTarget(); } } } else { if (this.lostBalance) { - this.sprite.setTexture("turtle_scared"); + this.sprite.play("turtle_scared", true); } else { - this.sprite.setTexture("turtle_jumping"); + this.sprite.play("turtle_jumping", true); } } @@ -314,45 +314,90 @@ export class Turtle extends Button { this.drawBounceDisplay(); // Depth sorting this.sprite.setPosition(this.x, this.y); - let depth = 100; + let depth = 100 + (this.y + this.feetOffset) / 100; if (this.isOnTrampoline) { depth += this.jumpTarget.y / 100; - } else { - depth += this.walkTarget.y / 100; } if (this.hold) depth += 100; this.sprite.setDepth(depth); - } - drawBounceDisplay() - { - if(this.isOnTrampoline) - { + // let feetX = this.physicsPosition.x; + // let feetY = this.physicsPosition.y + this.feetOffset; + // this.debug.clear(); + // this.debug.fillStyle(0xff0000); + // this.debug.lineStyle(2, 0xff0000); + // this.debug.fillEllipse(feetX, feetY, 20, 20); + // this.debug.fillEllipse(this.walkTarget.x, this.walkTarget.y, 20, 20); + // this.debug.beginPath(); + // this.debug.moveTo(feetX, feetY); + // this.debug.lineTo(this.walkTarget.x, this.walkTarget.y); + // this.debug.stroke(); + } + drawBounceDisplay() { + if (this.isOnTrampoline) { this.bounceDisplay.setVisible(true); this.bounceDisplay.clear(); - if(this.totalBounces > 0 && this.totalBounces < this.desiredBounces) - { - this.bounceDisplay.lineStyle(24, 0xFFFFFF, 0.75); + if (this.totalBounces > 0 && this.totalBounces < this.desiredBounces) { + this.bounceDisplay.lineStyle(24, 0xffffff, 0.75); this.bounceDisplay.beginPath(); - this.bounceDisplay.arc(0, 0, 175, Phaser.Math.DegToRad(0-90), Phaser.Math.DegToRad(360-(360*(this.totalBounces/this.desiredBounces))-90), true, 0); + this.bounceDisplay.arc( + 0, + 0, + 175, + Phaser.Math.DegToRad(0 - 90), + Phaser.Math.DegToRad( + 360 - 360 * (this.totalBounces / this.desiredBounces) - 90 + ), + true, + 0 + ); this.bounceDisplay.strokePath(); this.bounceDisplay.closePath(); - this.bounceDisplay.lineStyle(16, 0x4BFF55, 1.0); + this.bounceDisplay.lineStyle(16, 0x4bff55, 1.0); this.bounceDisplay.beginPath(); - this.bounceDisplay.arc(0, 0, 175, Phaser.Math.DegToRad(0-90), Phaser.Math.DegToRad(360-(360*(this.totalBounces/this.desiredBounces))-90), true, 0); + this.bounceDisplay.arc( + 0, + 0, + 175, + Phaser.Math.DegToRad(0 - 90), + Phaser.Math.DegToRad( + 360 - 360 * (this.totalBounces / this.desiredBounces) - 90 + ), + true, + 0 + ); this.bounceDisplay.strokePath(); this.bounceDisplay.closePath(); - } else if (this.totalBounces >= this.desiredBounces) - { - this.bounceDisplay.lineStyle(24, 0xFFFFFF, 0.75); + } else if (this.totalBounces >= this.desiredBounces) { + this.bounceDisplay.lineStyle(24, 0xffffff, 0.75); this.bounceDisplay.beginPath(); - this.bounceDisplay.arc(0, 0, 175, Phaser.Math.DegToRad(0-90), Phaser.Math.DegToRad(360-90), true, 0.01); + this.bounceDisplay.arc( + 0, + 0, + 175, + Phaser.Math.DegToRad(0 - 90), + Phaser.Math.DegToRad(360 - 90), + true, + 0.01 + ); this.bounceDisplay.strokePath(); this.bounceDisplay.closePath(); - this.bounceDisplay.lineStyle(16, ((this.totalBounces == this.desiredBounces) ? 0x4BFF55 : 0xFF1212), 1.0); + this.bounceDisplay.lineStyle( + 16, + this.totalBounces == this.desiredBounces ? 0x4bff55 : 0xff1212, + 1.0 + ); this.bounceDisplay.beginPath(); - this.bounceDisplay.arc(0, 0, 175, Phaser.Math.DegToRad(0-90), Phaser.Math.DegToRad(360-90), true, 0.01); + this.bounceDisplay.arc( + 0, + 0, + 175, + Phaser.Math.DegToRad(0 - 90), + Phaser.Math.DegToRad(360 - 90), + true, + 0.01 + ); this.bounceDisplay.strokePath(); this.bounceDisplay.closePath(); } @@ -361,15 +406,21 @@ export class Turtle extends Button { this.bounceDisplay.clear(); } } - turtleLeave(){ + turtleLeave() { this.leaving = true; this.disableInteractive(); this.sprite.disableInteractive(); this.fadeTimer = MAX_FADE; - let s = Math.round(this.multiplier*this.baseScore); + let s = Math.round(this.multiplier * this.baseScore); this.scene.addScore(s); - this.scene.sound.play("score", {volume: 1.0}); - this.scene.addTextParticle(this.x, this.y-70, "green", `+ $` + `${s}!`, 80); + this.scene.sound.play("score", { volume: 1.0 }); + this.scene.addTextParticle( + this.x, + this.y - 70, + "green", + `+ $` + `${s}!`, + 80 + ); } /* Jumping */ @@ -392,7 +443,7 @@ export class Turtle extends Button { } } - doABarrelRoll(duration=300, playSound=true) { + doABarrelRoll(duration = 300, playSound = true) { if (!this.tween || !this.tween.isActive()) { this.tween = this.scene.tweens.add({ targets: this.sprite, @@ -404,9 +455,11 @@ export class Turtle extends Button { duration, yoyo: true, }); - if (playSound) this.scene.sound.play("trick", { - volume: 0.4, pan: this.pan * 0.4 - }); + if (playSound) + this.scene.sound.play("trick", { + volume: 0.4, + pan: this.pan * 0.4, + }); } } @@ -417,12 +470,17 @@ export class Turtle extends Button { } newWalkTarget() { - let y = this.walkTarget.y; - Phaser.Geom.Rectangle.Random(this.ground, this.walkTarget); - if (y != 0) { - // Hack because it's hard to make them move up or down - this.walkTarget.y = y; + if (this.lostBalance) { + this.walkTarget.x = this.x; + this.walkTarget.y = this.ground.bottom; + } + else { + Phaser.Geom.Rectangle.Random(this.ground, this.walkTarget); + if (this.x < this.scene.CX) { + this.walkTarget.y = this.ground.bottom; + } } + this.border.bottom = this.walkTarget.y; } newJumpTarget() { @@ -446,7 +504,10 @@ export class Turtle extends Button { } get isGrounded() { - return this.physicsPosition.y + this.feetOffset >= this.border.bottom; + return ( + this.onGround || + this.physicsPosition.y + this.feetOffset >= this.border.bottom + ); } get isOnTrampoline(): boolean { @@ -474,6 +535,7 @@ export class Turtle extends Button { onDragStart(pointer: Phaser.Input.Pointer, dragX: number, dragY: number) { this.dragOffset.set(dragX, dragY); + this.onGround = false; this.lostBalance = false; this.hasCrashed = false; this.bounceCount = 0; @@ -495,12 +557,16 @@ export class Turtle extends Button { this.dragVelocity.scale(0.5); this.physicsVelocity.add(this.dragVelocity); - + + this.newWalkTarget(); + const pV = this.physicsVelocity; if (pV.length() > 75 && Math.abs(pV.x) > Math.abs(pV.y)) { - this.scene.sound.play("toss", {volume: 0.5, pan: this.pan * 0.3}); - this.scene.time.addEvent(this.scene.particles.sparkleTrail(this, 40, 20, 0xDDAA00)); + this.scene.sound.play("toss", { volume: 0.5, pan: this.pan * 0.3 }); + this.scene.time.addEvent( + this.scene.particles.sparkleTrail(this, 40, 20, 0xddaa00) + ); this.doABarrelRoll(100, false); } else { let intensity = 1; @@ -512,7 +578,7 @@ export class Turtle extends Button { } this.scene.sound.play("letgo" + intensity, { volume: intensity / 10 + 0.5, - rate: (this.scene.H-pointer.upY) / this.scene.H * 0.4 + 0.7, + rate: ((this.scene.H - pointer.upY) / this.scene.H) * 0.4 + 0.7, pan: this.pan * 0.2, }); } diff --git a/src/scenes/OverworldState.ts b/src/scenes/OverworldState.ts index e3dcfd3..e1e9384 100644 --- a/src/scenes/OverworldState.ts +++ b/src/scenes/OverworldState.ts @@ -27,10 +27,20 @@ export class OverworldState extends Phaser.GameObjects.Container { this.ground = new Phaser.Geom.Rectangle( 0.5 * this.scene.W, - 0.8 * this.scene.H, + 0.7 * this.scene.H, 0.45 * this.scene.W, - 0.1 * this.scene.H + 0.2 * this.scene.H ); + // this.scene.add + // .rectangle( + // this.ground.x, + // this.ground.y, + // this.ground.width, + // this.ground.height, + // 0xff0000, + // 0.2 + // ) + // .setOrigin(0); this.owner = new ShopOwner(scene, 0.4 * this.scene.W, 0.62 * scene.H); this.add(this.owner); @@ -39,7 +49,7 @@ export class OverworldState extends Phaser.GameObjects.Container { this.add(this.trampoline); this.turtles = []; - for (let i = 0; i < 5; i++) { + for (let i = 0; i < 10; i++) { this.addTurtle(); } @@ -57,8 +67,8 @@ export class OverworldState extends Phaser.GameObjects.Container { this.scene.setState(State.Shop); }); const expl = { - key: 'dust_explosion', - frames: 'dust', + key: "dust_explosion", + frames: "dust", frameRate: 12, showOnStart: true, hideOnComplete: true, @@ -85,10 +95,9 @@ export class OverworldState extends Phaser.GameObjects.Container { return super.setVisible(value); } - addDust(x: number, y: number) - { - let xpl = this.scene.add.sprite(x, y, 'dust_explosion'); - xpl.play({ key: 'dust_explosion', delay: 0 }); + addDust(x: number, y: number) { + let xpl = this.scene.add.sprite(x, y, "dust_explosion"); + xpl.play({ key: "dust_explosion", delay: 0 }); } addTurtle() { @@ -98,8 +107,13 @@ export class OverworldState extends Phaser.GameObjects.Container { this.add(turtle); this.turtles.push(turtle); + turtle.on("land", () => { + // Land safely! + }); + turtle.on("bounce", () => { // Bounce! + this.trampoline.addRecoil(); }); turtle.on("crashed", () => { diff --git a/src/scenes/PreloadScene.ts b/src/scenes/PreloadScene.ts index 41312b1..603fb9b 100644 --- a/src/scenes/PreloadScene.ts +++ b/src/scenes/PreloadScene.ts @@ -74,9 +74,69 @@ export class PreloadScene extends BaseScene { } create() { + this.setupAnimations(); + this.fade(true, 100, 0x000000); this.addEvent(100, () => { this.scene.start("GameScene"); }); } + + setupAnimations() { + this.anims.create({ + key: "turtle_jumping", + frames: [{ key: "turtle_jumping" }], + }); + + this.anims.create({ + key: "turtle_scared", + frames: [{ key: "turtle_scared" }], + }); + + this.anims.create({ + key: "turtle_stuck", + frames: [ + { key: "turtle_stuck1" }, + { key: "turtle_stuck2" }, + { key: "turtle_stuck_sweat1" }, + { key: "turtle_stuck_sweat2" }, + ], + frameRate: 3, + repeat: -1, + }); + + this.anims.create({ + key: "turtle_waiting", + frames: [{ key: "turtle_waiting" }], + }); + + this.anims.create({ + key: "turtle_waiting_angry", + frames: [{ key: "turtle_waiting_angry" }], + }); + + this.anims.create({ + key: "turtle_walking", + frames: [ + { key: "turtle_walking1" }, + { key: "turtle_walking" }, + { key: "turtle_walking2" }, + { key: "turtle_walking" }, + ], + frameRate: 4, + repeat: -1, + }); + + this.anims.create({ + key: "turtle_walking_angry", + frames: [ + { key: "turtle_walking_angry1" }, + { key: "turtle_walking_angry" }, + { key: "turtle_walking_angry2" }, + { key: "turtle_walking_angry" }, + ], + frameRate: 6, + repeat: -1, + }); + } }