User prompt
с течением времени игра должна усложняться
User prompt
houses спавнятся чаще
User prompt
с течением времени игра должна усложняться (время ускоряется, динамика предметов увеличивается
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'forEach')' in this line: 'meteorites.forEach(function (meteorite) {' Line Number: 67
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'forEach')' in this line: 'meteorites.forEach(function (meteorite) {' Line Number: 67
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'forEach')' in this line: 'meteorites.forEach(function (meteorite) {' Line Number: 67
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'forEach')' in this line: 'meteorites.forEach(function (meteorite) {' Line Number: 67
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'forEach')' in this line: 'meteorites.forEach(function (meteorite) {' Line Number: 67
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'forEach')' in this line: 'meteorites.forEach(function (meteorite) {' Line Number: 67
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'forEach')' in this line: 'meteorites.forEach(function (meteorite) {' Line Number: 67
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'forEach')' in this line: 'meteorites.forEach(function (meteorite) {' Line Number: 67
User prompt
метеорит взрывается и исчезает через 15 секунд после прыжка героя
User prompt
герой может вылетать за пределы экрана появляясь на другой строне экрана , это работает только справа и слева
User prompt
ускорь темп игры на 30%
User prompt
увеличь скорость полета и вращения метеорита на 30%
User prompt
главный герой космонавт
User prompt
герой всегда повернул головой в направлении полета
User prompt
герой летит головой вперед
User prompt
герой всегда смотрит в направлении полета
User prompt
герой летит в сторону клика мышкой
User prompt
управление работает в полете
User prompt
героем можно управлять, его толкает в противоположную сторону от клика мышкой
User prompt
героя толкает реактивная тяга
User prompt
постепенно увеличивай скорость врщения
User prompt
темп игры постепенно возрастает
===================================================================
--- original.js
+++ change.js
@@ -2,72 +2,73 @@
* Classes
****/
var Debris = Container.expand(function () {
var self = Container.call(this);
- var debrisGraphics = self.createAsset('debris', 'Debris graphics', 0.5, 0.5);
+ var debrisGraphics = self.attachAsset('debris', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
self.speed = Math.random() * 5 + 2;
self.direction = {
x: Math.random() * 2 - 1,
y: Math.random() * 2 - 1
};
self.move = function () {
self.x += self.direction.x * self.speed;
self.y += self.direction.y * self.speed;
- self.speed *= 0.98 * 1.3; // Debris slows down over time, speed increased by 30%
+ self.speed *= 0.98; // Debris slows down over time
if (self.speed < 0.5) {
self.destroy(); // Destroy debris when it's slow enough
}
};
});
var Meteorite = Container.expand(function () {
var self = Container.call(this);
- Meteorite.prototype.startExplosionTimer = function () {
- self.explosionTimer = LK.setTimeout(function () {
- self.explode();
- }, 15000);
- };
- Meteorite.prototype.explode = function () {
- this.destroy();
- };
- var meteoriteGraphics = self.createAsset('meteorite', 'Meteorite graphics', 0.5, 0.5);
- self.speed = (Math.random() * 3 + 1) * 1.3 * 1.3;
+ var meteoriteGraphics = self.attachAsset('meteorite', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = Math.random() * 3 + 1;
self.direction = {
- x: (Math.random() * 2 - 1) * 1.3,
- y: (Math.random() * 2 - 1) * 1.3
+ x: Math.random() * 2 - 1,
+ y: Math.random() * 2 - 1
};
self.move = function () {
self.x += self.direction.x * self.speed;
self.y += self.direction.y * self.speed;
};
});
var Star = Container.expand(function () {
var self = Container.call(this);
- var starGraphics = self.createAsset('star', 'Star graphics', 0.5, 0.5);
+ var starGraphics = self.attachAsset('star', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
self.speed = Math.random() * 5 + 1;
self.move = function () {
self.y += self.speed;
if (self.y > 2732) {
self.y = -self.height;
self.x = Math.random() * 2048;
- self.speed = (Math.random() * 5 + 1) * 1.3;
+ self.speed = Math.random() * 5 + 1;
}
};
});
var Astronaut = Container.expand(function () {
var self = Container.call(this);
- var astronautGraphics = self.createAsset('astronaut', 'Astronaut character', .5, .5);
- self.speed = 10 * 1.3;
- self.jump = function (meteorites) {
+ var astronautGraphics = self.attachAsset('astronaut', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 10;
+ self.jump = function () {
if (!this.hasJumped) {
this.direction = {
x: Math.sin(self.rotation),
y: -Math.cos(self.rotation)
};
this.hasJumped = true;
this.firstJump = true;
- meteorites.forEach(function (meteorite) {
- meteorite.startExplosionTimer();
- });
}
};
self.hasJumped = false;
self.firstJump = false;
@@ -119,10 +120,13 @@
});
var House = Container.expand(function () {
var self = Container.call(this);
var randomHouseIndex = Math.floor(Math.random() * houseAssets.length);
- var houseGraphics = self.createAsset(houseAssets[randomHouseIndex], 'House object', .5, .5);
- self.rotationStep = (Math.random() * 0.02 - 0.01) * 1.3;
+ var houseGraphics = self.createAsset(houseAssets[randomHouseIndex], {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.rotationStep = Math.random() * 0.02 - 0.01;
if (self.rotationStep > 0 && self.rotationStep < 0.01) {
self.rotationStep = 0.01;
}
if (self.rotationStep < 0 && self.rotationStep > -0.01) {
@@ -130,28 +134,28 @@
}
});
var Bomb = Container.expand(function () {
var self = Container.call(this);
- var bombGraphics = self.createAsset('bomb', 'Bomb graphics', 0.5, 0.5);
+ var bombGraphics = self.attachAsset('bomb', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
self.timer = null;
self.explode = function () {
// Explosion effect can be added here
var meteorites = self.parent.children.filter(function (child) {
return child instanceof Meteorite && self.intersects(child);
});
- // Call forEach only if meteorites is an array with elements
- if (Array.isArray(meteorites) && meteorites.length > 0) {
- meteorites.forEach(function (meteorite) {
- for (var i = 0; i < 5; i++) {
- // Create 5 debris particles
- var debris = new Debris();
- debris.x = meteorite.x;
- debris.y = meteorite.y;
- self.parent.addChild(debris);
- }
- meteorite.destroy(); // Destroy the meteorite
- });
- }
+ meteorites.forEach(function (meteorite) {
+ for (var i = 0; i < 5; i++) {
+ // Create 5 debris particles
+ var debris = new Debris();
+ debris.x = meteorite.x;
+ debris.y = meteorite.y;
+ self.parent.addChild(debris);
+ }
+ meteorite.destroy(); // Destroy the meteorite
+ });
// self.destroy(); // Do not destroy the bomb after explosion
};
self.startTimer = function () {
self.timer = LK.setTimeout(self.explode, 15000);
@@ -180,12 +184,15 @@
for (var i = 0; i < 50; i++) {
game.spawnStar();
}
var houseAssets = ['house1', 'house2', 'house3', 'house4', 'house5', 'house6', 'house7', 'house8', 'house9', 'house10'];
-var background = game.createAsset('background', 'Background image', .5, .5);
+var background = game.attachAsset('background', {
+ anchorX: 0.5,
+ anchorY: 0.5
+});
background.x = 2048 / 2;
background.y = 2732 / 2;
-background.speed = 2 * 1.3;
+background.speed = 2;
background.move = function () {
this.y += this.speed;
if (this.y >= 2732) {
this.y = 0;
@@ -198,9 +205,12 @@
var astronaut = gameContainer.addChild(new Astronaut());
astronaut.x = 2048 / 2;
astronaut.y = 2732 - 300;
var houses = [];
-var houseSpeed = -2 * 1.3;
+var houseSpeed = -2;
+var difficultyIncreaseInterval = 3000; // Time in ms to increase difficulty
+var difficultyMultiplier = 1.05; // Multiplier to increase speed
+var lastDifficultyIncrease = 0; // Timestamp of the last difficulty increase
game.spawnHouse = function () {
var newHouse = new House();
newHouse.rotation = Math.random() * Math.PI * 2;
newHouse.scale.set(Math.random() * 0.5 + 0.5);
@@ -230,8 +240,13 @@
astronaut.jump();
});
var tickOffset = 0;
LK.on('tick', function () {
+ var currentTime = Date.now();
+ if (currentTime - lastDifficultyIncrease > difficultyIncreaseInterval) {
+ houseSpeed *= difficultyMultiplier;
+ lastDifficultyIncrease = currentTime;
+ }
if (isGameOver) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
} else {
@@ -255,13 +270,8 @@
}
}
var astronautScreenX = astronaut.x;
var astronautScreenY = astronaut.y + gameContainer.y;
- if (astronautScreenY < 0 && astronaut.hasJumped || astronaut.y > 2732) {
+ if ((astronautScreenX < 0 || astronautScreenX > 2048 || astronautScreenY < 0) && astronaut.hasJumped || astronaut.y > 2732) {
isGameOver = true;
}
- if (astronautScreenX < 0) {
- astronaut.x = 2048;
- } else if (astronautScreenX > 2048) {
- astronaut.x = 0;
- }
});
\ No newline at end of file
космонавт. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
астероид. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
красная взрывчатка с таймером. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.