/**** * Classes ****/ // Class for the fire balls var FireBall = Container.expand(function () { var self = Container.call(this); var fireBallGraphics = self.attachAsset('fireBall', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -5; self.update = function () { self.y += self.speed; }; }); // Class for the fire power ups var FirePowerUp = Container.expand(function () { var self = Container.call(this); var firePowerUpGraphics = self.attachAsset('firePowerUp', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Add any update logic for the fire power up here }; }); // Class for the hoops var Hoop = Container.expand(function () { var self = Container.call(this); var hoopGraphics = self.attachAsset('hoop', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Add any update logic for the hoop here }; }); // Class for the mushroom power ups var Mushroom = Container.expand(function () { var self = Container.call(this); var mushroomGraphics = self.attachAsset('mushroom', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Add any update logic for the mushroom here }; }); // Class for obstacles var Obstacle = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Add any update logic for the obstacle here }; }); //<Assets used in the game will automatically appear here> // Class for the slimy ball controlled by the player var SlimyBall = Container.expand(function () { var self = Container.call(this); var ballGraphics = self.attachAsset('slimyBall', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Add any update logic for the slimy ball here }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with a black background }); /**** * Game Code ****/ // Initialize arrays and variables var hoops = []; var obstacles = []; var mushrooms = []; var firePowerUps = []; var fireBalls = []; var fireBallPowerUp = false; var extraLife = false; var score = 0; var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Initialize joystick position var joystickX = 2048 / 2; var joystickY = 2732 - 200; // Create the slimy ball and position it var slimyBall = game.addChild(new SlimyBall()); slimyBall.x = 2048 / 2; slimyBall.y = 2732 - 200; // Function to handle move events function handleMove(x, y, obj) { joystickX = x; joystickY = y; } // Function to handle scoring function handleScoring() { for (var i = hoops.length - 1; i >= 0; i--) { if (slimyBall.intersects(hoops[i])) { score += 1; scoreTxt.setText(score); hoops[i].destroy(); hoops.splice(i, 1); } } } // Function to handle obstacles function handleObstacles() { for (var i = obstacles.length - 1; i >= 0; i--) { if (slimyBall.intersects(obstacles[i])) { if (extraLife) { extraLife = false; obstacles[i].destroy(); obstacles.splice(i, 1); } else { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } } } } // Create hoops, obstacles and mushrooms at intervals var hoopInterval = LK.setInterval(function () { var newHoop = new Hoop(); newHoop.x = Math.random() * 2048; newHoop.y = -100; hoops.push(newHoop); game.addChild(newHoop); }, 2000); var obstacleInterval = LK.setInterval(function () { var newObstacle = new Obstacle(); newObstacle.x = Math.random() * 2048; newObstacle.y = -100; obstacles.push(newObstacle); game.addChild(newObstacle); }, 3000); var mushroomInterval = LK.setInterval(function () { var newMushroom = new Mushroom(); newMushroom.x = Math.random() * 2048; newMushroom.y = -100; mushrooms.push(newMushroom); game.addChild(newMushroom); }, 5000); var firePowerUpInterval = LK.setInterval(function () { var newFirePowerUp = new FirePowerUp(); newFirePowerUp.x = Math.random() * 2048; newFirePowerUp.y = -100; firePowerUps.push(newFirePowerUp); game.addChild(newFirePowerUp); }, 7000); // Update function called every game tick game.update = function () { // Move the slimy ball based on the joystick position slimyBall.x += (joystickX - slimyBall.x) * 0.1; slimyBall.y += (joystickY - slimyBall.y) * 0.1; handleScoring(); handleObstacles(); for (var i = hoops.length - 1; i >= 0; i--) { hoops[i].y += 5; if (hoops[i].y > 2732) { hoops[i].destroy(); hoops.splice(i, 1); } } for (var i = obstacles.length - 1; i >= 0; i--) { obstacles[i].y += 5; if (obstacles[i].y > 2732) { obstacles[i].destroy(); obstacles.splice(i, 1); } } for (var i = firePowerUps.length - 1; i >= 0; i--) { firePowerUps[i].y += 5; if (firePowerUps[i].y > 2732) { firePowerUps[i].destroy(); firePowerUps.splice(i, 1); } if (slimyBall.intersects(firePowerUps[i])) { firePowerUps[i].destroy(); firePowerUps.splice(i, 1); fireBallPowerUp = true; } } for (var i = mushrooms.length - 1; i >= 0; i--) { mushrooms[i].y += 5; if (mushrooms[i].y > 2732) { mushrooms[i].destroy(); mushrooms.splice(i, 1); } if (slimyBall.intersects(mushrooms[i])) { mushrooms[i].destroy(); mushrooms.splice(i, 1); extraLife = true; } } for (var i = fireBalls.length - 1; i >= 0; i--) { fireBalls[i].y -= 5; if (fireBalls[i].y < 0) { fireBalls[i].destroy(); fireBalls.splice(i, 1); } for (var j = obstacles.length - 1; j >= 0; j--) { if (fireBalls[i] && fireBalls[i].intersects(obstacles[j])) { fireBalls[i].destroy(); fireBalls.splice(i, 1); obstacles[j].destroy(); obstacles.splice(j, 1); break; } } } }; // Event listeners for touch/mouse events game.move = handleMove; var tapCount = 0; game.down = function (x, y, obj) { handleMove(x, y, obj); if (fireBallPowerUp) { tapCount++; if (tapCount == 2) { var newFireBall = new FireBall(); newFireBall.x = slimyBall.x; newFireBall.y = slimyBall.y; fireBalls.push(newFireBall); game.addChild(newFireBall); tapCount = 0; } } }; game.up = function (x, y, obj) { // No action needed on up event for now };
/****
* Classes
****/
// Class for the fire balls
var FireBall = Container.expand(function () {
var self = Container.call(this);
var fireBallGraphics = self.attachAsset('fireBall', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -5;
self.update = function () {
self.y += self.speed;
};
});
// Class for the fire power ups
var FirePowerUp = Container.expand(function () {
var self = Container.call(this);
var firePowerUpGraphics = self.attachAsset('firePowerUp', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Add any update logic for the fire power up here
};
});
// Class for the hoops
var Hoop = Container.expand(function () {
var self = Container.call(this);
var hoopGraphics = self.attachAsset('hoop', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Add any update logic for the hoop here
};
});
// Class for the mushroom power ups
var Mushroom = Container.expand(function () {
var self = Container.call(this);
var mushroomGraphics = self.attachAsset('mushroom', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Add any update logic for the mushroom here
};
});
// Class for obstacles
var Obstacle = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Add any update logic for the obstacle here
};
});
//<Assets used in the game will automatically appear here>
// Class for the slimy ball controlled by the player
var SlimyBall = Container.expand(function () {
var self = Container.call(this);
var ballGraphics = self.attachAsset('slimyBall', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Add any update logic for the slimy ball here
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with a black background
});
/****
* Game Code
****/
// Initialize arrays and variables
var hoops = [];
var obstacles = [];
var mushrooms = [];
var firePowerUps = [];
var fireBalls = [];
var fireBallPowerUp = false;
var extraLife = false;
var score = 0;
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Initialize joystick position
var joystickX = 2048 / 2;
var joystickY = 2732 - 200;
// Create the slimy ball and position it
var slimyBall = game.addChild(new SlimyBall());
slimyBall.x = 2048 / 2;
slimyBall.y = 2732 - 200;
// Function to handle move events
function handleMove(x, y, obj) {
joystickX = x;
joystickY = y;
}
// Function to handle scoring
function handleScoring() {
for (var i = hoops.length - 1; i >= 0; i--) {
if (slimyBall.intersects(hoops[i])) {
score += 1;
scoreTxt.setText(score);
hoops[i].destroy();
hoops.splice(i, 1);
}
}
}
// Function to handle obstacles
function handleObstacles() {
for (var i = obstacles.length - 1; i >= 0; i--) {
if (slimyBall.intersects(obstacles[i])) {
if (extraLife) {
extraLife = false;
obstacles[i].destroy();
obstacles.splice(i, 1);
} else {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
}
}
// Create hoops, obstacles and mushrooms at intervals
var hoopInterval = LK.setInterval(function () {
var newHoop = new Hoop();
newHoop.x = Math.random() * 2048;
newHoop.y = -100;
hoops.push(newHoop);
game.addChild(newHoop);
}, 2000);
var obstacleInterval = LK.setInterval(function () {
var newObstacle = new Obstacle();
newObstacle.x = Math.random() * 2048;
newObstacle.y = -100;
obstacles.push(newObstacle);
game.addChild(newObstacle);
}, 3000);
var mushroomInterval = LK.setInterval(function () {
var newMushroom = new Mushroom();
newMushroom.x = Math.random() * 2048;
newMushroom.y = -100;
mushrooms.push(newMushroom);
game.addChild(newMushroom);
}, 5000);
var firePowerUpInterval = LK.setInterval(function () {
var newFirePowerUp = new FirePowerUp();
newFirePowerUp.x = Math.random() * 2048;
newFirePowerUp.y = -100;
firePowerUps.push(newFirePowerUp);
game.addChild(newFirePowerUp);
}, 7000);
// Update function called every game tick
game.update = function () {
// Move the slimy ball based on the joystick position
slimyBall.x += (joystickX - slimyBall.x) * 0.1;
slimyBall.y += (joystickY - slimyBall.y) * 0.1;
handleScoring();
handleObstacles();
for (var i = hoops.length - 1; i >= 0; i--) {
hoops[i].y += 5;
if (hoops[i].y > 2732) {
hoops[i].destroy();
hoops.splice(i, 1);
}
}
for (var i = obstacles.length - 1; i >= 0; i--) {
obstacles[i].y += 5;
if (obstacles[i].y > 2732) {
obstacles[i].destroy();
obstacles.splice(i, 1);
}
}
for (var i = firePowerUps.length - 1; i >= 0; i--) {
firePowerUps[i].y += 5;
if (firePowerUps[i].y > 2732) {
firePowerUps[i].destroy();
firePowerUps.splice(i, 1);
}
if (slimyBall.intersects(firePowerUps[i])) {
firePowerUps[i].destroy();
firePowerUps.splice(i, 1);
fireBallPowerUp = true;
}
}
for (var i = mushrooms.length - 1; i >= 0; i--) {
mushrooms[i].y += 5;
if (mushrooms[i].y > 2732) {
mushrooms[i].destroy();
mushrooms.splice(i, 1);
}
if (slimyBall.intersects(mushrooms[i])) {
mushrooms[i].destroy();
mushrooms.splice(i, 1);
extraLife = true;
}
}
for (var i = fireBalls.length - 1; i >= 0; i--) {
fireBalls[i].y -= 5;
if (fireBalls[i].y < 0) {
fireBalls[i].destroy();
fireBalls.splice(i, 1);
}
for (var j = obstacles.length - 1; j >= 0; j--) {
if (fireBalls[i] && fireBalls[i].intersects(obstacles[j])) {
fireBalls[i].destroy();
fireBalls.splice(i, 1);
obstacles[j].destroy();
obstacles.splice(j, 1);
break;
}
}
}
};
// Event listeners for touch/mouse events
game.move = handleMove;
var tapCount = 0;
game.down = function (x, y, obj) {
handleMove(x, y, obj);
if (fireBallPowerUp) {
tapCount++;
if (tapCount == 2) {
var newFireBall = new FireBall();
newFireBall.x = slimyBall.x;
newFireBall.y = slimyBall.y;
fireBalls.push(newFireBall);
game.addChild(newFireBall);
tapCount = 0;
}
}
};
game.up = function (x, y, obj) {
// No action needed on up event for now
};
3-D slime Person. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Skull. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Basketball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Fireball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Mario mushroom. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.