User prompt
Füzeler 15 coin topladıktan sonra hızlansın
User prompt
Ekrana 2 tuş ekle
User prompt
Ekranda sağa bastığım da sağa sola bastığım da sola dönsün bunun için 2 tuş olsun
User prompt
Uçak hep haraket etsin çok uçsun
User prompt
Uçak hep uçsun hızlı hızlı uçsun ve bende onu yönlendirmek için üzerine tıkladığımda uçak dönsün ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Uçak hep hareket etsin uçsun uçak uçsun aq
User prompt
Uçak hep uçsun ve onu yönlendirmek için üzerine tiklayalım
User prompt
Ekrana tıkladıkca dönsün
User prompt
Uçak hep hareket etsin
User prompt
Füzeler bir birlerine dokununca patlasın ve hızlı olsunlar
Code edit (1 edits merged)
Please save this source code
User prompt
Jet Coin Rush
Initial prompt
Uçak olsun ve coinleri toplasin ona ateş eden füzeler olsun
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5
});
self.collected = false;
self.update = function () {
// Gentle rotation animation
coinGraphics.rotation += 0.05;
// Gentle floating animation
self.y += Math.sin(LK.ticks * 0.1 + self.x * 0.01) * 0.5;
};
return self;
});
var Jet = Container.expand(function () {
var self = Container.call(this);
var jetGraphics = self.attachAsset('jet', {
anchorX: 0.5,
anchorY: 0.5
});
self.targetX = 0;
self.targetY = 0;
self.speed = 0.15;
self.update = function () {
// Smooth movement towards target position
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
self.x += dx * self.speed;
self.y += dy * self.speed;
};
return self;
});
var Missile = Container.expand(function () {
var self = Container.call(this);
var missileGraphics = self.attachAsset('missile', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.targetX = 0;
self.targetY = 0;
self.update = function () {
// Home in on target position
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
// Rotate missile to face movement direction
missileGraphics.rotation = Math.atan2(dy, dx) + Math.PI / 2;
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb
});
/****
* Game Code
****/
// Game variables
var jet;
var coins = [];
var missiles = [];
var nextCoinSpawn = 0;
var nextMissileSpawn = 180; // 3 seconds at 60fps
var missileSpawnRate = 180;
var minMissileSpawnRate = 60; // Minimum 1 second between missiles
// UI elements
var scoreTxt = new Text2('0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Initialize jet
jet = game.addChild(new Jet());
jet.x = 2048 / 2;
jet.y = 2732 / 2;
jet.targetX = jet.x;
jet.targetY = jet.y;
// Spawn initial coins
function spawnCoin() {
var coin = new Coin();
coin.x = Math.random() * 1900 + 100; // Keep within screen bounds
coin.y = Math.random() * 2500 + 100;
coins.push(coin);
game.addChild(coin);
}
// Spawn initial missiles
function spawnMissile() {
var missile = new Missile();
// Spawn from random edge of screen
var edge = Math.floor(Math.random() * 4);
switch (edge) {
case 0:
// Top
missile.x = Math.random() * 2048;
missile.y = -50;
break;
case 1:
// Right
missile.x = 2098;
missile.y = Math.random() * 2732;
break;
case 2:
// Bottom
missile.x = Math.random() * 2048;
missile.y = 2782;
break;
case 3:
// Left
missile.x = -50;
missile.y = Math.random() * 2732;
break;
}
missile.targetX = jet.x;
missile.targetY = jet.y;
missiles.push(missile);
game.addChild(missile);
}
// Initial coin spawning
for (var i = 0; i < 5; i++) {
spawnCoin();
}
// Game controls
game.move = function (x, y, obj) {
jet.targetX = x;
jet.targetY = y;
};
game.down = function (x, y, obj) {
jet.targetX = x;
jet.targetY = y;
};
// Main game loop
game.update = function () {
// Update missile spawn rate (increase difficulty)
if (LK.ticks % 300 === 0 && missileSpawnRate > minMissileSpawnRate) {
missileSpawnRate -= 5;
}
// Spawn coins
if (LK.ticks >= nextCoinSpawn) {
spawnCoin();
nextCoinSpawn = LK.ticks + Math.random() * 120 + 60; // 1-3 seconds
}
// Spawn missiles
if (LK.ticks >= nextMissileSpawn) {
spawnMissile();
nextMissileSpawn = LK.ticks + missileSpawnRate;
}
// Update missile targets to current jet position
for (var i = 0; i < missiles.length; i++) {
missiles[i].targetX = jet.x;
missiles[i].targetY = jet.y;
}
// Check coin collection
for (var i = coins.length - 1; i >= 0; i--) {
var coin = coins[i];
if (!coin.collected && jet.intersects(coin)) {
coin.collected = true;
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore().toString());
// Coin collection effect
tween(coin, {
scaleX: 1.5,
scaleY: 1.5,
alpha: 0
}, {
duration: 200,
onFinish: function onFinish() {
coin.destroy();
}
});
coins.splice(i, 1);
LK.getSound('collect').play();
// Spawn new coin
spawnCoin();
}
}
// Check missile collisions
for (var i = 0; i < missiles.length; i++) {
var missile = missiles[i];
if (jet.intersects(missile)) {
// Game over
LK.effects.flashScreen(0xff0000, 1000);
LK.getSound('explosion').play();
LK.showGameOver();
return;
}
}
// Clean up off-screen missiles
for (var i = missiles.length - 1; i >= 0; i--) {
var missile = missiles[i];
if (missile.x < -100 || missile.x > 2148 || missile.y < -100 || missile.y > 2832) {
missile.destroy();
missiles.splice(i, 1);
}
}
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,214 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Coin = Container.expand(function () {
+ var self = Container.call(this);
+ var coinGraphics = self.attachAsset('coin', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.collected = false;
+ self.update = function () {
+ // Gentle rotation animation
+ coinGraphics.rotation += 0.05;
+ // Gentle floating animation
+ self.y += Math.sin(LK.ticks * 0.1 + self.x * 0.01) * 0.5;
+ };
+ return self;
+});
+var Jet = Container.expand(function () {
+ var self = Container.call(this);
+ var jetGraphics = self.attachAsset('jet', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.targetX = 0;
+ self.targetY = 0;
+ self.speed = 0.15;
+ self.update = function () {
+ // Smooth movement towards target position
+ var dx = self.targetX - self.x;
+ var dy = self.targetY - self.y;
+ self.x += dx * self.speed;
+ self.y += dy * self.speed;
+ };
+ return self;
+});
+var Missile = Container.expand(function () {
+ var self = Container.call(this);
+ var missileGraphics = self.attachAsset('missile', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 2;
+ self.targetX = 0;
+ self.targetY = 0;
+ self.update = function () {
+ // Home in on target position
+ var dx = self.targetX - self.x;
+ var dy = self.targetY - self.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance > 0) {
+ self.x += dx / distance * self.speed;
+ self.y += dy / distance * self.speed;
+ // Rotate missile to face movement direction
+ missileGraphics.rotation = Math.atan2(dy, dx) + Math.PI / 2;
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x87ceeb
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var jet;
+var coins = [];
+var missiles = [];
+var nextCoinSpawn = 0;
+var nextMissileSpawn = 180; // 3 seconds at 60fps
+var missileSpawnRate = 180;
+var minMissileSpawnRate = 60; // Minimum 1 second between missiles
+// UI elements
+var scoreTxt = new Text2('0', {
+ size: 80,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Initialize jet
+jet = game.addChild(new Jet());
+jet.x = 2048 / 2;
+jet.y = 2732 / 2;
+jet.targetX = jet.x;
+jet.targetY = jet.y;
+// Spawn initial coins
+function spawnCoin() {
+ var coin = new Coin();
+ coin.x = Math.random() * 1900 + 100; // Keep within screen bounds
+ coin.y = Math.random() * 2500 + 100;
+ coins.push(coin);
+ game.addChild(coin);
+}
+// Spawn initial missiles
+function spawnMissile() {
+ var missile = new Missile();
+ // Spawn from random edge of screen
+ var edge = Math.floor(Math.random() * 4);
+ switch (edge) {
+ case 0:
+ // Top
+ missile.x = Math.random() * 2048;
+ missile.y = -50;
+ break;
+ case 1:
+ // Right
+ missile.x = 2098;
+ missile.y = Math.random() * 2732;
+ break;
+ case 2:
+ // Bottom
+ missile.x = Math.random() * 2048;
+ missile.y = 2782;
+ break;
+ case 3:
+ // Left
+ missile.x = -50;
+ missile.y = Math.random() * 2732;
+ break;
+ }
+ missile.targetX = jet.x;
+ missile.targetY = jet.y;
+ missiles.push(missile);
+ game.addChild(missile);
+}
+// Initial coin spawning
+for (var i = 0; i < 5; i++) {
+ spawnCoin();
+}
+// Game controls
+game.move = function (x, y, obj) {
+ jet.targetX = x;
+ jet.targetY = y;
+};
+game.down = function (x, y, obj) {
+ jet.targetX = x;
+ jet.targetY = y;
+};
+// Main game loop
+game.update = function () {
+ // Update missile spawn rate (increase difficulty)
+ if (LK.ticks % 300 === 0 && missileSpawnRate > minMissileSpawnRate) {
+ missileSpawnRate -= 5;
+ }
+ // Spawn coins
+ if (LK.ticks >= nextCoinSpawn) {
+ spawnCoin();
+ nextCoinSpawn = LK.ticks + Math.random() * 120 + 60; // 1-3 seconds
+ }
+ // Spawn missiles
+ if (LK.ticks >= nextMissileSpawn) {
+ spawnMissile();
+ nextMissileSpawn = LK.ticks + missileSpawnRate;
+ }
+ // Update missile targets to current jet position
+ for (var i = 0; i < missiles.length; i++) {
+ missiles[i].targetX = jet.x;
+ missiles[i].targetY = jet.y;
+ }
+ // Check coin collection
+ for (var i = coins.length - 1; i >= 0; i--) {
+ var coin = coins[i];
+ if (!coin.collected && jet.intersects(coin)) {
+ coin.collected = true;
+ LK.setScore(LK.getScore() + 1);
+ scoreTxt.setText(LK.getScore().toString());
+ // Coin collection effect
+ tween(coin, {
+ scaleX: 1.5,
+ scaleY: 1.5,
+ alpha: 0
+ }, {
+ duration: 200,
+ onFinish: function onFinish() {
+ coin.destroy();
+ }
+ });
+ coins.splice(i, 1);
+ LK.getSound('collect').play();
+ // Spawn new coin
+ spawnCoin();
+ }
+ }
+ // Check missile collisions
+ for (var i = 0; i < missiles.length; i++) {
+ var missile = missiles[i];
+ if (jet.intersects(missile)) {
+ // Game over
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.getSound('explosion').play();
+ LK.showGameOver();
+ return;
+ }
+ }
+ // Clean up off-screen missiles
+ for (var i = missiles.length - 1; i >= 0; i--) {
+ var missile = missiles[i];
+ if (missile.x < -100 || missile.x > 2148 || missile.y < -100 || missile.y > 2832) {
+ missile.destroy();
+ missiles.splice(i, 1);
+ }
+ }
+};
\ No newline at end of file