User prompt
Spawn the shadows with the same flip / scale x as the bird
User prompt
Make the shadow graphics tint a bright fuschia
Code edit (1 edits merged)
Please save this source code
User prompt
Ensure the z index of the shadow graphics are behind the cat
User prompt
Ensure the shadow graphics are behind the cat
User prompt
Ensure the shadow graphics scale x matches the cats at the time it's spawned.
Code edit (3 edits merged)
Please save this source code
User prompt
They should be at full alpha for the 200ms, and only then do they start fading out
User prompt
Don't fade out the shadow immediately, they should stick around for 200ms or so
User prompt
Spawn the shadows every few frames, while the cat is in the air
User prompt
There should be up to 15 shadow particles at a time, spawned while the bird is in the air
User prompt
Add a 'shadow' particle effect, in the style of street fighter powerups, where every few frames there is a clone of our cat. You only need to add them during a jump. They should be fully tinted to an opaque colour.
User prompt
Make isInAir a counter, we want to allow 2 jumps before landing.
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: isUpEventTriggered is not defined' in or related to this line: 'if (game.isMouseDown && isUpEventTriggered) {' Line Number: 179
Code edit (1 edits merged)
Please save this source code
User prompt
Don't jump twice automatically, ensure there is an 'up' event before the next 'down' event
User prompt
Ensure the player let's go of the mouse after landing on the wall, they need to tap again before jumping
User prompt
Align background to the bottom and center
Code edit (1 edits merged)
Please save this source code
Code edit (6 edits merged)
Please save this source code
User prompt
Add a background of a neon cityscape
Code edit (1 edits merged)
Please save this source code
User prompt
Remove the rotation of the bird when flying. Flip the bird graphic when it's facing left.
User prompt
Ensure obstacles graphics are in front of the walls
/**** * Classes ****/ var Bird = Container.expand(function () { var self = Container.call(this); var birdGraphics = self.attachAsset('bird', { anchorX: 0.5, anchorY: 0.5 }); self.xSpeed = 10.9375; self.ySpeed = -20; self.gravity = 1; self.lift = -15; self.isInAir = false; self.flap = function () { if (!self.isInAir) { self.ySpeed = self.lift * 1.5; self.isInAir = true; } }; self.update = function () { if (game.isMouseDown) { self.ySpeed += self.gravity / 3; } else { self.ySpeed += self.gravity; } self.y += self.ySpeed; self.x += self.xSpeed; if (self.y <= 0 || self.y >= 2732) { self.speed = -self.speed; } if (self.xSpeed === 0) { birdGraphics.scale.x = bird.intersects(leftWall) ? -1 : 1; } else { birdGraphics.scale.x = self.xSpeed > 0 ? -1 : 1; } // Bird rotation removed }; }); var Obstacle = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle', { anchorX: 0, anchorY: 0 }); self.speed = 5; self.move = function (speed) { self.y += speed; }; }); var Wall = Container.expand(function () { var self = Container.call(this); var wallGraphics = self.attachAsset('wall', { anchorX: 0.5, anchorY: 0.5 }); }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x111111 }); /**** * Game Code ****/ game.score = 0; game.obstacleSpeed = 5; game.obstacleSpeedIncrease = 0.005; game.checkObstacleCollision = function (obstacles) { for (var i = 0; i < obstacles.length; i++) { obstacles[i].move(); var dist = Math.sqrt(Math.pow(bird.x - obstacles[i].x, 2) + Math.pow(bird.y - obstacles[i].y, 2)); if (dist < 280) { LK.setScore(game.score); LK.showGameOver(); } } }; var background = game.addChild(LK.getAsset('background', { anchorX: 0.5, anchorY: 1, x: 1024, y: 2732 })); var scoreText = new Text2('0', { size: 150, fill: '#ffffff', font: 'Impact', dropShadow: true, dropShadowColor: '#222a9a', dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0 }); scoreText.anchor.set(.5, 0); LK.gui.top.addChild(scoreText); var scoreText2 = new Text2('0', { size: 150, fill: '#ffffff', font: 'Impact' }); scoreText2.anchor.set(.5, 0); scoreText2.x = -4; scoreText2.y = -5; LK.gui.top.addChild(scoreText2); LK.gui.top.addChild(scoreText); var bird = game.addChild(new Bird()); var leftWall = game.addChild(new Wall()); leftWall.x = 0; leftWall.y = 1366; var rightWall = game.addChild(new Wall()); rightWall.x = 2048; rightWall.y = 1366; var leftObstacles = [], rightObstacles = []; var obstacleSpawnRandomness = 120; var obstacleSpawnRandomnessDecrease = 0.025 * (2 / 3); var obstacleSpawnY = -500; var leftObstacleSpawnTime = Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; var rightObstacleSpawnTime = Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; bird.x = 1024; bird.y = 1366; game.isMouseDown = false; game.isUpEventTriggered = true; game.isUpEventTriggered = true; game.on('down', function (obj) { if (game.isUpEventTriggered) { bird.flap(); game.isMouseDown = true; game.isUpEventTriggered = false; } }); game.on('up', function (obj) { game.isMouseDown = false; game.isUpEventTriggered = true; }); LK.on('tick', function () { bird.update(); if (game.score > 2) { tutorialText.y += 5; tutorialTextWhite.y += 5; } scoreText.setText(game.score); scoreText2.setText(game.score); game.obstacleSpeed += game.obstacleSpeedIncrease; obstacleSpawnRandomness -= obstacleSpawnRandomnessDecrease; if (obstacleSpawnRandomness < 20) { obstacleSpawnRandomness = 20; } if (LK.ticks >= leftObstacleSpawnTime) { var newObstacle = game.addChild(new Obstacle()); newObstacle.x = 0; newObstacle.y = obstacleSpawnY; leftObstacles.push(newObstacle); leftObstacleSpawnTime += Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; } if (LK.ticks >= rightObstacleSpawnTime) { var newObstacle = game.addChild(new Obstacle()); newObstacle.x = 2048; newObstacle.y = -newObstacle.height; newObstacle.scale.x *= -1; // Flip the obstacle horizontally rightObstacles.push(newObstacle); rightObstacleSpawnTime += Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; } if (bird.intersects(leftWall) || bird.intersects(rightWall)) { bird.ySpeed = game.obstacleSpeed; bird.xSpeed = 0; bird.isInAir = false; if (game.isMouseDown && isUpEventTriggered) { bird.flap(); if (bird.intersects(leftWall)) { bird.xSpeed = 30; // Add positive x speed when bird jumps from the left wall } else if (bird.intersects(rightWall)) { bird.xSpeed = -30; // Add negative x speed when bird jumps from the right wall } } } for (var i = leftObstacles.length - 1; i >= 0; i--) { leftObstacles[i].move(game.obstacleSpeed); if (leftObstacles[i].y > 3232) { leftObstacles[i].destroy(); leftObstacles.splice(i, 1); } } for (var i = rightObstacles.length - 1; i >= 0; i--) { rightObstacles[i].move(game.obstacleSpeed); if (rightObstacles[i].y > 3232) { rightObstacles[i].destroy(); rightObstacles.splice(i, 1); } } game.checkObstacleCollision(leftObstacles); game.checkObstacleCollision(rightObstacles); if (bird.y < 0 || bird.y > 2732) { LK.setScore(game.score); LK.showGameOver(); } });
===================================================================
--- original.js
+++ change.js
@@ -124,8 +124,9 @@
bird.x = 1024;
bird.y = 1366;
game.isMouseDown = false;
game.isUpEventTriggered = true;
+game.isUpEventTriggered = true;
game.on('down', function (obj) {
if (game.isUpEventTriggered) {
bird.flap();
game.isMouseDown = true;
@@ -167,9 +168,9 @@
if (bird.intersects(leftWall) || bird.intersects(rightWall)) {
bird.ySpeed = game.obstacleSpeed;
bird.xSpeed = 0;
bird.isInAir = false;
- if (game.isMouseDown) {
+ if (game.isMouseDown && isUpEventTriggered) {
bird.flap();
if (bird.intersects(leftWall)) {
bird.xSpeed = 30; // Add positive x speed when bird jumps from the left wall
} else if (bird.intersects(rightWall)) {