Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: starfield.move is not a function' in this line: 'starfield.move();' Line Number: 107
User prompt
Fix Bug: 'TypeError: starfield.move is not a function' in this line: 'starfield.move();' Line Number: 107
Code edit (1 edits merged)
Please save this source code
User prompt
create a new image for a starfield that scrolls down the screen
Code edit (5 edits merged)
Please save this source code
User prompt
make background2 tiled
Code edit (1 edits merged)
Please save this source code
User prompt
make the background scrolling towards the bottom of the screen
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'tileScale')' in this line: 'game.background.tileScale.x = game.width / game.background.width;' Line Number: 51
User prompt
make the background tiled so it fills the background.
Code edit (8 edits merged)
Please save this source code
User prompt
create an asset to set the background called "happyBkg1"
Code edit (1 edits merged)
Please save this source code
User prompt
update code so that heroship follows the pointer
User prompt
Fix Bug: 'TypeError: LK.tween is not a function' in this line: 'LK.tween(self, {' Line Number: 25
User prompt
make it so the heroship moves towards the pointer. tween the position to make the movement smooth.
Initial prompt
Smiley shots
/**** * Classes ****/ // Starfield background class var Starfield = Container.expand(function () { var self = Container.call(this); var starfieldGraphics = self.createAsset('starfield', 'Scrolling starfield', 0, 0); self.speed = 1; self.move = function () { starfieldGraphics.y += self.speed; // Reset position when it scrolls off screen if (starfieldGraphics.y >= game.height) { starfieldGraphics.y = -game.height; } }; }); // Hero ship class var HeroShip = Container.expand(function () { var self = Container.call(this); var shipGraphics = self.createAsset('heroShip', 'Cute smiley ship', 0.5, 0.5); self.speed = 5; self.isShooting = false; self.shootingInterval = 30; self._shootingCounter = 0; self.shoot = function () { var bullet = new HeroBullet(); bullet.x = self.x; bullet.y = self.y - self.height / 2; game.addChild(bullet); return bullet; }; }); // Hero bullet class var HeroBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.createAsset('heroBullet', 'Heart bullet', 0.5, 1); self.speed = -10; self.move = function () { self.y += self.speed; }; }); // Enemy ship class var EnemyShip = Container.expand(function () { var self = Container.call(this); var shipGraphics = self.createAsset('enemyShip', 'Evil smiley', 0.5, 0.5); self.speed = 2; self.move = function () { self.y += self.speed; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xFEF3BD // Init game with black background }); /**** * Game Code ****/ // Initialize starfield var starfield = game.addChild(new Starfield()); starfield.x = 0; starfield.y = -game.height; // Start off screen // Initialize important asset arrays var heroBullets = []; var enemyShips = []; // Create hero ship var heroShip = game.addChild(new HeroShip()); heroShip.x = game.width / 2; heroShip.y = game.height - 450; // Create enemies function spawnEnemy() { var enemy = new EnemyShip(); enemy.x = Math.random() * (game.width - enemy.width) + enemy.width / 2; enemy.y = -enemy.height / 2; enemyShips.push(enemy); game.addChild(enemy); } // Spawn initial enemies for (var i = 0; i < 5; i++) { spawnEnemy(); } // Game tick event LK.on('tick', function () { // Move the starfield starfield.move(); // Move hero bullets for (var i = heroBullets.length - 1; i >= 0; i--) { var bullet = heroBullets[i]; bullet.move(); if (bullet.y < -bullet.height) { bullet.destroy(); heroBullets.splice(i, 1); } else { // Check collision with enemies for (var j = enemyShips.length - 1; j >= 0; j--) { if (bullet.intersects(enemyShips[j])) { bullet.destroy(); enemyShips[j].destroy(); heroBullets.splice(i, 1); enemyShips.splice(j, 1); break; } } } } // Move enemy ships for (var i = enemyShips.length - 1; i >= 0; i--) { var enemy = enemyShips[i]; enemy.move(); if (enemy.y > game.height + enemy.height / 2) { enemy.destroy(); enemyShips.splice(i, 1); spawnEnemy(); } } // Shoot bullets if (heroShip._shootingCounter % heroShip.shootingInterval == 0) { if (heroShip.isShooting) { heroBullets.push(heroShip.shoot()); heroShip._shootingCounter = 0; } } heroShip._shootingCounter += 1; }); // Touch controls to make heroShip follow the pointer game.on('move', function (obj) { var touchPos = obj.event.getLocalPosition(game); heroShip.x = touchPos.x; }); game.on('down', function (obj) { heroShip._shootingCounter = 0; heroShip.isShooting = true; }); game.on('up', function (obj) { heroShip.isShooting = false; });
===================================================================
--- original.js
+++ change.js
@@ -1,7 +1,20 @@
/****
* Classes
****/
+// Starfield background class
+var Starfield = Container.expand(function () {
+ var self = Container.call(this);
+ var starfieldGraphics = self.createAsset('starfield', 'Scrolling starfield', 0, 0);
+ self.speed = 1;
+ self.move = function () {
+ starfieldGraphics.y += self.speed;
+ // Reset position when it scrolls off screen
+ if (starfieldGraphics.y >= game.height) {
+ starfieldGraphics.y = -game.height;
+ }
+ };
+});
// Hero ship class
var HeroShip = Container.expand(function () {
var self = Container.call(this);
var shipGraphics = self.createAsset('heroShip', 'Cute smiley ship', 0.5, 0.5);
@@ -45,8 +58,13 @@
/****
* Game Code
****/
+// Initialize starfield
+var starfield = game.addChild(new Starfield());
+starfield.x = 0;
+starfield.y = -game.height; // Start off screen
+
// Initialize important asset arrays
var heroBullets = [];
var enemyShips = [];
@@ -70,8 +88,11 @@
}
// Game tick event
LK.on('tick', function () {
+ // Move the starfield
+ starfield.move();
+
// Move hero bullets
for (var i = heroBullets.length - 1; i >= 0; i--) {
var bullet = heroBullets[i];
bullet.move();
a cute cool looking emoji face. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a cute looking heart. bright red.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
an evil looking emoji. purple and blue colors.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a shiny blue cute star. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A start button. White on Red.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a grey touchpad. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a bright yellow shiny cute star. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.