User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'stage.on('move', function (obj) {' Line Number: 126
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'createAsset')' in this line: 'self.createAsset('powerBar', 'Wind power bar display', 0, 0.5);' Line Number: 15
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'createAsset')' in this line: 'self.createAsset('powerBar', 'Wind power bar display', 0, 0.5);' Line Number: 14
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'createAsset')' in this line: 'self.createAsset('powerBar', 'Wind power bar display', 0, 0.5);' Line Number: 14
User prompt
Show the asset
var RestartButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.createAsset('restartButton', 'Restart button', 0.5, 0.5); self.x = 2048 / 2; self.y = 2732 - 200; buttonGraphics.on('down', function () { LK.showGameOver(); }); }); var PowerBar = Container.expand(function () {}); var WindPowerBar = PowerBar.expand(function () { var self = Container.call(this); var self = PowerBar.call(this); self.createAsset('powerBar', 'Wind power bar display', 0, 0.5); var windLabel = new Text2('Wind', { size: 400, fill: "#ffffff", align: 'center' }); windLabel.x = self.width / 2; windLabel.y = -self.height; self.addChild(windLabel); self.y = 2732 - 200; }); var Hand = Container.expand(function () { var self = Container.call(this); self.move = function (position, stone) { self.x = position.x; if (!stone.isLaunched) { stone.x = self.x; } }; var handGraphics = self.createAsset('hand', 'Moving hand at the bottom', 0.5, 0.5); self.x = 0; self.y = 2732 - handGraphics.height / 2; self.direction = 1; self.speed = 5; self.visible = true; }); var Stone = Container.expand(function () { var self = Container.call(this); self.launch = function (hand, power) { self.x = hand.x; self.y = hand.y; self.direction = -Math.PI / 2; self.launchPower = power * 0.48; self.speed = self.launchPower; self.isLaunched = true; self.distanceTraveled = 0; LK.setScore(0); }; var stoneGraphics = self.createAsset('stone', 'Stone for ricochet', .5, .5); self.speed = 0; self.direction = 0; self.isLaunched = false; self.move = function () { self.x += self.speed * Math.cos(self.direction); self.y += self.speed * Math.sin(self.direction); self.speed *= 0.95; if (self.isLaunched) { self.distanceTraveled += self.speed; LK.setScore(Math.floor(self.distanceTraveled)); if (self.speed < 0.1) { if (Math.random() < 0.5) { var bouncePower = self.launchPower * (0.1 + Math.random() * 0.8); self.speed = bouncePower; self.direction = -Math.PI / 2; } else { LK.showGameOver(); self.isLaunched = false; } } } }; }); var Lake = Container.expand(function () { var self = Container.call(this); var lakeGraphics = self.createAsset('lake', 'Lake for stone ricochet', .5, .5); self.checkRicochet = function (stone) { if (stone.intersects(this)) { return true; } return false; }; }); var Game = Container.expand(function () { var self = Container.call(this); LK.stageContainer.setBackgroundColor(0x008080); var lake = new Lake(); self.addChildAt(lake, 0); lake.x = 2048 / 2; lake.y = 2732 / 2; var hand = self.addChild(new Hand()); var powerBar = self.addChild(new PowerBar()); var stone = self.addChild(new Stone()); stone.x = hand.x; stone.y = hand.y; var scoreTxt = new Text2('0', { size: 120, fill: "#ffffff" }); LK.gui.topCenter.addChild(scoreTxt); var isGameOver = false; var ricochets = 0; var restartButton = self.addChild(new RestartButton()); restartButton.visible = false; LK.on('tick', function () { if (!stone.isLaunched) {} stone.move(); if (!isGameOver) { scoreTxt.setText(LK.getScore()); } }); var windPowerBar = self.addChild(new WindPowerBar()); windPowerBar.visible = true; stage.on('down', function (obj) { if (!stone.isLaunched && !powerBar.visible && !windPowerBar.visible) { powerBar.show(); } else if (!stone.isLaunched && powerBar.visible && !windPowerBar.visible) { windPowerBar.show(); } else if (!stone.isLaunched && windPowerBar.visible) { stone.launch(hand, powerBar.progress, windPowerBar.progress); windPowerBar.hide(); powerBar.hide(); } }); stage.on('move', function (obj) { var event = obj.event; var pos = event.getLocalPosition(self); hand.move({ x: pos.x }, stone); }); });
var RestartButton = Container.expand(function () {
var self = Container.call(this);
var buttonGraphics = self.createAsset('restartButton', 'Restart button', 0.5, 0.5);
self.x = 2048 / 2;
self.y = 2732 - 200;
buttonGraphics.on('down', function () {
LK.showGameOver();
});
});
var PowerBar = Container.expand(function () {});
var WindPowerBar = PowerBar.expand(function () {
var self = Container.call(this);
var self = PowerBar.call(this);
self.createAsset('powerBar', 'Wind power bar display', 0, 0.5);
var windLabel = new Text2('Wind', {
size: 400,
fill: "#ffffff",
align: 'center'
});
windLabel.x = self.width / 2;
windLabel.y = -self.height;
self.addChild(windLabel);
self.y = 2732 - 200;
});
var Hand = Container.expand(function () {
var self = Container.call(this);
self.move = function (position, stone) {
self.x = position.x;
if (!stone.isLaunched) {
stone.x = self.x;
}
};
var handGraphics = self.createAsset('hand', 'Moving hand at the bottom', 0.5, 0.5);
self.x = 0;
self.y = 2732 - handGraphics.height / 2;
self.direction = 1;
self.speed = 5;
self.visible = true;
});
var Stone = Container.expand(function () {
var self = Container.call(this);
self.launch = function (hand, power) {
self.x = hand.x;
self.y = hand.y;
self.direction = -Math.PI / 2;
self.launchPower = power * 0.48;
self.speed = self.launchPower;
self.isLaunched = true;
self.distanceTraveled = 0;
LK.setScore(0);
};
var stoneGraphics = self.createAsset('stone', 'Stone for ricochet', .5, .5);
self.speed = 0;
self.direction = 0;
self.isLaunched = false;
self.move = function () {
self.x += self.speed * Math.cos(self.direction);
self.y += self.speed * Math.sin(self.direction);
self.speed *= 0.95;
if (self.isLaunched) {
self.distanceTraveled += self.speed;
LK.setScore(Math.floor(self.distanceTraveled));
if (self.speed < 0.1) {
if (Math.random() < 0.5) {
var bouncePower = self.launchPower * (0.1 + Math.random() * 0.8);
self.speed = bouncePower;
self.direction = -Math.PI / 2;
} else {
LK.showGameOver();
self.isLaunched = false;
}
}
}
};
});
var Lake = Container.expand(function () {
var self = Container.call(this);
var lakeGraphics = self.createAsset('lake', 'Lake for stone ricochet', .5, .5);
self.checkRicochet = function (stone) {
if (stone.intersects(this)) {
return true;
}
return false;
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
LK.stageContainer.setBackgroundColor(0x008080);
var lake = new Lake();
self.addChildAt(lake, 0);
lake.x = 2048 / 2;
lake.y = 2732 / 2;
var hand = self.addChild(new Hand());
var powerBar = self.addChild(new PowerBar());
var stone = self.addChild(new Stone());
stone.x = hand.x;
stone.y = hand.y;
var scoreTxt = new Text2('0', {
size: 120,
fill: "#ffffff"
});
LK.gui.topCenter.addChild(scoreTxt);
var isGameOver = false;
var ricochets = 0;
var restartButton = self.addChild(new RestartButton());
restartButton.visible = false;
LK.on('tick', function () {
if (!stone.isLaunched) {}
stone.move();
if (!isGameOver) {
scoreTxt.setText(LK.getScore());
}
});
var windPowerBar = self.addChild(new WindPowerBar());
windPowerBar.visible = true;
stage.on('down', function (obj) {
if (!stone.isLaunched && !powerBar.visible && !windPowerBar.visible) {
powerBar.show();
} else if (!stone.isLaunched && powerBar.visible && !windPowerBar.visible) {
windPowerBar.show();
} else if (!stone.isLaunched && windPowerBar.visible) {
stone.launch(hand, powerBar.progress, windPowerBar.progress);
windPowerBar.hide();
powerBar.hide();
}
});
stage.on('move', function (obj) {
var event = obj.event;
var pos = event.getLocalPosition(self);
hand.move({
x: pos.x
}, stone);
});
});
A nice lake Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A hand Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A small stone Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A power bar Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A power bar Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A restart button Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.