User prompt
Stop making the waves go up with time. Thewaves should go up when the cube assets are all dead. Round 1 have 5 cube assets spawn
User prompt
Change the wave system, so when the game starts, make the wave 1, and when wave equals 1 spawn 5 cube assets, when those cube assets die, make it wave 2
User prompt
Ok so, for wave 1 make 5 cube assets spawn . Only five and when you kill the 5 cube assets wave 2 starts
User prompt
It didnt work
User prompt
Those shoot assets should kill the cube assets when they touch
User prompt
It didnt work
User prompt
It did not work
User prompt
When the shoot asset touches a cube asset, the cube asset should dissapear
User prompt
Make the shoot asset deal 1 damage and the cubes have 1 health, so when the shoot asset touches the cube asset they both disapear
User prompt
Dont make the slime asset shoot them up it should shoot it to the right
User prompt
Make the slime asset shoot out the shoot asset once every second
User prompt
And make the wave text a lot bigger
User prompt
Dont increase the cubes speed based on the wave
User prompt
Good, now make a wave system and a wave text on the top left corner
User prompt
Good, but make them a bit slower
User prompt
Make it so the cubes always go the same speed
User prompt
Please fix the bug: 'ReferenceError: Can't find variable: tween' in or related to this line: 'tween(self, {' Line Number: 25 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
The cube isnt spawning in
User prompt
And make it so when the cube asset spawns, the slowly starts moving towards the slime asset ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Now make it so the cube asset spawns from the cubestart asset
User prompt
Move the cubesstart asset to the right by a lot
User prompt
Add the cubestart asset to the game
User prompt
Move the slime asset down a little
User prompt
Move the slime asset up a lot
User prompt
Move the slime asset up a bit
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Create a new class for the cube asset var Cube = Container.expand(function () { var self = Container.call(this); // Attach the cube asset to the Cube class var cubeGraphics = self.attachAsset('Cube', { anchorX: 0.5, anchorY: 0.5 }); // Set the cube's speed self.speed = 3; // Set the cube's health self.health = 1; // Set the cube's health self.health = 1; // Update the cube's position every game tick self.update = function () { // Calculate the distance between the cube and the slime var dx = slime.x - self.x; var dy = slime.y - self.y; var distance = Math.sqrt(dx * dx + dy * dy); // Normalize the direction vector (dx and dy) dx /= distance; dy /= distance; // Move the cube towards the slime at a constant speed self.x += dx * self.speed; self.y += dy * self.speed; }; }); // Create a new class for the shoot asset var Shoot = Container.expand(function () { var self = Container.call(this); // Attach the shoot asset to the Shoot class var shootGraphics = self.attachAsset('Shoot', { anchorX: 0.5, anchorY: 0.5 }); // Set the shoot's speed self.speed = 5; // Set the shoot's damage self.damage = 1; // Set the shoot's damage self.damage = 1; // Update the shoot's position every game tick self.update = function () { // Move the shoot to the right at a constant speed self.x += self.speed; }; }); // Create a new class for the wave text var WaveText = Text2.expand(function () { var self = Text2.call(this, 'Wave: 0', { size: 100, fill: 0xFFFFFF }); self.anchor.set(0, 0); self.x = 50; self.y = 50; self.wave = 0; self.update = function () { self.setText('Wave: ' + self.wave); }; }); /**** * Initialize Game ****/ // Spawn the cube asset from the cubestart asset every 60 game ticks //<Assets used in the game will automatically appear here> var game = new LK.Game({ backgroundColor: 0x008000 //Init game with green background }); /**** * Game Code ****/ // Add slime asset to the game screen, make it 2x bigger and move it to the left // Spawn the cube asset from the cubestart asset every 60 game ticks //<Assets used in the game will automatically appear here> var slime = game.addChild(LK.getAsset('Slime', { anchorX: 0.5, anchorY: 0.5, x: 200, y: 1350, // Adjusted y position to move the slime down a little scaleX: 2, scaleY: 2 })); // Add menu asset to the game screen var menu = game.addChild(LK.getAsset('Menu', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 2766, scaleX: 25, scaleY: 25 })); // Add cubestart asset to the game screen var cubestart = game.addChild(LK.getAsset('Cubesstart', { anchorX: 0.5, anchorY: 0.5, x: 1800, // Moved to the right by a lot y: 1366, scaleX: 2, scaleY: 2 })); // Add the wave text to the game screen var waveText = game.addChild(new WaveText()); // Create a variable to keep track of the current wave var wave = 1; // Create a variable to keep track of the number of cubes var cubeCount = 0; game.update = function () { // Spawn the cube asset from the cubestart asset every 60 game ticks if (LK.ticks % 60 == 0 && wave === 1) { var newCube = new Cube(); newCube.x = cubestart.x; newCube.y = cubestart.y; game.addChild(newCube); // Increment cubeCount each time a cube is created cubeCount++; } // Make the slime asset shoot out the shoot asset to the right once every second if (LK.ticks % 60 == 0) { var newShoot = new Shoot(); newShoot.x = slime.x; newShoot.y = slime.y; newShoot.update = function () { // Move the shoot to the right at a constant speed this.x += this.speed; }; game.addChild(newShoot); } // Check for collisions between Cube and Shoot objects for (var i = 0; i < game.children.length; i++) { var obj1 = game.children[i]; if (obj1 instanceof Cube) { for (var j = 0; j < game.children.length; j++) { var obj2 = game.children[j]; if (obj2 instanceof Shoot && obj1.intersects(obj2)) { // Destroy both objects on collision obj1.destroy(); obj2.destroy(); // Decrement cubeCount each time a cube is destroyed cubeCount--; // Check if all cubes from wave 1 have been destroyed if (cubeCount === 0 && wave === 1) { // Start wave 2 wave++; waveText.wave++; } break; } } } } };
===================================================================
--- original.js
+++ change.js
@@ -80,11 +80,11 @@
/****
* Game Code
****/
-//<Assets used in the game will automatically appear here>
-// Spawn the cube asset from the cubestart asset every 60 game ticks
// Add slime asset to the game screen, make it 2x bigger and move it to the left
+// Spawn the cube asset from the cubestart asset every 60 game ticks
+//<Assets used in the game will automatically appear here>
var slime = game.addChild(LK.getAsset('Slime', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
@@ -127,12 +127,8 @@
game.addChild(newCube);
// Increment cubeCount each time a cube is created
cubeCount++;
}
- // Update the wave text every 600 game ticks
- if (LK.ticks % 600 == 0) {
- waveText.wave++;
- }
// Make the slime asset shoot out the shoot asset to the right once every second
if (LK.ticks % 60 == 0) {
var newShoot = new Shoot();
newShoot.x = slime.x;
@@ -155,11 +151,12 @@
obj2.destroy();
// Decrement cubeCount each time a cube is destroyed
cubeCount--;
// Check if all cubes from wave 1 have been destroyed
- if (cubeCount === 0) {
+ if (cubeCount === 0 && wave === 1) {
// Start wave 2
wave++;
+ waveText.wave++;
}
break;
}
}