User prompt
significantly increase velocity change amount after touching the screen
User prompt
have the game always look for the touch and continually adjust the velocity after the user touches the screen
User prompt
when the user taps the screen have the velocity increase by 1 unit and have the direction be in the exact opposite direction of the touch
User prompt
when the user taps the screen change the velocity of the hero
User prompt
allow the user to change the velocity of the hero by tapping the screen
User prompt
allow the hero to have a velocity
User prompt
whenever the screen is touched moved the hero in the exact opposite direction
User prompt
Fix Bug: 'Uncaught TypeError: Graphics is not a constructor' in or related to this line: 'var border = new Graphics();' Line Number: 28
User prompt
lets add a border around the visible area of the screen
User prompt
lets have a hero that starts in the center of the screen
Code edit (1 edits merged)
Please save this source code
Initial prompt
Cosmic Container: Alien Ambush
/**** * Classes ****/ // Hero class var Hero = Container.expand(function () { var self = Container.call(this); var heroGraphics = self.attachAsset('hero', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Hero update logic }; self.shoot = function () { // Hero shooting logic }; }); // Enemy class var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Enemy update logic }; self.shoot = function () { // Enemy shooting logic }; }); // Bullet class for hero var HeroBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('heroBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.move = function () { self.y -= self.speed; }; }); // Bullet class for enemies var EnemyBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('enemyBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -5; self.move = function () { self.y += self.speed; }; }); // Resource class var Resource = Container.expand(function () { var self = Container.call(this); var resourceGraphics = self.attachAsset('resource', { anchorX: 0.5, anchorY: 0.5 }); self.collect = function () { // Resource collection logic }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ // Initialize hero, enemies, and bullets // Define assets for the hero, enemies, and bullets var hero = game.addChild(new Hero()); hero.x = 2048 / 2; hero.y = 2732 - 150; var enemies = []; var heroBullets = []; var enemyBullets = []; var resources = []; // Touch event to move hero and shoot game.on('down', function (obj) { var touchPos = obj.event.getLocalPosition(game); hero.x = touchPos.x; hero.shoot(); }); // Main game loop LK.on('tick', function () { // Update hero hero.update(); // Move and update hero bullets for (var i = heroBullets.length - 1; i >= 0; i--) { var bullet = heroBullets[i]; bullet.move(); if (bullet.y < 0) { bullet.destroy(); heroBullets.splice(i, 1); } } // Update enemies and shoot enemies.forEach(function (enemy) { enemy.update(); if (LK.ticks % 120 === 0) { // Enemies shoot every 2 seconds enemy.shoot(); } }); // Move and update enemy bullets for (var j = enemyBullets.length - 1; j >= 0; j--) { var bullet = enemyBullets[j]; bullet.move(); if (bullet.y > 2732) { bullet.destroy(); enemyBullets.splice(j, 1); } } // Update resources resources.forEach(function (resource) { resource.collect(); }); // Check for collisions checkCollisions(); }); // Function to check for collisions function checkCollisions() { // Check for bullet collisions with enemies heroBullets.forEach(function (bullet) { enemies.forEach(function (enemy, index) { if (bullet.intersects(enemy)) { // Destroy enemy and bullet enemy.destroy(); bullet.destroy(); enemies.splice(index, 1); // Increase score LK.setScore(LK.getScore() + 1); } }); }); // Check for bullet collisions with hero enemyBullets.forEach(function (bullet) { if (bullet.intersects(hero)) { // Game over LK.showGameOver(); } }); // Check for hero collecting resources resources.forEach(function (resource, index) { if (resource.intersects(hero)) { // Collect resource resource.destroy(); resources.splice(index, 1); // Update resource count or effect } }); } // Spawn enemies and resources LK.setInterval(function () { spawnEnemy(); spawnResource(); }, 3000); // Spawn every 3 seconds // Function to spawn an enemy function spawnEnemy() { var enemy = new Enemy(); enemy.x = Math.random() * 2048; enemy.y = 100; enemies.push(enemy); game.addChild(enemy); } // Function to spawn a resource function spawnResource() { var resource = new Resource(); resource.x = Math.random() * 2048; resource.y = Math.random() * 2732; resources.push(resource); game.addChild(resource); } // Hero shooting function Hero.prototype.shoot = function () { var bullet = new HeroBullet(); bullet.x = this.x; bullet.y = this.y - this.height / 2; heroBullets.push(bullet); game.addChild(bullet); }; // Enemy shooting function Enemy.prototype.shoot = function () { var bullet = new EnemyBullet(); bullet.x = this.x; bullet.y = this.y + this.height / 2; enemyBullets.push(bullet); game.addChild(bullet); };
/****
* Classes
****/
// Hero class
var Hero = Container.expand(function () {
var self = Container.call(this);
var heroGraphics = self.attachAsset('hero', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Hero update logic
};
self.shoot = function () {
// Hero shooting logic
};
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Enemy update logic
};
self.shoot = function () {
// Enemy shooting logic
};
});
// Bullet class for hero
var HeroBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('heroBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10;
self.move = function () {
self.y -= self.speed;
};
});
// Bullet class for enemies
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('enemyBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -5;
self.move = function () {
self.y += self.speed;
};
});
// Resource class
var Resource = Container.expand(function () {
var self = Container.call(this);
var resourceGraphics = self.attachAsset('resource', {
anchorX: 0.5,
anchorY: 0.5
});
self.collect = function () {
// Resource collection logic
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Initialize hero, enemies, and bullets
// Define assets for the hero, enemies, and bullets
var hero = game.addChild(new Hero());
hero.x = 2048 / 2;
hero.y = 2732 - 150;
var enemies = [];
var heroBullets = [];
var enemyBullets = [];
var resources = [];
// Touch event to move hero and shoot
game.on('down', function (obj) {
var touchPos = obj.event.getLocalPosition(game);
hero.x = touchPos.x;
hero.shoot();
});
// Main game loop
LK.on('tick', function () {
// Update hero
hero.update();
// Move and update hero bullets
for (var i = heroBullets.length - 1; i >= 0; i--) {
var bullet = heroBullets[i];
bullet.move();
if (bullet.y < 0) {
bullet.destroy();
heroBullets.splice(i, 1);
}
}
// Update enemies and shoot
enemies.forEach(function (enemy) {
enemy.update();
if (LK.ticks % 120 === 0) {
// Enemies shoot every 2 seconds
enemy.shoot();
}
});
// Move and update enemy bullets
for (var j = enemyBullets.length - 1; j >= 0; j--) {
var bullet = enemyBullets[j];
bullet.move();
if (bullet.y > 2732) {
bullet.destroy();
enemyBullets.splice(j, 1);
}
}
// Update resources
resources.forEach(function (resource) {
resource.collect();
});
// Check for collisions
checkCollisions();
});
// Function to check for collisions
function checkCollisions() {
// Check for bullet collisions with enemies
heroBullets.forEach(function (bullet) {
enemies.forEach(function (enemy, index) {
if (bullet.intersects(enemy)) {
// Destroy enemy and bullet
enemy.destroy();
bullet.destroy();
enemies.splice(index, 1);
// Increase score
LK.setScore(LK.getScore() + 1);
}
});
});
// Check for bullet collisions with hero
enemyBullets.forEach(function (bullet) {
if (bullet.intersects(hero)) {
// Game over
LK.showGameOver();
}
});
// Check for hero collecting resources
resources.forEach(function (resource, index) {
if (resource.intersects(hero)) {
// Collect resource
resource.destroy();
resources.splice(index, 1);
// Update resource count or effect
}
});
}
// Spawn enemies and resources
LK.setInterval(function () {
spawnEnemy();
spawnResource();
}, 3000); // Spawn every 3 seconds
// Function to spawn an enemy
function spawnEnemy() {
var enemy = new Enemy();
enemy.x = Math.random() * 2048;
enemy.y = 100;
enemies.push(enemy);
game.addChild(enemy);
}
// Function to spawn a resource
function spawnResource() {
var resource = new Resource();
resource.x = Math.random() * 2048;
resource.y = Math.random() * 2732;
resources.push(resource);
game.addChild(resource);
}
// Hero shooting function
Hero.prototype.shoot = function () {
var bullet = new HeroBullet();
bullet.x = this.x;
bullet.y = this.y - this.height / 2;
heroBullets.push(bullet);
game.addChild(bullet);
};
// Enemy shooting function
Enemy.prototype.shoot = function () {
var bullet = new EnemyBullet();
bullet.x = this.x;
bullet.y = this.y + this.height / 2;
enemyBullets.push(bullet);
game.addChild(bullet);
};
Create the top down view of what it would look to be inside of a very dark space ship's empty cargo bay.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Create a top down view of an astronaut in a bright yellow space suit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
create a round bright orange energy orb. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
create a scary space monster. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Create a yellow Play button. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
show a bright green package. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
create an escape hatch with a red exit sign on it. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.