/**** * Classes ****/ var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset(self.speedX < 0 ? 'dart2' : 'dart', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 10; self.update = function () { self.x += self.speedX; if (self.x > 2048) { self.destroy(); } }; }); var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.attachAsset('coin', { anchorX: 0.5, anchorY: 0.5 }); self.lifetime = 500; // Coin will last for 0.5 seconds self.creationTime = Date.now(); self.update = function () { if (Date.now() - self.creationTime >= self.lifetime) { self.destroy(); } }; }); var DownwardProjectile = Container.expand(function () { var self = Container.call(this); var projectileGraphics = self.attachAsset('yumurta', { anchorX: 0.5, anchorY: 0.5 }); self.speedY = 5; self.update = function () { self.y += self.speedY; if (self.lastY === undefined) { self.lastY = self.y; } // Initialize lastY if (self.startTime === undefined) { self.startTime = Date.now(); } // Initialize startTime if (Date.now() - self.startTime >= 4000) { // Check if 4 seconds have passed self.speedY = 0; // Stop the projectile if (!self.spawnedUranium && Date.now() - self.startTime >= 5000) { // Check if 1 second has passed since stopping var uranium = new UraniumCreature(); uranium.x = self.x; uranium.y = self.y; game.addChild(uranium); self.spawnedUranium = true; self.destroy(); // Remove the DownwardProjectile from the screen } } for (var i = 0; i < enemies.length; i++) { if (enemies[i] instanceof Enemy && !self.lastWasIntersecting && self.intersects(enemies[i])) { self.speedY = 0; // Stop the projectile break; } } self.lastWasIntersecting = enemies.some(function (enemy) { return enemy instanceof Enemy && self.intersects(enemy); }); if (self.y > 2732) { self.destroy(); } self.lastY = self.y; // Update lastY }; }); // Define a class for enemies that move from right to left var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); self.speedX = 5; self.update = function () { self.x -= self.speedX; if (self.x < 0) { self.destroy(); } }; }); // Define a class for jumping creatures var JumpingCreature = Container.expand(function () { var self = Container.call(this); var creatureGraphics = self.attachAsset('Yesil', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 40; self.isJumping = false; self.velocityY = 0; self.update = function () { // Jumping creature stays at the same position }; self.jump = function () { // Jumping creature doesn't jump }; }); var LeftBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('dart2', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = -10; self.update = function () { self.x += self.speedX; if (self.x < 0) { self.destroy(); } }; }); // Define a class for enemies that move from left to right var LeftToRightEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); self.speedX = 5; self.update = function () { self.x += self.speedX; if (self.x > 2048) { self.destroy(); } }; }); //<Assets used in the game will automatically appear here> // Define a class for the player character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1.5 }); self.speed = 5; self.jumpHeight = 40; self.isJumping = false; self.velocityY = 0; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += self.speed / 4; // Increase gravity by increasing the speed of the player's fall if (self.y > self.originalY) { self.y = self.originalY; self.isJumping = false; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; self.originalY = self.y; // Store original Y position LK.getSound('jump').play(); // Play jump sound } }; }); // Define a class for enemies that move from right to left at the top of the screen var TopEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('gemi', { anchorX: 0.5, anchorY: 0.5, scaleX: 5.0, scaleY: 5.0 }); self.speedX = 5; self.update = function () { self.x -= self.speedX; // Add flying effect by moving up and down if (self.initialY === undefined) { self.initialY = self.y; } self.y = self.initialY + Math.sin(LK.ticks / 10) * 40; // Move up and down with increased amplitude and frequency if (self.x < 0) { self.destroy(); } // Launch a downward projectile if none exists if (!self.hasProjectile) { if (Math.random() < 0.005) { var projectile = new DownwardProjectile(); projectile.x = self.x; projectile.y = self.y; game.addChild(projectile); self.hasProjectile = true; projectile.on('destroy', function () { self.hasProjectile = false; }); } } }; }); // Define a class for enemies that move from left to right at the top of the screen var TopEnemyLeftToRight = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('gemi2', { anchorX: 0.5, anchorY: 0.5, scaleX: 5.0, scaleY: 5.0 }); self.speedX = 5; self.update = function () { self.x += self.speedX; // Add flying effect by moving up and down if (self.initialY === undefined) { self.initialY = self.y; } self.y = self.initialY + Math.sin(LK.ticks / 10) * 40; // Move up and down with increased amplitude and frequency if (self.x > 2048) { self.destroy(); } // Launch a downward projectile if none exists if (!self.hasProjectile) { if (Math.random() < 0.005) { var projectile = new DownwardProjectile(); projectile.x = self.x; projectile.y = self.y; game.addChild(projectile); self.hasProjectile = true; projectile.on('destroy', function () { self.hasProjectile = false; }); } } }; }); var UraniumCreature = Container.expand(function () { var self = Container.call(this); var uraniumGraphics = self.attachAsset('uranyum', { anchorX: 0.5, anchorY: 0.5, scaleX: 2.0, scaleY: 2.0 }); self.update = function () { // Determine direction based on initial position if (self.initialDirection === undefined) { self.initialDirection = self.x > 1024 ? -1 : 1; // Move left if on the right side, right if on the left } // Move the Uranium creature self.x += self.initialDirection * 15; // Move at a speed of 15 units per update // Destroy if it moves out of bounds if (self.x < 0 || self.x > 2048) { self.destroy(); } }; }); /**** * Initialize Game ****/ // Define a class for the level system var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ var bullets = []; var background = game.addChild(LK.getAsset('background', { anchorX: 0, anchorY: 0 })); background.x = 0; background.y = 0; // Initialize player var player = game.addChild(new Player()); player.x = 2048 / 2; // Position player at the center of the screen horizontally player.y = 2732 - player.height / 2 - 100; // Move player character even lower // Initialize enemies var enemies = []; var enemySpawnInterval = 30; // 30 ticks for half a second at 60FPS var enemySpawnCounter = 0; // Create a new Text2 object to display the score var scoreText = new Text2('Score: 0', { size: 100, fill: 0xFFFFFF }); // Add the score text to the game GUI at the bottom of the player character game.addChild(scoreText); scoreText.x = player.x; scoreText.y = player.y + player.height + 50; // Handle game updates game.update = function () { player.update(); enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { var topEnemy; if (Math.random() < 0.5) { topEnemy = new TopEnemy(); topEnemy.x = 2048; } else { topEnemy = new TopEnemyLeftToRight(); topEnemy.x = 0; } topEnemy.y = 1000; // Spawn even lower on the screen enemies.push(topEnemy); game.addChild(topEnemy); var enemy; // Create a new enemy if (!player.isJumping) { if (Math.random() < 0.5) { enemy = new Enemy(); enemy.x = 2048; } else { enemy = new LeftToRightEnemy(); enemy.x = 0; } enemy.y = player.y + 50; // Spawn enemy slightly lower than player's y position } else { enemy = new TopEnemy(); enemy.y = 2732 / 2 - 300; // Spawn enemy a bit lower enemy.x = 2048; } enemies.push(enemy); game.addChild(enemy); // Randomize the spawn interval for the next enemy enemySpawnInterval = Math.floor(Math.random() * 150) + 50; enemySpawnCounter = 0; } // Update enemy movement and check for collision with player for (var i = 0; i < enemies.length; i++) { enemies[i].update(); // Check if player collides with an enemy if (player.intersects(enemies[i])) { // Show game over. The game will be automatically paused while game over is showing. LK.showGameOver(); // Calling this will destroy the 'Game' and reset entire game state. } // Check if player collides with UraniumCreature for (var l = 0; l < game.children.length; l++) { if (game.children[l] instanceof UraniumCreature && player.intersects(game.children[l])) { // Show game over. The game will be automatically paused while game over is showing. LK.showGameOver(); // Calling this will destroy the 'Game' and reset entire game state. } } // Update last known position enemies[i].lastX = enemies[i].x; } // Update bullet movement and check for collision with enemies for (var j = bullets.length - 1; j >= 0; j--) { bullets[j].update(); for (var k = enemies.length - 1; k >= 0; k--) { if (bullets[j].intersects(enemies[k])) { bullets[j].destroy(); bullets.splice(j, 1); // Drop a coin at the enemy's position var coin = new Coin(); coin.x = enemies[k].x; coin.y = enemies[k].y; game.addChild(coin); // Increase score by 1 when an enemy is destroyed LK.setScore(LK.getScore() + 1); // Update score text scoreText.setText('Score: ' + LK.getScore()); // Check if score is a multiple of 10 if (LK.getScore() % 10 === 0) { // Fire bullets in all directions for (var angle = 0; angle < 360; angle += 45) { var radian = angle * (Math.PI / 180); var bullet = new Bullet(); bullet.x = player.x; bullet.y = player.y; bullet.speedX = Math.cos(radian) * 10; bullet.speedY = Math.sin(radian) * 10; bullets.push(bullet); game.addChild(bullet); } } enemies[k].destroy(); enemies.splice(k, 1); break; } } for (var l = game.children.length - 1; l >= 0; l--) { if (game.children[l] instanceof DownwardProjectile && bullets[j] && bullets[j].intersects(game.children[l])) { if (bullets[j]) { bullets[j].destroy(); bullets.splice(j, 1); } game.children[l].destroy(); break; } if (game.children[l] instanceof UraniumCreature && bullets[j] && bullets[j].intersects(game.children[l])) { if (bullets[j]) { bullets[j].destroy(); bullets.splice(j, 1); } // Drop a coin at the UraniumCreature's position var coin = new Coin(); if (game.children[l]) { coin.x = game.children[l].x; } coin.y = game.children[l].y; game.addChild(coin); game.children[l].destroy(); break; } } } }; // Initialize jumping creature var creature; if (enemies.length > 3 && !creature) { creature = game.addChild(new JumpingCreature()); creature.x = 2048 / 2; creature.y = 2732 / 2; } // Handle player jump game.down = function (x, y, obj) { if (x < player.x) { // Fire bullet to the left var bullet = new LeftBullet(); game.addChild(bullet); bullet.x = player.x - player.width / 2; bullet.y = player.y; bullets.push(bullet); LK.getSound('slime').play(); // Play slime sound when LeftBullet is fired // Rotate player to face left player.scaleX = -1.5; } else if (x > 2048 / 2 - 100 && x < 2048 / 2 + 100) { player.jump(); } else { var bullet = game.addChild(new Bullet()); bullet.x = player.x + player.width / 2; bullet.y = player.y; var directionX = x - bullet.x; var directionY = y - bullet.y; var magnitude = Math.sqrt(directionX * directionX + directionY * directionY); bullet.speedX = directionX / magnitude * 10; bullet.speedY = directionY / magnitude * 10; bullets.push(bullet); LK.getSound('slime').play(); // Play slime sound when bullet is fired // Rotate player to face right player.scaleX = 1.5; } };
/****
* Classes
****/
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset(self.speedX < 0 ? 'dart2' : 'dart', {
anchorX: 0.5,
anchorY: 0.5
});
self.speedX = 10;
self.update = function () {
self.x += self.speedX;
if (self.x > 2048) {
self.destroy();
}
};
});
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5
});
self.lifetime = 500; // Coin will last for 0.5 seconds
self.creationTime = Date.now();
self.update = function () {
if (Date.now() - self.creationTime >= self.lifetime) {
self.destroy();
}
};
});
var DownwardProjectile = Container.expand(function () {
var self = Container.call(this);
var projectileGraphics = self.attachAsset('yumurta', {
anchorX: 0.5,
anchorY: 0.5
});
self.speedY = 5;
self.update = function () {
self.y += self.speedY;
if (self.lastY === undefined) {
self.lastY = self.y;
} // Initialize lastY
if (self.startTime === undefined) {
self.startTime = Date.now();
} // Initialize startTime
if (Date.now() - self.startTime >= 4000) {
// Check if 4 seconds have passed
self.speedY = 0; // Stop the projectile
if (!self.spawnedUranium && Date.now() - self.startTime >= 5000) {
// Check if 1 second has passed since stopping
var uranium = new UraniumCreature();
uranium.x = self.x;
uranium.y = self.y;
game.addChild(uranium);
self.spawnedUranium = true;
self.destroy(); // Remove the DownwardProjectile from the screen
}
}
for (var i = 0; i < enemies.length; i++) {
if (enemies[i] instanceof Enemy && !self.lastWasIntersecting && self.intersects(enemies[i])) {
self.speedY = 0; // Stop the projectile
break;
}
}
self.lastWasIntersecting = enemies.some(function (enemy) {
return enemy instanceof Enemy && self.intersects(enemy);
});
if (self.y > 2732) {
self.destroy();
}
self.lastY = self.y; // Update lastY
};
});
// Define a class for enemies that move from right to left
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.2,
scaleY: 1.2
});
self.speedX = 5;
self.update = function () {
self.x -= self.speedX;
if (self.x < 0) {
self.destroy();
}
};
});
// Define a class for jumping creatures
var JumpingCreature = Container.expand(function () {
var self = Container.call(this);
var creatureGraphics = self.attachAsset('Yesil', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.jumpHeight = 40;
self.isJumping = false;
self.velocityY = 0;
self.update = function () {
// Jumping creature stays at the same position
};
self.jump = function () {
// Jumping creature doesn't jump
};
});
var LeftBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('dart2', {
anchorX: 0.5,
anchorY: 0.5
});
self.speedX = -10;
self.update = function () {
self.x += self.speedX;
if (self.x < 0) {
self.destroy();
}
};
});
// Define a class for enemies that move from left to right
var LeftToRightEnemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.2,
scaleY: 1.2
});
self.speedX = 5;
self.update = function () {
self.x += self.speedX;
if (self.x > 2048) {
self.destroy();
}
};
});
//<Assets used in the game will automatically appear here>
// Define a class for the player character
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
self.speed = 5;
self.jumpHeight = 40;
self.isJumping = false;
self.velocityY = 0;
self.update = function () {
if (self.isJumping) {
self.y += self.velocityY;
self.velocityY += self.speed / 4; // Increase gravity by increasing the speed of the player's fall
if (self.y > self.originalY) {
self.y = self.originalY;
self.isJumping = false;
}
}
};
self.jump = function () {
if (!self.isJumping) {
self.isJumping = true;
self.velocityY = -self.jumpHeight;
self.originalY = self.y; // Store original Y position
LK.getSound('jump').play(); // Play jump sound
}
};
});
// Define a class for enemies that move from right to left at the top of the screen
var TopEnemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('gemi', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 5.0,
scaleY: 5.0
});
self.speedX = 5;
self.update = function () {
self.x -= self.speedX;
// Add flying effect by moving up and down
if (self.initialY === undefined) {
self.initialY = self.y;
}
self.y = self.initialY + Math.sin(LK.ticks / 10) * 40; // Move up and down with increased amplitude and frequency
if (self.x < 0) {
self.destroy();
}
// Launch a downward projectile if none exists
if (!self.hasProjectile) {
if (Math.random() < 0.005) {
var projectile = new DownwardProjectile();
projectile.x = self.x;
projectile.y = self.y;
game.addChild(projectile);
self.hasProjectile = true;
projectile.on('destroy', function () {
self.hasProjectile = false;
});
}
}
};
});
// Define a class for enemies that move from left to right at the top of the screen
var TopEnemyLeftToRight = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('gemi2', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 5.0,
scaleY: 5.0
});
self.speedX = 5;
self.update = function () {
self.x += self.speedX;
// Add flying effect by moving up and down
if (self.initialY === undefined) {
self.initialY = self.y;
}
self.y = self.initialY + Math.sin(LK.ticks / 10) * 40; // Move up and down with increased amplitude and frequency
if (self.x > 2048) {
self.destroy();
}
// Launch a downward projectile if none exists
if (!self.hasProjectile) {
if (Math.random() < 0.005) {
var projectile = new DownwardProjectile();
projectile.x = self.x;
projectile.y = self.y;
game.addChild(projectile);
self.hasProjectile = true;
projectile.on('destroy', function () {
self.hasProjectile = false;
});
}
}
};
});
var UraniumCreature = Container.expand(function () {
var self = Container.call(this);
var uraniumGraphics = self.attachAsset('uranyum', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2.0,
scaleY: 2.0
});
self.update = function () {
// Determine direction based on initial position
if (self.initialDirection === undefined) {
self.initialDirection = self.x > 1024 ? -1 : 1; // Move left if on the right side, right if on the left
}
// Move the Uranium creature
self.x += self.initialDirection * 15; // Move at a speed of 15 units per update
// Destroy if it moves out of bounds
if (self.x < 0 || self.x > 2048) {
self.destroy();
}
};
});
/****
* Initialize Game
****/
// Define a class for the level system
var game = new LK.Game({
backgroundColor: 0x87CEEB // Sky blue background
});
/****
* Game Code
****/
var bullets = [];
var background = game.addChild(LK.getAsset('background', {
anchorX: 0,
anchorY: 0
}));
background.x = 0;
background.y = 0;
// Initialize player
var player = game.addChild(new Player());
player.x = 2048 / 2; // Position player at the center of the screen horizontally
player.y = 2732 - player.height / 2 - 100; // Move player character even lower
// Initialize enemies
var enemies = [];
var enemySpawnInterval = 30; // 30 ticks for half a second at 60FPS
var enemySpawnCounter = 0;
// Create a new Text2 object to display the score
var scoreText = new Text2('Score: 0', {
size: 100,
fill: 0xFFFFFF
});
// Add the score text to the game GUI at the bottom of the player character
game.addChild(scoreText);
scoreText.x = player.x;
scoreText.y = player.y + player.height + 50;
// Handle game updates
game.update = function () {
player.update();
enemySpawnCounter++;
if (enemySpawnCounter >= enemySpawnInterval) {
var topEnemy;
if (Math.random() < 0.5) {
topEnemy = new TopEnemy();
topEnemy.x = 2048;
} else {
topEnemy = new TopEnemyLeftToRight();
topEnemy.x = 0;
}
topEnemy.y = 1000; // Spawn even lower on the screen
enemies.push(topEnemy);
game.addChild(topEnemy);
var enemy;
// Create a new enemy
if (!player.isJumping) {
if (Math.random() < 0.5) {
enemy = new Enemy();
enemy.x = 2048;
} else {
enemy = new LeftToRightEnemy();
enemy.x = 0;
}
enemy.y = player.y + 50; // Spawn enemy slightly lower than player's y position
} else {
enemy = new TopEnemy();
enemy.y = 2732 / 2 - 300; // Spawn enemy a bit lower
enemy.x = 2048;
}
enemies.push(enemy);
game.addChild(enemy);
// Randomize the spawn interval for the next enemy
enemySpawnInterval = Math.floor(Math.random() * 150) + 50;
enemySpawnCounter = 0;
}
// Update enemy movement and check for collision with player
for (var i = 0; i < enemies.length; i++) {
enemies[i].update();
// Check if player collides with an enemy
if (player.intersects(enemies[i])) {
// Show game over. The game will be automatically paused while game over is showing.
LK.showGameOver(); // Calling this will destroy the 'Game' and reset entire game state.
}
// Check if player collides with UraniumCreature
for (var l = 0; l < game.children.length; l++) {
if (game.children[l] instanceof UraniumCreature && player.intersects(game.children[l])) {
// Show game over. The game will be automatically paused while game over is showing.
LK.showGameOver(); // Calling this will destroy the 'Game' and reset entire game state.
}
}
// Update last known position
enemies[i].lastX = enemies[i].x;
}
// Update bullet movement and check for collision with enemies
for (var j = bullets.length - 1; j >= 0; j--) {
bullets[j].update();
for (var k = enemies.length - 1; k >= 0; k--) {
if (bullets[j].intersects(enemies[k])) {
bullets[j].destroy();
bullets.splice(j, 1);
// Drop a coin at the enemy's position
var coin = new Coin();
coin.x = enemies[k].x;
coin.y = enemies[k].y;
game.addChild(coin);
// Increase score by 1 when an enemy is destroyed
LK.setScore(LK.getScore() + 1);
// Update score text
scoreText.setText('Score: ' + LK.getScore());
// Check if score is a multiple of 10
if (LK.getScore() % 10 === 0) {
// Fire bullets in all directions
for (var angle = 0; angle < 360; angle += 45) {
var radian = angle * (Math.PI / 180);
var bullet = new Bullet();
bullet.x = player.x;
bullet.y = player.y;
bullet.speedX = Math.cos(radian) * 10;
bullet.speedY = Math.sin(radian) * 10;
bullets.push(bullet);
game.addChild(bullet);
}
}
enemies[k].destroy();
enemies.splice(k, 1);
break;
}
}
for (var l = game.children.length - 1; l >= 0; l--) {
if (game.children[l] instanceof DownwardProjectile && bullets[j] && bullets[j].intersects(game.children[l])) {
if (bullets[j]) {
bullets[j].destroy();
bullets.splice(j, 1);
}
game.children[l].destroy();
break;
}
if (game.children[l] instanceof UraniumCreature && bullets[j] && bullets[j].intersects(game.children[l])) {
if (bullets[j]) {
bullets[j].destroy();
bullets.splice(j, 1);
}
// Drop a coin at the UraniumCreature's position
var coin = new Coin();
if (game.children[l]) {
coin.x = game.children[l].x;
}
coin.y = game.children[l].y;
game.addChild(coin);
game.children[l].destroy();
break;
}
}
}
};
// Initialize jumping creature
var creature;
if (enemies.length > 3 && !creature) {
creature = game.addChild(new JumpingCreature());
creature.x = 2048 / 2;
creature.y = 2732 / 2;
}
// Handle player jump
game.down = function (x, y, obj) {
if (x < player.x) {
// Fire bullet to the left
var bullet = new LeftBullet();
game.addChild(bullet);
bullet.x = player.x - player.width / 2;
bullet.y = player.y;
bullets.push(bullet);
LK.getSound('slime').play(); // Play slime sound when LeftBullet is fired
// Rotate player to face left
player.scaleX = -1.5;
} else if (x > 2048 / 2 - 100 && x < 2048 / 2 + 100) {
player.jump();
} else {
var bullet = game.addChild(new Bullet());
bullet.x = player.x + player.width / 2;
bullet.y = player.y;
var directionX = x - bullet.x;
var directionY = y - bullet.y;
var magnitude = Math.sqrt(directionX * directionX + directionY * directionY);
bullet.speedX = directionX / magnitude * 10;
bullet.speedY = directionY / magnitude * 10;
bullets.push(bullet);
LK.getSound('slime').play(); // Play slime sound when bullet is fired
// Rotate player to face right
player.scaleX = 1.5;
}
};
uçabilen düşmanlar tatlı düşman. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
yeşil tatlı ok atmaya hazırlıklı okçu karakter. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
partıltılı yumurta. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
2d animation background forest with green and blue. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
altın coin üstünde C yazsın. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
pembe mor ve mavi karışımından oluşanının yap