/**** * Classes ****/ var OverhangPlate = Container.expand(function (width, direction, color) { var self = Container.call(this); var plateGraphics = self.attachAsset('plate', { anchorX: 0.5, anchorY: 0.5 }); plateGraphics.width = width; plateGraphics.tint = color; self.speedX = direction === 'right' ? 5 : -5; self.speedY = -20; self.rotationSpeed = direction === 'right' ? 0.01 : -0.01; self.move = function () { self.x += self.speedX; self.y += self.speedY; self.speedY += 0.5; self.speedX *= 0.99; self.rotation += self.rotationSpeed; }; }); var Brick = Container.expand(function (targetWidth) { var self = Container.call(this); var brickGraphics = self.attachAsset('brick', { anchorX: 0.5, anchorY: 0.5 }); brickGraphics.width = targetWidth; self.speed = 22.5; self.move = function () { self.x -= self.speed; }; self.stack = function () { self.speed = 0; }; self.slide = function () { self.x = 2048 + self.width / 2; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var scoreTxt = new Text2('0', { size: 150, fill: '#ffffff', font: 'Impact' }); scoreTxt.anchor.set(.5, 0); LK.gui.topCenter.addChild(scoreTxt); var plateContainer = new Container(); plateContainer.targetY = 0; game.addChild(plateContainer); var currentPlateWidth = 1000; var plates = []; var plateColorIndex = 0; var firstBrick = new Brick(currentPlateWidth); firstBrick.x = 2048 / 2; firstBrick.y = 2732 - firstBrick.height / 2; firstBrick.speed = 0; plates.push(firstBrick); plateContainer.addChild(firstBrick); var newBrick = new Brick(currentPlateWidth); newBrick.slide(); newBrick.y = 2732 - plates.length * newBrick.height - newBrick.height / 2; plates.push(newBrick); plateContainer.addChild(newBrick); game.on('down', function (obj) { var topBrick = plates[plates.length - 2]; if (newBrick.x < topBrick.x + topBrick.width && newBrick.x + newBrick.width > topBrick.x) { var overhang = newBrick.x + newBrick.width / 2 - (topBrick.x + topBrick.width / 2); var overhangSide = overhang > 0 ? 'right' : 'left'; overhang = Math.abs(overhang); newBrick.stack(); currentPlateWidth -= overhang; var overhangBrick = new OverhangPlate(overhang, overhangSide, newBrick.color); overhangBrick.x = overhangSide === 'right' ? newBrick.x + newBrick.width / 2 : newBrick.x - newBrick.width / 2; overhangBrick.y = newBrick.y; plateContainer.addChildAt(overhangBrick, 0); newBrick.width -= overhang; if (overhangSide === 'right') { newBrick.x -= overhang / 2; overhangBrick.x -= overhang / 2; } else { newBrick.x += overhang / 2; overhangBrick.x += overhang / 2; } newBrick = new Brick(currentPlateWidth); newBrick.slide(); newBrick.y = 2732 - plates.length * newBrick.height - newBrick.height / 2; plates.push(newBrick); plateContainer.addChild(newBrick); if (plates.length > 17) { plateContainer.targetY += newBrick.height; } scoreTxt.setText(plates.length - 2); } else { LK.showGameOver(); } }); LK.on('tick', function () { for (var i = 0; i < plateContainer.children.length; i++) { var plate = plateContainer.children[i]; plate.move(); if (plate instanceof OverhangPlate && (plate.x < -plate.width / 2 || plate.x > 2048 + plate.width / 2 || plate.y > 2732 + plate.height / 2)) { plate.destroy(); } if (plate instanceof Brick && plate.x < -plate.width / 2) { LK.showGameOver(); } } if (plateContainer.y !== plateContainer.targetY) { plateContainer.y += (plateContainer.targetY - plateContainer.y) * 0.1; } });
===================================================================
--- original.js
+++ change.js
@@ -112,9 +112,9 @@
plate.move();
if (plate instanceof OverhangPlate && (plate.x < -plate.width / 2 || plate.x > 2048 + plate.width / 2 || plate.y > 2732 + plate.height / 2)) {
plate.destroy();
}
- if (plate instanceof Plate && plate.x < -plate.width / 2) {
+ if (plate instanceof Brick && plate.x < -plate.width / 2) {
LK.showGameOver();
}
}
if (plateContainer.y !== plateContainer.targetY) {