/**** * Classes ****/ // Class for the collectible letters var Letter = Container.expand(function () { var self = Container.call(this); var letterGraphics = self.attachAsset('K', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { self.y += 2; if (self.y > 2732) { self.y = 0; self.x = Math.random() * 2048; } }; }); //<Assets used in the game will automatically appear here> //<Write imports for supported plugins here> // Class for the skateboarder character var Skateboarder = Container.expand(function () { var self = Container.call(this); var skateboarderGraphics = self.attachAsset('skateboarder', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { self.x += self.speed; if (self.x > 2048) { self.x = 0; } }; self.doTrick = function () { LK.effects.flashObject(self, 0x00ff00, 500); }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ // Initialize game variables var skateboarder = game.addChild(new Skateboarder()); skateboarder.x = 1024; skateboarder.y = 2400; var letters = []; var collectedLetters = []; // Create letters for (var i = 0; i < 6; i++) { var letter = new Letter(); letter.x = Math.random() * 2048; letter.y = Math.random() * 2732; letters.push(letter); game.addChild(letter); } // Add S asset to the map var sLetter = new Letter(); sLetter.attachAsset('S', { anchorX: 0.5, anchorY: 0.5 }); sLetter.x = Math.random() * 2048; sLetter.y = Math.random() * 2732; letters.push(sLetter); game.addChild(sLetter); // Add skateboard ramp to the game var ramp = game.addChild(LK.getAsset('ramp', { anchorX: 0.5, anchorY: 0.5 })); ramp.x = 1024; ramp.y = 2000; // Create buttons for tricks var trickButtons = []; var trickNames = ['Ollie', 'Kickflip', 'Heelflip', 'Grind', 'Manual', 'Airwalk']; for (var j = 0; j < trickNames.length; j++) { var button = new Text2(trickNames[j], { size: 100, fill: 0xFFFFFF }); button.x = 200 + j * 300; button.y = 2600; button.anchor.set(0.5, 0.5); LK.gui.bottom.addChild(button); trickButtons.push(button); // Add event listener for button button.down = function (trick) { return function () { skateboarder.doTrick(); console.log("Performed trick: " + trick); }; }(trickNames[j]); } // Update game logic game.update = function () { skateboarder.update(); for (var k = letters.length - 1; k >= 0; k--) { letters[k].update(); if (skateboarder.intersects(letters[k])) { collectedLetters.push(letters[k]); letters[k].destroy(); letters.splice(k, 1); console.log("Collected letter: " + collectedLetters.length); } } if (collectedLetters.length === 6) { console.log("Collected all letters: S-K-A-T-E-R"); LK.showGameOver(); } };
/****
* Classes
****/
// Class for the collectible letters
var Letter = Container.expand(function () {
var self = Container.call(this);
var letterGraphics = self.attachAsset('K', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
self.y += 2;
if (self.y > 2732) {
self.y = 0;
self.x = Math.random() * 2048;
}
};
});
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Class for the skateboarder character
var Skateboarder = Container.expand(function () {
var self = Container.call(this);
var skateboarderGraphics = self.attachAsset('skateboarder', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
self.x += self.speed;
if (self.x > 2048) {
self.x = 0;
}
};
self.doTrick = function () {
LK.effects.flashObject(self, 0x00ff00, 500);
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Initialize game variables
var skateboarder = game.addChild(new Skateboarder());
skateboarder.x = 1024;
skateboarder.y = 2400;
var letters = [];
var collectedLetters = [];
// Create letters
for (var i = 0; i < 6; i++) {
var letter = new Letter();
letter.x = Math.random() * 2048;
letter.y = Math.random() * 2732;
letters.push(letter);
game.addChild(letter);
}
// Add S asset to the map
var sLetter = new Letter();
sLetter.attachAsset('S', {
anchorX: 0.5,
anchorY: 0.5
});
sLetter.x = Math.random() * 2048;
sLetter.y = Math.random() * 2732;
letters.push(sLetter);
game.addChild(sLetter);
// Add skateboard ramp to the game
var ramp = game.addChild(LK.getAsset('ramp', {
anchorX: 0.5,
anchorY: 0.5
}));
ramp.x = 1024;
ramp.y = 2000;
// Create buttons for tricks
var trickButtons = [];
var trickNames = ['Ollie', 'Kickflip', 'Heelflip', 'Grind', 'Manual', 'Airwalk'];
for (var j = 0; j < trickNames.length; j++) {
var button = new Text2(trickNames[j], {
size: 100,
fill: 0xFFFFFF
});
button.x = 200 + j * 300;
button.y = 2600;
button.anchor.set(0.5, 0.5);
LK.gui.bottom.addChild(button);
trickButtons.push(button);
// Add event listener for button
button.down = function (trick) {
return function () {
skateboarder.doTrick();
console.log("Performed trick: " + trick);
};
}(trickNames[j]);
}
// Update game logic
game.update = function () {
skateboarder.update();
for (var k = letters.length - 1; k >= 0; k--) {
letters[k].update();
if (skateboarder.intersects(letters[k])) {
collectedLetters.push(letters[k]);
letters[k].destroy();
letters.splice(k, 1);
console.log("Collected letter: " + collectedLetters.length);
}
}
if (collectedLetters.length === 6) {
console.log("Collected all letters: S-K-A-T-E-R");
LK.showGameOver();
}
};