User prompt
make dotsparticles from effect smaller
Code edit (1 edits merged)
Please save this source code
User prompt
dotparticle effectshould esplodein a ciruclar way
Code edit (1 edits merged)
Please save this source code
User prompt
make sure there is only 1 dot instance
User prompt
Fix Bug: 'ReferenceError: dot is not defined' in or related to this line: 'dot.update();' Line Number: 172
User prompt
Fix Bug: 'ReferenceError: dot is not defined' in or related to this line: 'dot.update();' Line Number: 194
User prompt
unify the two lk.on tick events
User prompt
player should not be able to bounce up if dot is destoyred
Code edit (1 edits merged)
Please save this source code
User prompt
dotparticle effect sshould only happen once per game
Code edit (1 edits merged)
Please save this source code
User prompt
create a new smallobstacle class.
User prompt
small obstacle should make an orbit arround the start
User prompt
every time a star is spawned add a orbit of smallobstacles around it
User prompt
small obstacle should orbit arround the star
User prompt
small obstacles should appear also orbiting about the first start
User prompt
small obstacle can havev a different asset as the obstacle
User prompt
smallobstacle should move downards on tick in relation to dot like obstacles do
User prompt
obstacles should orbit arround the star
User prompt
on game start add 1 obstacles orbiting arroung the first stra
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'firstObstacle.x = star.x;' Line Number: 154
User prompt
obstacle should not rotate on its center
User prompt
remove duplicate start
User prompt
increase game dificulty every time score increases
/****
* Classes
****/
var ParticleEffect = Container.expand(function (x, y) {
var self = Container.call(this);
self.x = x;
self.y = y;
var particles = [];
for (var i = 0; i < 20; i++) {
var particle = self.attachAsset('star', {
anchorX: 0.5,
anchorY: 0.5
});
particle.scaleX = particle.scaleY = Math.random() * 0.5 + 0.5;
particle.alpha = 0.7;
particle.vx = (Math.random() - 0.5) * 10;
particle.vy = (Math.random() - 0.5) * 10;
particles.push(particle);
}
self.update = function () {
for (var i = particles.length - 1; i >= 0; i--) {
particles[i].x += particles[i].vx;
particles[i].y += particles[i].vy;
particles[i].alpha -= 0.02;
if (particles[i].alpha <= 0) {
particles[i].destroy();
particles.splice(i, 1);
}
}
if (particles.length === 0) {
self.destroy();
}
};
game.addChild(self);
});
var DotParticleEffect = Container.expand(function (x, y) {
var self = Container.call(this);
self.x = x;
self.y = y;
var particles = [];
for (var i = 0; i < 30; i++) {
var particle = self.attachAsset('dot', {
anchorX: 0.5,
anchorY: 0.5
});
particle.scaleX = particle.scaleY = Math.random() * 0.3 + 0.2;
particle.alpha = 1;
particle.vx = (Math.random() - 0.5) * 20;
particle.vy = (Math.random() - 0.5) * 20;
particles.push(particle);
}
self.update = function () {
for (var i = particles.length - 1; i >= 0; i--) {
particles[i].x += particles[i].vx;
particles[i].y += particles[i].vy;
particles[i].alpha -= 0.05;
if (particles[i].alpha <= 0) {
particles[i].destroy();
particles.splice(i, 1);
}
}
if (particles.length === 0) {
self.destroy();
}
};
game.addChild(self);
});
var Dot = Container.expand(function () {
var self = Container.call(this);
var dotGraphics = self.attachAsset('dot', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityY = 0;
self.gravity = 0.5;
self.bounce = -15;
self.update = function () {
var previousY = self.y;
self.velocityY += self.gravity;
self.y += self.velocityY;
if (self.y > 2732 - self.height / 2) {
self.velocityY = self.bounce;
}
self.movedDistance = self.y - previousY;
};
self.bounceUp = function () {
self.velocityY = self.bounce;
};
});
var Obstacle = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle', {
anchorX: 0.5,
anchorY: 0.5
});
self.direction = Math.random() < 0.5 ? -1 : 1;
self.speed = (Math.random() * 3 + 5) * self.direction;
self.rotationSpeed = 0.05;
self.rotation = 0;
self.move = function () {
self.x += self.speed;
self.rotation += self.rotationSpeed;
obstacleGraphics.rotation = self.rotation;
if (self.direction === 1 && self.x > 2048 + self.width / 2 || self.direction === -1 && self.x < -self.width / 2) {
self.direction *= -1;
self.speed *= -1;
self.y = Math.random() * (2732 - self.height) + self.height / 2;
}
};
self.moveDown = function (distance) {
self.y += distance;
if (self.y > 2732 - self.height / 2) {
self.y = -self.height / 2;
}
};
});
var Star = Container.expand(function () {
var self = Container.call(this);
var starGraphics = self.attachAsset('star', {
anchorX: 0.5,
anchorY: 0.5
});
self.moveDown = function (distance) {
self.y += distance;
if (self.y > 2732 - self.height / 2) {
self.y = -self.height / 2;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
function createParticleEffect(x, y) {
var effect = new ParticleEffect(x, y);
LK.on('tick', function () {
effect.update();
});
}
function createDotParticleEffect(x, y) {
var effect = new DotParticleEffect(x, y);
LK.on('tick', function () {
effect.update();
});
}
var dot = game.addChild(new Dot());
dot.x = 2048 / 2;
dot.y = 2732 - dot.height / 2;
var obstacles = [];
for (var i = 0; i < 5; i++) {
var obstacle = game.addChild(new Obstacle());
obstacle.x = obstacle.direction === 1 ? -obstacle.width / 2 : 2048 + obstacle.width / 2;
obstacle.y = Math.random() * (1366 - obstacle.height) + obstacle.height / 2;
obstacles.push(obstacle);
}
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
scoreTxt.x = 500;
LK.gui.top.addChild(scoreTxt);
LK.gui.top.addChild(scoreTxt);
game.on('down', function (obj) {
dot.bounceUp();
});
LK.on('tick', function () {
dot.update();
for (var i = 0; i < obstacles.length; i++) {
obstacles[i].move();
if (dot.y < 1200 && dot.movedDistance < 0) {
// If the dot moved up and its y position is less than 1400
obstacles[i].moveDown(-dot.movedDistance);
}
if (dot.intersects(obstacles[i])) {
createDotParticleEffect(dot.x, dot.y);
dot.destroy();
LK.setTimeout(function () {
LK.showGameOver();
}, 2000);
}
}
});
var stars = [];
var star = game.addChild(new Star());
star.x = 2048 / 2;
star.y = 2732 / 2;
stars.push(star);
LK.on('tick', function () {
dot.update();
for (var i = 0; i < obstacles.length; i++) {
obstacles[i].move();
if (dot.y < 1800 && dot.movedDistance < 0) {
obstacles[i].moveDown(-dot.movedDistance);
}
if (dot.intersects(obstacles[i])) {
LK.setTimeout(function () {
LK.showGameOver();
}, 1000);
}
}
for (var j = stars.length - 1; j >= 0; j--) {
if (dot.intersects(stars[j])) {
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore().toString());
var oldStarY = stars[j].y;
createParticleEffect(stars[j].x, stars[j].y);
stars[j].destroy();
stars.splice(j, 1);
var newStar = game.addChild(new Star());
newStar.x = 2048 / 2;
newStar.y = oldStarY - 1500;
stars.push(newStar);
} else if (dot.y < 1800 && dot.movedDistance < 0) {
stars[j].moveDown(-dot.movedDistance);
}
}
});