User prompt
Sans konuşurken bize yaptıklarımız dan bahsetsin ve biraz alaycı olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Arka plana Megalovnia müziğini ekle
User prompt
Sans diyalogalrı saldırı yapmadan önce gelsin ve diyaloglar için konuşma baloncuğu ekle ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Saldırıları biraz daha hızlandır,sans bize saldırmadan önce şunları desin"bugün güzel bir gün,kuşlar cıvıldıyor, çiçekler açıyor,böyle günlerde senin gibi çocuklar, CEHENNEMDE YANMALI"desin ve oyun başlasın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Sans karakteri bize saldırmadan önce bize birşeyler desin
User prompt
Sans'ın görünümünü varlıklar kısmına ekle
User prompt
Merhamet düğmesiyle düşman bizi ilk başta affetmesin ama sonra effetsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Düsman yerine sans'ı koyabilirmiyiz
User prompt
Düşmana saldırdığımız zaman onun kaç canının kaldığını göreliim, düşmanın canı daha fazla olsun,can barını ekranın altına taşıyalım ve ekranın yukarısında savaştığımız düşmanı görelim ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyun tek bir mermiye deydiğimizde değil can barımız bitince bitsin
User prompt
Oyunda düşman saldırdıktan sonra bizim düşmana saldırabilmemiz için oyuna düşman saldırdıktan sonra kullanabileceğimiz saldırı,eylem,eşya ve merhemet tuşları ekle.saldırı tuşuyla düşmana hasar verelim,eylem tuşuyla düşmanın istatistiklerini görelim,eşya tuşuyla bir eşya seçip canımızı dolduralım ve son olarak merhemet tuşuyla düşmana saldırmadan ona iyi davranarak onla arkadaş olarak kazanalım ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyunda bize ışın atan, gaster blaster tarzı birşey ve farklı saldırı çeşitleri ekle ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Mermiler biraz daha büyük olsun
User prompt
Mobil oyuncular için ekranla kalbi sürükleyebilmemizi sağla
Code edit (1 edits merged)
Please save this source code
User prompt
Soul Dodge - Heart Defense
Initial prompt
Bana Undertale tarzı benzer bir oyun yapabilirmisin
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 0; self.speedY = 0; self.lifetime = 0; self.maxLifetime = 300; // 5 seconds at 60fps self.update = function () { self.x += self.speedX; self.y += self.speedY; self.lifetime++; // Remove if too old or off screen if (self.lifetime > self.maxLifetime || self.x < -100 || self.x > 2148 || self.y < -100 || self.y > 2832) { self.markForDestroy = true; } }; return self; }); var Heart = Container.expand(function () { var self = Container.call(this); var heartGraphics = self.attachAsset('heart', { anchorX: 0.5, anchorY: 0.5 }); // Rotate to make it look like a heart heartGraphics.rotation = Math.PI / 4; self.speed = 8; self.isDragging = false; return self; }); var LaserAttack = Container.expand(function () { var self = Container.call(this); // Warning phase graphics var warningGraphics = self.attachAsset('laserWarning', { anchorX: 0.5, anchorY: 0.5, alpha: 0 }); // Actual laser beam graphics var laserGraphics = self.attachAsset('laserBeam', { anchorX: 0.5, anchorY: 0.5, alpha: 0 }); self.phase = 'warning'; // warning, firing, done self.warningDuration = 120; // 2 seconds warning self.firingDuration = 180; // 3 seconds firing self.timer = 0; self.direction = 'horizontal'; // horizontal or vertical self.isActive = false; self.startWarning = function () { self.isActive = true; self.phase = 'warning'; self.timer = 0; // Animate warning appearing tween(warningGraphics, { alpha: 0.6 }, { duration: 300, easing: tween.easeInOut }); // Pulsing warning effect var _pulseWarning = function pulseWarning() { if (self.phase === 'warning') { tween(warningGraphics, { alpha: 0.3 }, { duration: 400, easing: tween.easeInOut, onFinish: function onFinish() { tween(warningGraphics, { alpha: 0.6 }, { duration: 400, easing: tween.easeInOut, onFinish: _pulseWarning }); } }); } }; _pulseWarning(); }; self.startFiring = function () { self.phase = 'firing'; self.timer = 0; // Hide warning, show laser tween(warningGraphics, { alpha: 0 }, { duration: 100 }); tween(laserGraphics, { alpha: 1 }, { duration: 100 }); // Laser intensity effect tween(laserGraphics, { scaleY: 1.2 }, { duration: 200, easing: tween.easeOut, onFinish: function onFinish() { tween(laserGraphics, { scaleY: 1 }, { duration: 200, easing: tween.easeIn }); } }); }; self.update = function () { if (!self.isActive) return; self.timer++; if (self.phase === 'warning' && self.timer >= self.warningDuration) { self.startFiring(); } else if (self.phase === 'firing' && self.timer >= self.firingDuration) { self.phase = 'done'; tween(laserGraphics, { alpha: 0 }, { duration: 300 }); self.markForDestroy = true; } // Check collision during firing phase if (self.phase === 'firing' && heart) { var collision = false; if (self.direction === 'horizontal') { // Check if heart is within laser beam vertically var beamTop = self.y - laserGraphics.height / 2; var beamBottom = self.y + laserGraphics.height / 2; if (heart.y >= beamTop && heart.y <= beamBottom) { collision = true; } } else { // Vertical laser var beamLeft = self.x - laserGraphics.width / 2; var beamRight = self.x + laserGraphics.width / 2; if (heart.x >= beamLeft && heart.x <= beamRight) { collision = true; } } if (collision) { LK.getSound('hit').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } } }; return self; }); var MagicBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('magicBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 0; self.speedY = 0; self.lifetime = 0; self.maxLifetime = 360; self.rotationSpeed = 0.1; self.update = function () { self.x += self.speedX; self.y += self.speedY; self.lifetime++; // Rotate magic bullets bulletGraphics.rotation += self.rotationSpeed; // Slight homing behavior towards center var centerX = 1024; var centerY = 1366; var dx = centerX - self.x; var dy = centerY - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 50) { self.speedX += dx / distance * 0.05; self.speedY += dy / distance * 0.05; } // Cap speed var speed = Math.sqrt(self.speedX * self.speedX + self.speedY * self.speedY); if (speed > 6) { self.speedX = self.speedX / speed * 6; self.speedY = self.speedY / speed * 6; } if (self.lifetime > self.maxLifetime || self.x < -100 || self.x > 2148 || self.y < -100 || self.y > 2832) { self.markForDestroy = true; } }; return self; }); var SpiralBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.centerX = 1024; self.centerY = 1366; self.angle = 0; self.radius = 50; self.radiusSpeed = 2; self.angleSpeed = 0.1; self.lifetime = 0; self.maxLifetime = 400; self.update = function () { self.lifetime++; self.angle += self.angleSpeed; self.radius += self.radiusSpeed; self.x = self.centerX + Math.cos(self.angle) * self.radius; self.y = self.centerY + Math.sin(self.angle) * self.radius; if (self.lifetime > self.maxLifetime || self.radius > 800) { self.markForDestroy = true; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Game state variables var heart; var bullets = []; var magicBullets = []; var laserAttacks = []; var spiralBullets = []; var battleBox; var isDragging = false; var dragOffsetX = 0; var dragOffsetY = 0; var waveTimer = 0; var currentWave = 1; var waveSpawnTimer = 0; var gameTime = 0; // Create UI elements var scoreText = new Text2('Score: 0', { size: 80, fill: 0xFFFFFF }); scoreText.anchor.set(0.5, 0); LK.gui.top.addChild(scoreText); var waveText = new Text2('Wave 1', { size: 60, fill: 0xFFFF00 }); waveText.anchor.set(0, 0); waveText.x = 50; waveText.y = 200; LK.gui.topLeft.addChild(waveText); // Create battle box (play area boundary) battleBox = game.addChild(LK.getAsset('battleBox', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, alpha: 0.1 })); // Create heart heart = game.addChild(new Heart()); heart.x = 1024; heart.y = 1366; // Touch/drag handlers game.down = function (x, y, obj) { // Allow dragging from anywhere on screen for mobile isDragging = true; dragOffsetX = x - heart.x; dragOffsetY = y - heart.y; }; game.move = function (x, y, obj) { if (isDragging) { var newX = x - dragOffsetX; var newY = y - dragOffsetY; // Constrain to battle box var boxLeft = battleBox.x - battleBox.width / 2 + 30; var boxRight = battleBox.x + battleBox.width / 2 - 30; var boxTop = battleBox.y - battleBox.height / 2 + 30; var boxBottom = battleBox.y + battleBox.height / 2 - 30; heart.x = Math.max(boxLeft, Math.min(boxRight, newX)); heart.y = Math.max(boxTop, Math.min(boxBottom, newY)); } }; game.up = function (x, y, obj) { isDragging = false; }; // Spawn patterns function spawnStraightBullets() { var numBullets = 4 + Math.floor(currentWave / 2); var side = Math.floor(Math.random() * 4); // 0=top, 1=right, 2=bottom, 3=left for (var i = 0; i < numBullets; i++) { var bullet = new Bullet(); var speed = 3 + currentWave * 0.5; switch (side) { case 0: // Top bullet.x = 324 + 1400 / numBullets * i; bullet.y = 566; bullet.speedY = speed; break; case 1: // Right bullet.x = 1724; bullet.y = 666 + 1400 / numBullets * i; bullet.speedX = -speed; break; case 2: // Bottom bullet.x = 324 + 1400 / numBullets * i; bullet.y = 2066; bullet.speedY = -speed; break; case 3: // Left bullet.x = 324; bullet.y = 666 + 1400 / numBullets * i; bullet.speedX = speed; break; } bullets.push(bullet); game.addChild(bullet); } } function spawnConvergingBullets() { var numBullets = 8 + currentWave; var centerX = heart.x; var centerY = heart.y; for (var i = 0; i < numBullets; i++) { var angle = Math.PI * 2 * i / numBullets; var distance = 800; var bullet = new Bullet(); bullet.x = centerX + Math.cos(angle) * distance; bullet.y = centerY + Math.sin(angle) * distance; var speed = 2 + currentWave * 0.3; bullet.speedX = -Math.cos(angle) * speed; bullet.speedY = -Math.sin(angle) * speed; bullets.push(bullet); game.addChild(bullet); } } function spawnMagicBullets() { var numBullets = 3 + Math.floor(currentWave / 3); for (var i = 0; i < numBullets; i++) { var bullet = new MagicBullet(); // Spawn from random edge var edge = Math.floor(Math.random() * 4); switch (edge) { case 0: // Top bullet.x = 324 + Math.random() * 1400; bullet.y = 466; break; case 1: // Right bullet.x = 1824; bullet.y = 566 + Math.random() * 1400; break; case 2: // Bottom bullet.x = 324 + Math.random() * 1400; bullet.y = 2166; break; case 3: // Left bullet.x = 224; bullet.y = 566 + Math.random() * 1400; break; } // Initial speed towards center with some randomness var dx = 1024 - bullet.x; var dy = 1366 - bullet.y; var distance = Math.sqrt(dx * dx + dy * dy); var speed = 1.5 + currentWave * 0.2; bullet.speedX = dx / distance * speed + (Math.random() - 0.5) * 2; bullet.speedY = dy / distance * speed + (Math.random() - 0.5) * 2; magicBullets.push(bullet); game.addChild(bullet); } } function spawnLaserAttack() { var laser = new LaserAttack(); // Random direction if (Math.random() < 0.5) { // Horizontal laser laser.direction = 'horizontal'; laser.x = 1024; laser.y = 666 + Math.random() * 1400; // Random Y position within battle box laser.rotation = 0; } else { // Vertical laser laser.direction = 'vertical'; laser.x = 324 + Math.random() * 1400; // Random X position within battle box laser.y = 1366; laser.rotation = Math.PI / 2; } laser.startWarning(); laserAttacks.push(laser); game.addChild(laser); } function spawnSpiralAttack() { var numSpirals = 2 + Math.floor(currentWave / 4); for (var i = 0; i < numSpirals; i++) { var spiral = new SpiralBullet(); spiral.angle = Math.PI * 2 * i / numSpirals; spiral.angleSpeed = 0.08 + Math.random() * 0.04; spiral.radiusSpeed = 1.5 + Math.random() * 1; spiralBullets.push(spiral); game.addChild(spiral); } } // Main game update game.update = function () { gameTime++; waveTimer++; waveSpawnTimer++; // Update score LK.setScore(Math.floor(gameTime / 60)); scoreText.setText('Score: ' + LK.getScore()); // Wave progression if (waveTimer > 600) { // 10 seconds per wave currentWave++; waveTimer = 0; waveText.setText('Wave ' + currentWave); // Flash effect for new wave LK.effects.flashScreen(0x444444, 500); } // Spawn bullets based on wave and timing if (waveSpawnTimer > 120 - currentWave * 5) { // Faster spawning each wave waveSpawnTimer = 0; var pattern = Math.floor(Math.random() * 5); if (currentWave < 3) pattern = 0; // Only straight bullets early else if (currentWave < 5) pattern = Math.floor(Math.random() * 3); // No lasers/spirals very early switch (pattern) { case 0: spawnStraightBullets(); break; case 1: spawnConvergingBullets(); break; case 2: spawnMagicBullets(); break; case 3: spawnLaserAttack(); break; case 4: spawnSpiralAttack(); break; } } // Update and check bullet collisions for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; if (bullet.markForDestroy) { bullet.destroy(); bullets.splice(i, 1); continue; } // Collision with heart if (bullet.intersects(heart)) { LK.getSound('hit').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } } // Update and check magic bullet collisions for (var j = magicBullets.length - 1; j >= 0; j--) { var magicBullet = magicBullets[j]; if (magicBullet.markForDestroy) { magicBullet.destroy(); magicBullets.splice(j, 1); continue; } // Collision with heart if (magicBullet.intersects(heart)) { LK.getSound('hit').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } } // Update and check laser attacks for (var l = laserAttacks.length - 1; l >= 0; l--) { var laser = laserAttacks[l]; if (laser.markForDestroy) { laser.destroy(); laserAttacks.splice(l, 1); continue; } } // Update and check spiral bullet collisions for (var s = spiralBullets.length - 1; s >= 0; s--) { var spiral = spiralBullets[s]; if (spiral.markForDestroy) { spiral.destroy(); spiralBullets.splice(s, 1); continue; } // Collision with heart if (spiral.intersects(heart)) { LK.getSound('hit').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } } // Play dodge sound occasionally for close calls if (gameTime % 180 === 0) { var closeCalls = 0; for (var k = 0; k < bullets.length; k++) { var dist = Math.sqrt(Math.pow(bullets[k].x - heart.x, 2) + Math.pow(bullets[k].y - heart.y, 2)); if (dist < 100) closeCalls++; } if (closeCalls > 2) { LK.getSound('dodge').play(); } } }; // Start background music LK.playMusic('tension');
===================================================================
--- original.js
+++ change.js
@@ -38,8 +38,132 @@
self.speed = 8;
self.isDragging = false;
return self;
});
+var LaserAttack = Container.expand(function () {
+ var self = Container.call(this);
+ // Warning phase graphics
+ var warningGraphics = self.attachAsset('laserWarning', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ alpha: 0
+ });
+ // Actual laser beam graphics
+ var laserGraphics = self.attachAsset('laserBeam', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ alpha: 0
+ });
+ self.phase = 'warning'; // warning, firing, done
+ self.warningDuration = 120; // 2 seconds warning
+ self.firingDuration = 180; // 3 seconds firing
+ self.timer = 0;
+ self.direction = 'horizontal'; // horizontal or vertical
+ self.isActive = false;
+ self.startWarning = function () {
+ self.isActive = true;
+ self.phase = 'warning';
+ self.timer = 0;
+ // Animate warning appearing
+ tween(warningGraphics, {
+ alpha: 0.6
+ }, {
+ duration: 300,
+ easing: tween.easeInOut
+ });
+ // Pulsing warning effect
+ var _pulseWarning = function pulseWarning() {
+ if (self.phase === 'warning') {
+ tween(warningGraphics, {
+ alpha: 0.3
+ }, {
+ duration: 400,
+ easing: tween.easeInOut,
+ onFinish: function onFinish() {
+ tween(warningGraphics, {
+ alpha: 0.6
+ }, {
+ duration: 400,
+ easing: tween.easeInOut,
+ onFinish: _pulseWarning
+ });
+ }
+ });
+ }
+ };
+ _pulseWarning();
+ };
+ self.startFiring = function () {
+ self.phase = 'firing';
+ self.timer = 0;
+ // Hide warning, show laser
+ tween(warningGraphics, {
+ alpha: 0
+ }, {
+ duration: 100
+ });
+ tween(laserGraphics, {
+ alpha: 1
+ }, {
+ duration: 100
+ });
+ // Laser intensity effect
+ tween(laserGraphics, {
+ scaleY: 1.2
+ }, {
+ duration: 200,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ tween(laserGraphics, {
+ scaleY: 1
+ }, {
+ duration: 200,
+ easing: tween.easeIn
+ });
+ }
+ });
+ };
+ self.update = function () {
+ if (!self.isActive) return;
+ self.timer++;
+ if (self.phase === 'warning' && self.timer >= self.warningDuration) {
+ self.startFiring();
+ } else if (self.phase === 'firing' && self.timer >= self.firingDuration) {
+ self.phase = 'done';
+ tween(laserGraphics, {
+ alpha: 0
+ }, {
+ duration: 300
+ });
+ self.markForDestroy = true;
+ }
+ // Check collision during firing phase
+ if (self.phase === 'firing' && heart) {
+ var collision = false;
+ if (self.direction === 'horizontal') {
+ // Check if heart is within laser beam vertically
+ var beamTop = self.y - laserGraphics.height / 2;
+ var beamBottom = self.y + laserGraphics.height / 2;
+ if (heart.y >= beamTop && heart.y <= beamBottom) {
+ collision = true;
+ }
+ } else {
+ // Vertical laser
+ var beamLeft = self.x - laserGraphics.width / 2;
+ var beamRight = self.x + laserGraphics.width / 2;
+ if (heart.x >= beamLeft && heart.x <= beamRight) {
+ collision = true;
+ }
+ }
+ if (collision) {
+ LK.getSound('hit').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ }
+ }
+ };
+ return self;
+});
var MagicBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('magicBullet', {
anchorX: 0.5,
@@ -77,8 +201,34 @@
}
};
return self;
});
+var SpiralBullet = Container.expand(function () {
+ var self = Container.call(this);
+ var bulletGraphics = self.attachAsset('bullet', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.centerX = 1024;
+ self.centerY = 1366;
+ self.angle = 0;
+ self.radius = 50;
+ self.radiusSpeed = 2;
+ self.angleSpeed = 0.1;
+ self.lifetime = 0;
+ self.maxLifetime = 400;
+ self.update = function () {
+ self.lifetime++;
+ self.angle += self.angleSpeed;
+ self.radius += self.radiusSpeed;
+ self.x = self.centerX + Math.cos(self.angle) * self.radius;
+ self.y = self.centerY + Math.sin(self.angle) * self.radius;
+ if (self.lifetime > self.maxLifetime || self.radius > 800) {
+ self.markForDestroy = true;
+ }
+ };
+ return self;
+});
/****
* Initialize Game
****/
@@ -92,8 +242,10 @@
// Game state variables
var heart;
var bullets = [];
var magicBullets = [];
+var laserAttacks = [];
+var spiralBullets = [];
var battleBox;
var isDragging = false;
var dragOffsetX = 0;
var dragOffsetY = 0;
@@ -243,8 +395,39 @@
magicBullets.push(bullet);
game.addChild(bullet);
}
}
+function spawnLaserAttack() {
+ var laser = new LaserAttack();
+ // Random direction
+ if (Math.random() < 0.5) {
+ // Horizontal laser
+ laser.direction = 'horizontal';
+ laser.x = 1024;
+ laser.y = 666 + Math.random() * 1400; // Random Y position within battle box
+ laser.rotation = 0;
+ } else {
+ // Vertical laser
+ laser.direction = 'vertical';
+ laser.x = 324 + Math.random() * 1400; // Random X position within battle box
+ laser.y = 1366;
+ laser.rotation = Math.PI / 2;
+ }
+ laser.startWarning();
+ laserAttacks.push(laser);
+ game.addChild(laser);
+}
+function spawnSpiralAttack() {
+ var numSpirals = 2 + Math.floor(currentWave / 4);
+ for (var i = 0; i < numSpirals; i++) {
+ var spiral = new SpiralBullet();
+ spiral.angle = Math.PI * 2 * i / numSpirals;
+ spiral.angleSpeed = 0.08 + Math.random() * 0.04;
+ spiral.radiusSpeed = 1.5 + Math.random() * 1;
+ spiralBullets.push(spiral);
+ game.addChild(spiral);
+ }
+}
// Main game update
game.update = function () {
gameTime++;
waveTimer++;
@@ -264,10 +447,11 @@
// Spawn bullets based on wave and timing
if (waveSpawnTimer > 120 - currentWave * 5) {
// Faster spawning each wave
waveSpawnTimer = 0;
- var pattern = Math.floor(Math.random() * 3);
+ var pattern = Math.floor(Math.random() * 5);
if (currentWave < 3) pattern = 0; // Only straight bullets early
+ else if (currentWave < 5) pattern = Math.floor(Math.random() * 3); // No lasers/spirals very early
switch (pattern) {
case 0:
spawnStraightBullets();
break;
@@ -276,8 +460,14 @@
break;
case 2:
spawnMagicBullets();
break;
+ case 3:
+ spawnLaserAttack();
+ break;
+ case 4:
+ spawnSpiralAttack();
+ break;
}
}
// Update and check bullet collisions
for (var i = bullets.length - 1; i >= 0; i--) {
@@ -310,8 +500,33 @@
LK.showGameOver();
return;
}
}
+ // Update and check laser attacks
+ for (var l = laserAttacks.length - 1; l >= 0; l--) {
+ var laser = laserAttacks[l];
+ if (laser.markForDestroy) {
+ laser.destroy();
+ laserAttacks.splice(l, 1);
+ continue;
+ }
+ }
+ // Update and check spiral bullet collisions
+ for (var s = spiralBullets.length - 1; s >= 0; s--) {
+ var spiral = spiralBullets[s];
+ if (spiral.markForDestroy) {
+ spiral.destroy();
+ spiralBullets.splice(s, 1);
+ continue;
+ }
+ // Collision with heart
+ if (spiral.intersects(heart)) {
+ LK.getSound('hit').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ }
// Play dodge sound occasionally for close calls
if (gameTime % 180 === 0) {
var closeCalls = 0;
for (var k = 0; k < bullets.length; k++) {