/****
* Classes
****/
// Class for market signals
var MarketSignal = Container.expand(function () {
var self = Container.call(this);
self.isBull = Math.random() > 0.5;
var color = self.isBull ? 0x00ff00 : 0xff0000;
var signalGraphics = self.attachAsset('signal', {
color: color,
width: 200,
height: 50,
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
self.x -= self.speed;
if (self.x < -100) {
self.destroy();
}
};
});
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// 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
});
self.yVelocity = 0;
self.isJumping = false;
self.update = function () {
if (self.isJumping) {
self.y += self.yVelocity;
self.yVelocity += 0.5; // Gravity effect
if (self.y >= 200) {
// Ground level
self.y = 200;
self.isJumping = false;
}
}
};
self.jump = function () {
if (!self.isJumping) {
self.isJumping = true;
self.yVelocity = -15; // Jump strength
}
};
});
// Class for the shark
var Shark = Container.expand(function () {
var self = Container.call(this);
var sharkGraphics = self.attachAsset('shark', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 3;
self.update = function () {
self.x += self.speed;
if (self.x > 2048) {
self.x = -100;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Initialize player
var player = new Player();
player.x = 200;
player.y = 200;
game.addChild(player);
// Initialize shark
var shark = new Shark();
shark.y = 2600; // Bottom of the screen
game.addChild(shark);
// Array to hold market signals
var marketSignals = [];
// Function to create a new market signal
function createMarketSignal() {
var signal = new MarketSignal();
signal.x = 2048;
signal.y = 200;
marketSignals.push(signal);
game.addChild(signal);
}
// Create market signals at intervals
var signalInterval = LK.setInterval(createMarketSignal, 2000);
// Handle player jump on touch
game.down = function (x, y, obj) {
player.jump();
};
// Update game state
game.update = function () {
player.update();
shark.update();
for (var i = marketSignals.length - 1; i >= 0; i--) {
marketSignals[i].update();
if (player.intersects(marketSignals[i])) {
if (!marketSignals[i].isBull) {
// If player steps on a bear market signal
marketSignals[i].destroy();
marketSignals.splice(i, 1);
}
}
}
};