var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.createAsset('player', 'Player Graphics', .5, .5);
playerGraphics.scale.set(2);
playerGraphics.scale.x *= -1;
self.speed = 5;
self.move = function (direction) {
if (direction === 'left') {
self.x -= self.speed;
} else if (direction === 'right') {
self.x += self.speed;
}
};
});
var CPU1 = Container.expand(function () {
var self = Container.call(this);
var cpuGraphics = self.createAsset('cpu1', 'CPU1 Graphics', .5, .5);
cpuGraphics.scale.set(2);
cpuGraphics.scale.x *= -1;
self.speed = 3;
self.move = function () {
self.x += self.speed;
};
});
var CPU2 = Container.expand(function () {
var self = Container.call(this);
var cpuGraphics = self.createAsset('cpu2', 'CPU2 Graphics', .5, .5);
cpuGraphics.scale.set(2);
cpuGraphics.scale.x *= -1;
self.speed = 2;
self.move = function () {
self.x += self.speed;
};
});
var CPU3 = Container.expand(function () {
var self = Container.call(this);
var cpuGraphics = self.createAsset('cpu3', 'CPU3 Graphics', .5, .5);
cpuGraphics.scale.set(2);
cpuGraphics.scale.x *= -1;
self.speed = 3;
self.move = function () {
self.x += self.speed;
};
});
var FinishLine = Container.expand(function () {
var self = Container.call(this);
var finishLineGraphics = self.createAsset('finishLine', 'Finish Line Graphics', .5, 1);
finishLineGraphics.scale.set(5);
finishLineGraphics.tint = 0xFFFFFF;
});
var Game = Container.expand(function () {
var self = Container.call(this);
LK.stageContainer.setBackgroundColor(0x00008B);
var gameTitle = new Text2('Car Racing!', {
size: 200,
fill: '#ff4500',
font: 'Arial',
fontWeight: 'bold',
stroke: '#ffffff',
strokeThickness: 6,
dropShadow: true,
dropShadowColor: '#000000',
dropShadowBlur: 4,
dropShadowAngle: Math.PI / 6,
dropShadowDistance: 6
});
gameTitle.anchor.set(0.5, 0);
gameTitle.x = 2048 / 2;
gameTitle.y = 200;
self.addChild(gameTitle);
var player = self.addChild(new Player());
player.x = 200;
player.y = 2732 / 2;
var cpu1 = self.addChild(new CPU1());
cpu1.x = 200;
cpu1.y = 2732 / 2 - 100;
var cpu2 = self.addChild(new CPU2());
cpu2.x = 200;
cpu2.y = 2732 / 2 - 200;
var cpu3 = self.addChild(new CPU3());
cpu3.x = 200;
cpu3.y = 2732 / 2 - 300;
var finishLine = self.addChild(new FinishLine());
finishLine.x = 2048 - 200;
finishLine.y = 2732 / 2;
var countdown = 3;
var countdownText = new Text2(countdown.toString(), {
size: 150,
fill: '#ffffff'
});
countdownText.x = 2048 / 2;
countdownText.y = 2732 / 2;
self.addChild(countdownText);
var countdownInterval = LK.setInterval(function () {
countdown--;
countdownText.setText(countdown.toString());
if (countdown === 0) {
LK.clearInterval(countdownInterval);
countdownText.destroy();
}
}, 1000);
var leftArrow = self.createAsset('leftArrow', 'Left Arrow', .5, .5);
leftArrow.scale.set(-2, 2);
leftArrow.x = 100;
leftArrow.y = 2732 - 100;
var leftArrowPressed = false;
leftArrow.on('down', function () {
leftArrowPressed = true;
});
leftArrow.on('up', function () {
leftArrowPressed = false;
});
var rightArrow = self.createAsset('rightArrow', 'Right Arrow', .5, .5);
rightArrow.scale.set(2);
rightArrow.x = 2048 - 100;
rightArrow.y = 2732 - 100;
var rightArrowPressed = false;
rightArrow.on('down', function () {
rightArrowPressed = true;
});
rightArrow.on('up', function () {
rightArrowPressed = false;
});
var isGameOver = false;
LK.on('tick', function () {
if (countdown === 0) {
cpu1.move();
cpu2.move();
cpu3.move();
if (leftArrowPressed) {
player.move('left');
}
if (rightArrowPressed) {
player.move('right');
}
}
if (player.intersects(finishLine)) {
isGameOver = true;
console.log("Player Wins!");
}
if (cpu1.intersects(finishLine) || cpu2.intersects(finishLine) || cpu3.intersects(finishLine)) {
isGameOver = true;
console.log("CPU Wins!");
}
if (isGameOver) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
});
});