var Ring = Container.expand(function (size) {
var self = Container.call(this);
self.size = size;
var ringGraphics = self.createAsset('ring', 'Ring for the game', 0.5, 0.5);
ringGraphics.scale.y = 1 - size * 0.15;
ringGraphics.rotation = Math.PI / 2;
self.type = Math.floor(Math.random() * 5);
var colors = [0xFF9999, 0xFFFF99, 0x99FF99, 0x9999FF, 0xFF99FF];
ringGraphics.tint = colors[self.type];
});
var Stack = Container.expand(function () {
var self = Container.call(this);
self.rings = [];
self.targetY = self.y;
self.move = function () {
if (self.y !== self.targetY) {
if (Math.abs(self.y - self.targetY) < 1) {
self.y = self.targetY;
} else {
self.y += (self.targetY - self.y) / 10;
}
}
};
var stackBG = self.createAsset('background', 'Background for the game', 0.5, 0.5);
self.setBGAlpha = function (alpha) {
stackBG.alpha = alpha;
};
self.setBGAlpha(0);
var rod = self.createAsset('rod', 'Rod for the game', 0.5, 0.5);
self.addRing = function (ring) {
if (self.rings.length < 5) {
self.rings.push(ring);
self.addChild(ring);
ring.y = 358 / 2 - self.rings.length * ring.height + ring.height / 2 - 5;
}
};
self.removeRing = function () {
if (self.rings.length > 0) {
var ring = self.rings.pop();
return ring;
}
};
self.checkRings = function () {
if (self.rings.length === 5 && self.rings[0].size === 0) {
var type = self.rings[0].type;
for (var i = 1; i < 5; i++) {
if (self.rings[i].type !== type || self.rings[i].size !== i) {
return false;
}
}
return true;
}
return false;
};
self.on('down', function () {
if (Game.selectedStack) {
if (self.rings.length < 5) {
var ring = Game.selectedStack.removeRing();
if (ring) {
self.addRing(ring);
}
}
Game.selectedStack.setBGAlpha(0);
Game.selectedStack = null;
} else {
Game.selectedStack = self;
self.setBGAlpha(0.5);
}
});
});
var Game = Container.expand(function () {
var self = Container.call(this);
self.stacks = [[], [], [], [], []];
self.selectedStack = null;
self.score = 0;
var background = self.createAsset('game_background', 'Background for the game', 0.5, 0.5);
background.zIndex = -1;
background.x = 2048 / 2;
background.y = 2732 / 2;
background.alpha = .3;
var stackContainer = self.addChild(new Container());
stackContainer.x = 368 / 2 + 79;
stackContainer.y = 368 / 2 + 500;
var scoreTxt = new Text2('0', {
size: 150,
fill: '#ffffff',
font: 'Impact',
dropShadow: true,
dropShadowColor: '#000000'
});
scoreTxt.setText(self.score);
scoreTxt.anchor.set(.5, 0);
LK.gui.topCenter.addChild(scoreTxt);
for (var row = 0; row < 5; row++) {
for (var col = 0; col < 5; col++) {
var stack = stackContainer.addChild(new Stack());
stack.x = col * (stack.width + 10);
stack.y = row * (stack.height + 10);
stack.targetY = stack.y;
if (!(row === 2 && col === 2)) {
for (var i = 0; i < 5; i++) {
var ring = new Ring(i);
stack.addRing(ring);
}
}
self.stacks[row][col] = stack;
}
}
LK.on('tick', function () {
for (var row = 0; row < self.stacks.length; row++) {
for (var col = 0; col < self.stacks[row].length; col++) {
if (self.stacks[row][col] && self.stacks[row][col].checkRings()) {
self.stacks[row][col].destroy();
self.stacks[row][col] = null;
self.score += 1;
scoreTxt.setText(self.score);
}
}
}
for (var row = self.stacks.length - 1; row >= 0; row--) {
for (var col = 0; col < self.stacks[row].length; col++) {
if (self.stacks[row][col] === null && row > 0 && self.stacks[row - 1][col] !== null) {
self.stacks[row][col] = self.stacks[row - 1][col];
self.stacks[row - 1][col] = null;
self.stacks[row][col].targetY += self.stacks[row][col].height + 10;
}
if (self.stacks[0][col] === null) {
var newStack = new Stack();
for (var i = 0; i < 5; i++) {
var ring = new Ring(i);
newStack.addRing(ring);
}
self.stacks[0][col] = newStack;
stackContainer.addChild(newStack);
newStack.x = col * (newStack.width + 10);
newStack.y = -newStack.height;
newStack.targetY = 0;
}
if (self.stacks[row][col]) {
self.stacks[row][col].move();
}
}
}
});
});
Amazing games background for wooden children’s rainbow stacking tower game.
Horizontal wooden rod. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Narrow Horizontal rod. Light wood Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.