/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Ball = Container.expand(function () {
var self = Container.call(this);
var ballGraphics = self.attachAsset('ball', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityX = 0;
self.velocityY = 0;
self.speed = 6;
self.update = function () {
self.x += self.velocityX;
self.y += self.velocityY;
// Bounce off walls
if (self.x <= 50 || self.x >= 1998) {
self.velocityX = -self.velocityX;
LK.getSound('bounce').play();
}
if (self.y <= 50 || self.y >= 2682) {
self.velocityY = -self.velocityY;
LK.getSound('bounce').play();
}
// Keep ball within bounds
if (self.x < 50) self.x = 50;
if (self.x > 1998) self.x = 1998;
if (self.y < 50) self.y = 50;
if (self.y > 2682) self.y = 2682;
};
return self;
});
var Picture = Container.expand(function () {
var self = Container.call(this);
var pictureGraphics = self.attachAsset('picture', {
anchorX: 0.5,
anchorY: 0.5
});
self.collected = false;
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 8;
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2196F3
});
/****
* Game Code
****/
// Game variables
var player = null;
var ball = null;
var pictures = [];
var totalPictures = 8;
var collectedCount = 0;
var dragNode = null;
// UI Elements
var scoreTxt = new Text2('Pictures: 0/' + totalPictures, {
size: 100,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Create player
player = game.addChild(new Player());
player.x = 1024;
player.y = 1366;
// Create ball
ball = game.addChild(new Ball());
ball.x = 500;
ball.y = 500;
// Set random initial velocity
var angle = Math.random() * Math.PI * 2;
ball.velocityX = Math.cos(angle) * ball.speed;
ball.velocityY = Math.sin(angle) * ball.speed;
// Create pictures
for (var i = 0; i < totalPictures; i++) {
var picture = game.addChild(new Picture());
var validPosition = false;
var attempts = 0;
while (!validPosition && attempts < 50) {
picture.x = 100 + Math.random() * 1848;
picture.y = 100 + Math.random() * 2532;
// Check distance from ball
var distToBall = Math.sqrt(Math.pow(picture.x - ball.x, 2) + Math.pow(picture.y - ball.y, 2));
// Check distance from player
var distToPlayer = Math.sqrt(Math.pow(picture.x - player.x, 2) + Math.pow(picture.y - player.y, 2));
if (distToBall > 200 && distToPlayer > 150) {
validPosition = true;
}
attempts++;
}
pictures.push(picture);
}
// Movement handler
function handleMove(x, y, obj) {
if (dragNode) {
// Keep player within bounds
var newX = Math.max(40, Math.min(2008, x));
var newY = Math.max(40, Math.min(2692, y));
dragNode.x = newX;
dragNode.y = newY;
}
}
// Event handlers
game.move = handleMove;
game.down = function (x, y, obj) {
dragNode = player;
handleMove(x, y, obj);
};
game.up = function (x, y, obj) {
dragNode = null;
};
// Game update loop
game.update = function () {
// Check collision with ball
if (player.intersects(ball)) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
// Check picture collection
for (var i = pictures.length - 1; i >= 0; i--) {
var picture = pictures[i];
if (!picture.collected && player.intersects(picture)) {
picture.collected = true;
picture.destroy();
pictures.splice(i, 1);
collectedCount++;
LK.getSound('collect').play();
LK.effects.flashObject(player, 0x00FF00, 300);
// Update score
scoreTxt.setText('Pictures: ' + collectedCount + '/' + totalPictures);
// Check win condition
if (collectedCount >= totalPictures) {
LK.showYouWin();
return;
}
}
}
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,158 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Ball = Container.expand(function () {
+ var self = Container.call(this);
+ var ballGraphics = self.attachAsset('ball', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.velocityX = 0;
+ self.velocityY = 0;
+ self.speed = 6;
+ self.update = function () {
+ self.x += self.velocityX;
+ self.y += self.velocityY;
+ // Bounce off walls
+ if (self.x <= 50 || self.x >= 1998) {
+ self.velocityX = -self.velocityX;
+ LK.getSound('bounce').play();
+ }
+ if (self.y <= 50 || self.y >= 2682) {
+ self.velocityY = -self.velocityY;
+ LK.getSound('bounce').play();
+ }
+ // Keep ball within bounds
+ if (self.x < 50) self.x = 50;
+ if (self.x > 1998) self.x = 1998;
+ if (self.y < 50) self.y = 50;
+ if (self.y > 2682) self.y = 2682;
+ };
+ return self;
+});
+var Picture = Container.expand(function () {
+ var self = Container.call(this);
+ var pictureGraphics = self.attachAsset('picture', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.collected = false;
+ return self;
+});
+var Player = Container.expand(function () {
+ var self = Container.call(this);
+ var playerGraphics = self.attachAsset('player', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 8;
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x2196F3
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var player = null;
+var ball = null;
+var pictures = [];
+var totalPictures = 8;
+var collectedCount = 0;
+var dragNode = null;
+// UI Elements
+var scoreTxt = new Text2('Pictures: 0/' + totalPictures, {
+ size: 100,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Create player
+player = game.addChild(new Player());
+player.x = 1024;
+player.y = 1366;
+// Create ball
+ball = game.addChild(new Ball());
+ball.x = 500;
+ball.y = 500;
+// Set random initial velocity
+var angle = Math.random() * Math.PI * 2;
+ball.velocityX = Math.cos(angle) * ball.speed;
+ball.velocityY = Math.sin(angle) * ball.speed;
+// Create pictures
+for (var i = 0; i < totalPictures; i++) {
+ var picture = game.addChild(new Picture());
+ var validPosition = false;
+ var attempts = 0;
+ while (!validPosition && attempts < 50) {
+ picture.x = 100 + Math.random() * 1848;
+ picture.y = 100 + Math.random() * 2532;
+ // Check distance from ball
+ var distToBall = Math.sqrt(Math.pow(picture.x - ball.x, 2) + Math.pow(picture.y - ball.y, 2));
+ // Check distance from player
+ var distToPlayer = Math.sqrt(Math.pow(picture.x - player.x, 2) + Math.pow(picture.y - player.y, 2));
+ if (distToBall > 200 && distToPlayer > 150) {
+ validPosition = true;
+ }
+ attempts++;
+ }
+ pictures.push(picture);
+}
+// Movement handler
+function handleMove(x, y, obj) {
+ if (dragNode) {
+ // Keep player within bounds
+ var newX = Math.max(40, Math.min(2008, x));
+ var newY = Math.max(40, Math.min(2692, y));
+ dragNode.x = newX;
+ dragNode.y = newY;
+ }
+}
+// Event handlers
+game.move = handleMove;
+game.down = function (x, y, obj) {
+ dragNode = player;
+ handleMove(x, y, obj);
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+// Game update loop
+game.update = function () {
+ // Check collision with ball
+ if (player.intersects(ball)) {
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ // Check picture collection
+ for (var i = pictures.length - 1; i >= 0; i--) {
+ var picture = pictures[i];
+ if (!picture.collected && player.intersects(picture)) {
+ picture.collected = true;
+ picture.destroy();
+ pictures.splice(i, 1);
+ collectedCount++;
+ LK.getSound('collect').play();
+ LK.effects.flashObject(player, 0x00FF00, 300);
+ // Update score
+ scoreTxt.setText('Pictures: ' + collectedCount + '/' + totalPictures);
+ // Check win condition
+ if (collectedCount >= totalPictures) {
+ LK.showYouWin();
+ return;
+ }
+ }
+ }
+};
\ No newline at end of file
freddy kruger pixel. In-Game asset. 2d. High contrast. No shadows
ketchup. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
pinhead hellraiser pixel art. In-Game asset. 2d. High contrast. No shadows
pinhead face. In-Game asset. 2d. High contrast. No shadows