User prompt
more speed
User prompt
increase the bird speed
User prompt
decrease the flap power of bird
User prompt
increase the speed of monster
User prompt
increase bird speed
User prompt
in 85points the bird will transform into dragon not dragon come to bird
User prompt
remove snow fall and everest from day
User prompt
remove stars in winter,starting,and day
User prompt
display replay button which have a crown in corner
User prompt
and after the message display this (like the game if you really love it)
User prompt
AFTER ANIMATION DISPLAY THIS (thankyou for playing my game i know it is not good very much but i tried my best to provide this ending)
User prompt
SHORT ANIMATION IN ENDING MARIO GIVING A CROWN TO BIRD ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
THE GAME WILL END IN 100 POINTS
User prompt
IN 85 IT WILL BE NIGHT STARS WILL APPEAR AND BLINK ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
IN 85 BLUUE BACKGROUND LIKE STARTING BACKGROUND
User prompt
MONSTER JUMP 6
User prompt
DRAGON JUMP =5
User prompt
SPEED OF BIRD
User prompt
drAGON WILL DODGE POLES
User prompt
no remove only in day
User prompt
remove snow fall and mountain and mounteverst in day
User prompt
add dragon assest because bird become dragon
User prompt
in 75point add dragon for 25 second and have a tripple speed than bird it can dodge poles ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
day in 50 points
User prompt
in winter season tere was snow fall and mount everest
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Bird = Container.expand(function () {
var self = Container.call(this);
var birdGraphics = self.attachAsset('bird', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocity = 0;
self.gravity = 0.3;
self.flapPower = -18;
self.rotation = 0;
self.isMonster = false;
self.monsterEndTime = 0;
// Transform into monster
self.transformToMonster = function () {
if (!self.isMonster) {
self.isMonster = true;
self.monsterEndTime = LK.ticks + 600; // 10 seconds at 60fps
// Remove current bird graphics
self.removeChild(birdGraphics);
// Add monster graphics
self.monsterGraphics = self.attachAsset('monster', {
anchorX: 0.5,
anchorY: 0.5
});
// Enhanced abilities
self.flapPower = -20; // Reduced jump power
self.gravity = 0.1; // Less gravity
// Visual effect
tween(self.monsterGraphics, {
scaleX: 1.3,
scaleY: 1.3
}, {
duration: 500,
easing: tween.elasticOut
});
}
};
// Transform back to normal bird
self.transformToNormal = function () {
if (self.isMonster) {
self.isMonster = false;
// Remove monster graphics
if (self.monsterGraphics) {
self.removeChild(self.monsterGraphics);
}
// Add back bird graphics
birdGraphics = self.attachAsset('bird', {
anchorX: 0.5,
anchorY: 0.5
});
// Reset normal abilities
self.flapPower = -18;
self.gravity = 0.3;
// Restart wing animation
self.startWingAnimation();
}
};
// Start continuous wing flapping animation
self.startWingAnimation = function () {
// Create a continuous flapping animation by scaling the bird
function flapUp() {
tween(birdGraphics, {
scaleY: 1.2
}, {
duration: 150,
easing: tween.easeOut,
onFinish: flapDown
});
}
function flapDown() {
tween(birdGraphics, {
scaleY: 0.8
}, {
duration: 150,
easing: tween.easeOut,
onFinish: flapUp
});
}
// Start the animation cycle
flapUp();
};
// Start wing animation immediately
self.startWingAnimation();
self.flap = function () {
self.velocity = self.flapPower;
LK.getSound('flap').play();
};
self.update = function () {
// Check if monster time is up
if (self.isMonster && LK.ticks >= self.monsterEndTime) {
self.transformToNormal();
}
self.velocity += self.gravity;
self.y += self.velocity;
// Monster can fly through boundaries without dying
if (!self.isMonster) {
// Check ground collision
if (self.y > 2732 - 150) {
self.y = 2732 - 150;
gameOver = true;
}
// Check ceiling collision
if (self.y < 50) {
self.y = 50;
gameOver = true;
}
} else {
// Monster just bounces off boundaries
if (self.y > 2732 - 150) {
self.y = 2732 - 150;
self.velocity = -Math.abs(self.velocity);
}
if (self.y < 50) {
self.y = 50;
self.velocity = Math.abs(self.velocity);
}
}
};
return self;
});
var Dragon = Container.expand(function () {
var self = Container.call(this);
var dragonGraphics = self.attachAsset('bird', {
anchorX: 0.5,
anchorY: 0.5
});
// Make dragon red to distinguish from bird
dragonGraphics.tint = 0xFF0000;
self.velocity = 0;
self.gravity = 0.2;
self.speed = -6; // Triple speed of pipes
self.dodgeTimer = 0;
self.isDodging = false;
self.targetY = 2732 / 2;
self.update = function () {
// Move horizontally with triple speed
self.x += self.speed;
// Dodge poles by finding safe gaps
if (!self.isDodging) {
// Check for incoming pipes and find safe path
for (var i = 0; i < pipes.length; i++) {
var pipe = pipes[i];
// If pipe is ahead and close enough to dodge
if (pipe.x > self.x && pipe.x < self.x + 400) {
// Calculate safe Y position (middle of gap)
var gapCenterY = (pipe.topPipe.y + pipe.bottomPipe.y) / 2;
self.targetY = gapCenterY;
self.isDodging = true;
self.dodgeTimer = 60; // Dodge for 1 second
break;
}
}
}
// Move toward target Y position when dodging
if (self.isDodging) {
var yDiff = self.targetY - self.y;
self.y += yDiff * 0.1; // Smooth movement
self.dodgeTimer--;
if (self.dodgeTimer <= 0) {
self.isDodging = false;
}
} else {
// Normal flight behavior when not dodging
self.velocity += self.gravity;
self.y += self.velocity;
// Keep dragon within screen bounds
if (self.y > 2732 - 200) {
self.y = 2732 - 200;
self.velocity = -Math.abs(self.velocity);
}
if (self.y < 100) {
self.y = 100;
self.velocity = Math.abs(self.velocity);
}
}
};
return self;
});
var Pipe = Container.expand(function () {
var self = Container.call(this);
self.gapSize = 1200; // Increased gap size for easier navigation
self.speed = -2;
self.scored = false;
// Create top pipe
self.topPipe = self.attachAsset('pipe', {
anchorX: 0.5,
anchorY: 1
});
// Create bottom pipe
self.bottomPipe = self.attachAsset('pipe', {
anchorX: 0.5,
anchorY: 0
});
self.setGapPosition = function (gapY) {
self.topPipe.y = gapY - self.gapSize / 2;
self.bottomPipe.y = gapY + self.gapSize / 2;
};
self.update = function () {
self.x += self.speed;
// Check if bird passed through pipe
if (!self.scored && self.x < bird.x) {
self.scored = true;
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
LK.getSound('score').play();
}
};
return self;
});
var Snow = Container.expand(function () {
var self = Container.call(this);
var snowGraphics = self.attachAsset('snow', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = Math.random() * 2 + 1;
self.sway = Math.random() * 0.02 - 0.01;
self.update = function () {
self.y += self.speed;
self.x += Math.sin(LK.ticks * self.sway) * 0.5;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB
});
/****
* Game Code
****/
var bird;
var pipes = [];
var ground;
var scoreTxt;
var gameOver = false;
var gameStarted = false;
var pipeSpawnTimer = 0;
var pipeSpawnInterval = 240; // frames between pipe spawns - increased gap
var hasTransformedToMonster = false;
var isWinter = false;
var snowParticles = [];
var snowSpawnTimer = 0;
var everest;
var dragon;
var dragonSpawned = false;
var dragonEndTime = 0;
// Create ground
ground = game.addChild(LK.getAsset('ground', {
anchorX: 0,
anchorY: 1,
x: 0,
y: 2732
}));
// Create bird
bird = game.addChild(new Bird());
bird.x = 300;
bird.y = 2732 / 2;
// Create score text
scoreTxt = new Text2('0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
scoreTxt.y = 100;
// Create instruction text
var instructionTxt = new Text2('TAP TO START', {
size: 60,
fill: 0xFFFFFF
});
instructionTxt.anchor.set(0.5, 0.5);
LK.gui.center.addChild(instructionTxt);
var pipePatternIndex = 0;
var pipePositions = [800, 1000, 1200, 1400, 1600, 1800, 1600, 1400, 1200, 1000]; // Connected systematic pattern
function spawnPipe() {
var pipe = new Pipe();
pipe.x = 2048 + 60;
// Use systematic pattern with smooth transitions
var gapY = pipePositions[pipePatternIndex % pipePositions.length];
pipePatternIndex++;
pipe.setGapPosition(gapY);
pipes.push(pipe);
game.addChild(pipe);
}
function checkCollisions() {
// Monster is invincible and can fly through pipes
if (bird.isMonster) {
return;
}
for (var i = 0; i < pipes.length; i++) {
var pipe = pipes[i];
// Check collision with top pipe
if (bird.intersects(pipe.topPipe)) {
gameOver = true;
LK.getSound('hit').play();
return;
}
// Check collision with bottom pipe
if (bird.intersects(pipe.bottomPipe)) {
gameOver = true;
LK.getSound('hit').play();
return;
}
}
}
function checkSeasonChange() {
// Spawn dragon at 75 points for 25 seconds
if (LK.getScore() >= 75 && !dragonSpawned) {
dragonSpawned = true;
dragonEndTime = LK.ticks + 1500; // 25 seconds at 60fps
dragon = game.addChild(new Dragon());
dragon.x = 2048 + 100; // Start from right side
dragon.y = 2732 / 2;
// Dragon entrance animation
tween(dragon, {
x: 1800
}, {
duration: 1000,
easing: tween.easeOut
});
}
// Day season at 50 points
if (LK.getScore() >= 50) {
game.setBackgroundColor(0xFFD700); // Bright day yellow
} else if (LK.getScore() >= 25) {
// Winter season at 25 points
game.setBackgroundColor(0xF0F8FF); // Winter white/light blue
// Create Mount Everest if not already created
if (!isWinter) {
isWinter = true;
everest = game.addChild(LK.getAsset('everest', {
anchorX: 0.5,
anchorY: 1,
x: 1400,
y: 2732 - 100
}));
}
} else if (LK.getScore() >= 5) {
// Change to night theme when score reaches 5
game.setBackgroundColor(0x1a1a2e); // Dark night blue
// Transform bird to monster once when reaching night time
if (!hasTransformedToMonster) {
hasTransformedToMonster = true;
bird.transformToMonster();
}
} else {
game.setBackgroundColor(0x87CEEB); // Day sky blue
}
}
function cleanupPipes() {
for (var i = pipes.length - 1; i >= 0; i--) {
var pipe = pipes[i];
if (pipe.x < -100) {
pipe.destroy();
pipes.splice(i, 1);
}
}
}
game.down = function (x, y, obj) {
if (gameOver) {
return;
}
if (!gameStarted) {
gameStarted = true;
instructionTxt.visible = false;
}
bird.flap();
};
game.update = function () {
if (gameOver) {
LK.showGameOver();
return;
}
if (!gameStarted) {
return;
}
// Update bird
// Spawn pipes
pipeSpawnTimer++;
if (pipeSpawnTimer >= pipeSpawnInterval) {
spawnPipe();
pipeSpawnTimer = 0;
}
// Check collisions
checkCollisions();
// Check for season changes
checkSeasonChange();
// Spawn snow particles in winter
if (isWinter) {
snowSpawnTimer++;
if (snowSpawnTimer >= 10) {
// Spawn snow every 10 frames
var snow = new Snow();
snow.x = Math.random() * 2048;
snow.y = -20;
snowParticles.push(snow);
game.addChild(snow);
snowSpawnTimer = 0;
}
// Clean up off-screen snow
for (var i = snowParticles.length - 1; i >= 0; i--) {
var snow = snowParticles[i];
if (snow.y > 2732 + 50) {
snow.destroy();
snowParticles.splice(i, 1);
}
}
}
// Handle dragon lifecycle
if (dragonSpawned && dragon && LK.ticks >= dragonEndTime) {
// Dragon flies away
tween(dragon, {
x: -200
}, {
duration: 1000,
easing: tween.easeIn,
onFinish: function onFinish() {
if (dragon) {
dragon.destroy();
dragon = null;
}
}
});
dragonSpawned = false;
}
// Cleanup off-screen pipes
cleanupPipes();
}; ===================================================================
--- original.js
+++ change.js
@@ -125,8 +125,66 @@
}
};
return self;
});
+var Dragon = Container.expand(function () {
+ var self = Container.call(this);
+ var dragonGraphics = self.attachAsset('bird', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Make dragon red to distinguish from bird
+ dragonGraphics.tint = 0xFF0000;
+ self.velocity = 0;
+ self.gravity = 0.2;
+ self.speed = -6; // Triple speed of pipes
+ self.dodgeTimer = 0;
+ self.isDodging = false;
+ self.targetY = 2732 / 2;
+ self.update = function () {
+ // Move horizontally with triple speed
+ self.x += self.speed;
+ // Dodge poles by finding safe gaps
+ if (!self.isDodging) {
+ // Check for incoming pipes and find safe path
+ for (var i = 0; i < pipes.length; i++) {
+ var pipe = pipes[i];
+ // If pipe is ahead and close enough to dodge
+ if (pipe.x > self.x && pipe.x < self.x + 400) {
+ // Calculate safe Y position (middle of gap)
+ var gapCenterY = (pipe.topPipe.y + pipe.bottomPipe.y) / 2;
+ self.targetY = gapCenterY;
+ self.isDodging = true;
+ self.dodgeTimer = 60; // Dodge for 1 second
+ break;
+ }
+ }
+ }
+ // Move toward target Y position when dodging
+ if (self.isDodging) {
+ var yDiff = self.targetY - self.y;
+ self.y += yDiff * 0.1; // Smooth movement
+ self.dodgeTimer--;
+ if (self.dodgeTimer <= 0) {
+ self.isDodging = false;
+ }
+ } else {
+ // Normal flight behavior when not dodging
+ self.velocity += self.gravity;
+ self.y += self.velocity;
+ // Keep dragon within screen bounds
+ if (self.y > 2732 - 200) {
+ self.y = 2732 - 200;
+ self.velocity = -Math.abs(self.velocity);
+ }
+ if (self.y < 100) {
+ self.y = 100;
+ self.velocity = Math.abs(self.velocity);
+ }
+ }
+ };
+ return self;
+});
var Pipe = Container.expand(function () {
var self = Container.call(this);
self.gapSize = 1200; // Increased gap size for easier navigation
self.speed = -2;
@@ -194,8 +252,11 @@
var isWinter = false;
var snowParticles = [];
var snowSpawnTimer = 0;
var everest;
+var dragon;
+var dragonSpawned = false;
+var dragonEndTime = 0;
// Create ground
ground = game.addChild(LK.getAsset('ground', {
anchorX: 0,
anchorY: 1,
@@ -254,8 +315,23 @@
}
}
}
function checkSeasonChange() {
+ // Spawn dragon at 75 points for 25 seconds
+ if (LK.getScore() >= 75 && !dragonSpawned) {
+ dragonSpawned = true;
+ dragonEndTime = LK.ticks + 1500; // 25 seconds at 60fps
+ dragon = game.addChild(new Dragon());
+ dragon.x = 2048 + 100; // Start from right side
+ dragon.y = 2732 / 2;
+ // Dragon entrance animation
+ tween(dragon, {
+ x: 1800
+ }, {
+ duration: 1000,
+ easing: tween.easeOut
+ });
+ }
// Day season at 50 points
if (LK.getScore() >= 50) {
game.setBackgroundColor(0xFFD700); // Bright day yellow
} else if (LK.getScore() >= 25) {
@@ -341,7 +417,24 @@
snowParticles.splice(i, 1);
}
}
}
+ // Handle dragon lifecycle
+ if (dragonSpawned && dragon && LK.ticks >= dragonEndTime) {
+ // Dragon flies away
+ tween(dragon, {
+ x: -200
+ }, {
+ duration: 1000,
+ easing: tween.easeIn,
+ onFinish: function onFinish() {
+ if (dragon) {
+ dragon.destroy();
+ dragon = null;
+ }
+ }
+ });
+ dragonSpawned = false;
+ }
// Cleanup off-screen pipes
cleanupPipes();
};
\ No newline at end of file
single pole flappy bird. In-Game asset. 2d. High contrast. No shadows
ground have mincraft ground trxture. In-Game asset. 2d. High contrast. No shadows
long dragon. In-Game asset. 2d. High contrast. No shadows
yeti cartoon image. In-Game asset. 2d. High contrast. No shadows
speed dragon. In-Game asset. 2d. High contrast. No shadows
mount everest. In-Game asset. 2d. High contrast. No shadows
crown. In-Game asset. 2d. High contrast. No shadows
replay button. In-Game asset. 2d. High contrast. No shadows