===================================================================
--- original.js
+++ change.js
@@ -1,123 +1,145 @@
-/****
+/****
* Classes
-****/
+****/
// Bullet class
var Bullet = Container.expand(function () {
- var self = Container.call(this);
- var bulletGraphics = self.attachAsset('bullet', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.speed = -10;
- self.update = function () {
- self.y += self.speed;
- // Check if the bullet is off-screen and needs to be removed
- if (self.y < -self.height) {
- self.destroy();
- }
- };
+ var self = Container.call(this);
+ var bulletGraphics = self.attachAsset('bullet', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = -10;
+ self.update = function () {
+ self.y += self.speed;
+ // Check if the bullet is off-screen and needs to be removed
+ if (self.y < -self.height) {
+ self.destroy();
+ }
+ };
});
+// Explosion class
+var Explosion = Container.expand(function () {
+ var self = Container.call(this);
+ var explosionGraphics = self.attachAsset('explosion', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.update = function () {
+ // Reduce the size of the explosion over time
+ self.scale.x -= 0.05;
+ self.scale.y -= 0.05;
+ // Once the explosion has disappeared, remove it
+ if (self.scale.x <= 0 || self.scale.y <= 0) {
+ self.destroy();
+ }
+ };
+});
// Assets will be automatically created and loaded by the LK engine based on usage in the game code.
// Hero class
var Hero = Container.expand(function () {
- var self = Container.call(this);
- var heroGraphics = self.attachAsset('hero', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.update = function () {
- // Hero update logic, such as movement, can be added here.
- };
+ var self = Container.call(this);
+ var heroGraphics = self.attachAsset('hero', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.update = function () {
+ // Hero update logic, such as movement, can be added here.
+ };
});
// Obstacle class
var Obstacle = Container.expand(function () {
- var self = Container.call(this);
- var obstacleGraphics = self.attachAsset('obstacle', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.speed = 5;
- self.update = function () {
- self.y += self.speed;
- // Check if the obstacle is off-screen and needs to be removed
- if (self.y > 2732 + self.height) {
- self.destroy();
- }
- };
+ var self = Container.call(this);
+ var obstacleGraphics = self.attachAsset('obstacle', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 5;
+ self.update = function () {
+ self.y += self.speed;
+ // Check if the obstacle is off-screen and needs to be removed
+ if (self.y > 2732 + self.height) {
+ self.destroy();
+ }
+ };
});
-/****
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000 // Initialize game with a black background
+ backgroundColor: 0x000000 // Initialize game with a black background
});
-/****
+/****
* Game Code
-****/
+****/
var hero;
var obstacles = [];
var bullets = [];
var score = 0;
var scoreTxt;
function spawnObstacle() {
- var obstacle = new Obstacle();
- obstacle.x = Math.random() * (2048 - obstacle.width) + obstacle.width / 2;
- obstacle.y = -obstacle.height / 2;
- obstacles.push(obstacle);
- game.addChild(obstacle);
+ var obstacle = new Obstacle();
+ obstacle.x = Math.random() * (2048 - obstacle.width) + obstacle.width / 2;
+ obstacle.y = -obstacle.height / 2;
+ obstacles.push(obstacle);
+ game.addChild(obstacle);
}
function fireBullet() {
- var bullet = new Bullet();
- bullet.x = hero.x;
- bullet.y = hero.y - hero.height / 2 - bullet.height / 2;
- bullets.push(bullet);
- game.addChild(bullet);
+ var bullet = new Bullet();
+ bullet.x = hero.x;
+ bullet.y = hero.y - hero.height / 2 - bullet.height / 2;
+ bullets.push(bullet);
+ game.addChild(bullet);
}
function checkCollisions() {
- bullets.forEach(function (bullet, bulletIndex) {
- obstacles.forEach(function (obstacle, obstacleIndex) {
- if (bullet.intersects(obstacle)) {
- bullet.destroy();
- obstacle.destroy();
- bullets.splice(bulletIndex, 1);
- obstacles.splice(obstacleIndex, 1);
- score += 10;
- scoreTxt.setText("Score: " + score);
- }
- });
- });
+ bullets.forEach(function (bullet, bulletIndex) {
+ obstacles.forEach(function (obstacle, obstacleIndex) {
+ if (bullet.intersects(obstacle)) {
+ bullet.destroy();
+ obstacle.destroy();
+ // Create an explosion at the location of the destroyed obstacle
+ var explosion = new Explosion();
+ explosion.x = obstacle.x;
+ explosion.y = obstacle.y;
+ game.addChild(explosion);
+ bullets.splice(bulletIndex, 1);
+ obstacles.splice(obstacleIndex, 1);
+ score += 10;
+ scoreTxt.setText("Score: " + score);
+ }
+ });
+ });
}
// Initialize hero
hero = new Hero();
hero.x = 1024; // Center horizontally
hero.y = 2732 - 200; // Position from the bottom
game.addChild(hero);
// Initialize score display
scoreTxt = new Text2("Score: 0", {
- size: 100,
- fill: "#ffffff"
+ size: 100,
+ fill: "#ffffff"
});
LK.gui.top.addChild(scoreTxt);
// Game update function
game.update = function () {
- if (LK.ticks % 120 == 0) {
- // Spawn an obstacle every 2 seconds
- spawnObstacle();
- }
- if (LK.ticks % 30 == 0) {
- // Fire a bullet every 0.5 seconds
- fireBullet();
- }
- checkCollisions();
+ if (LK.ticks % 120 == 0) {
+ // Spawn an obstacle every 2 seconds
+ spawnObstacle();
+ }
+ if (LK.ticks % 30 == 0) {
+ // Fire a bullet every 0.5 seconds
+ fireBullet();
+ }
+ checkCollisions();
};
// Touch event to move the hero
game.down = function (x, y, obj) {
- var gamePos = game.toLocal(obj.global);
- hero.x = gamePos.x;
+ var gamePos = game.toLocal(obj.global);
+ hero.x = gamePos.x;
};
game.move = function (x, y, obj) {
- var gamePos = game.toLocal(obj.global);
- hero.x = gamePos.x;
+ var gamePos = game.toLocal(obj.global);
+ hero.x = gamePos.x;
};
\ No newline at end of file