User prompt
saturn sadece bir defa görünsün
User prompt
gemi sabit durduğunda da ekran platformu ilerlesin
User prompt
gift aldığında oyuncugemisi büyüsün
User prompt
bölümleri kaldır
User prompt
oyun bölümler halinde ilerlesin
User prompt
gift nadiren görünsün
User prompt
oyuncugemisi gifte değdiğinde gift kaybolsun
User prompt
oyuncugemisi gifte değdiğinde skor puanı 10 birim artsın
User prompt
gift görseli aşağı doğru çapraz hareket etsin
User prompt
gift görseli hareket etsin
User prompt
oyuna gift görselini ekle
User prompt
uzay gemisini ekranın sağına doğru ilerlettiğimde ekranda ilerlesin
User prompt
saturn en arka planda olsun
User prompt
saturn gezegeni konumu daha uzak olsun
User prompt
arka planda saturn gezegeni ekle
User prompt
oyun ekranı sağa doğru ilerlesin
User prompt
süre bittiğinde oyun bitsin
User prompt
süre ekranın sağında olsun
User prompt
oyuna süre ekle ve 3 dakika olsun
User prompt
alınan skor puanları meteorstone için 2 birim, uzay nesnesi için 1 birim, uzay gemisi içim 3 birim olsun.
User prompt
düşmanların hasar miktarı farklı olsun, meteorstone 3 birim, uzay nesnesi 1 birim ve düşman mermisi 2 birim hasar versin. Sağlık barı 10 birim olsun.
User prompt
oyun hızını ve düşman geliş sıklığını kolaydan zora ayarla
User prompt
düşmanlara meteorstone ekle ve rastgele gelsinler
User prompt
gezegenleri kaldır
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'x')' in or related to this line: 'planet.x = pos.x;' Line Number: 317
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// Asteroid - SAĞDAN SOLA
var Asteroid = Container.expand(function () {
var self = Container.call(this);
var width = 120 + Math.random() * 60;
var height = 120 + Math.random() * 60;
var objAsset = self.attachAsset('spaceObject', {
anchorX: 0.5,
anchorY: 0.5
});
objAsset.width = width;
objAsset.height = height;
objAsset.color = 0x888888;
self.radius = width / 2;
// Always spawn at right edge, random Y, move left
self.x = 2048 + width;
self.y = 200 + Math.random() * (2732 - 400);
// Speed will be set on spawn
self.vx = -8;
self.vy = (Math.random() - 0.5) * 2;
self.update = function () {
self.x += self.vx;
self.y += self.vy;
};
return self;
});
// Mermi (Bullet) - SAĞA DOĞRU
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletAsset = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
// Asset: ellipse, width: 32, height: 32, color: 0xffe066
bulletAsset.width = 32;
bulletAsset.height = 32;
bulletAsset.color = 0xffe066;
self.speed = 32; // Rightwards
self.update = function () {
self.x += self.speed;
};
return self;
});
// EnemyBullet - DÜŞMAN MERMİSİ (sola doğru)
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletAsset = self.attachAsset('dusmanmermi', {
anchorX: 0.5,
anchorY: 0.5
});
bulletAsset.width = 32;
bulletAsset.height = 32;
bulletAsset.color = 0xff4444;
self.speed = -18; // Sola doğru hızlı
self.update = function () {
self.x += self.speed;
};
return self;
});
// EnemyShip - SAĞDAN SOLA
var EnemyShip = Container.expand(function () {
var self = Container.call(this);
var width = 100;
var height = 100;
var objAsset = self.attachAsset('uzayNesnesi2', {
anchorX: 0.5,
anchorY: 0.5
});
objAsset.width = width;
objAsset.height = height;
objAsset.color = 0xff4444;
self.radius = width / 2;
self.x = 2048 + width;
self.y = 200 + Math.random() * (2732 - 400);
// Speed will be set on spawn
self.vx = -10;
self.vy = (Math.random() - 0.5) * 3;
self.update = function () {
self.x += self.vx;
self.y += self.vy;
};
return self;
});
// MeteorStone - SAĞDAN SOLA, rastgele gelen düşman türü
var MeteorStone = Container.expand(function () {
var self = Container.call(this);
var width = 120 + Math.random() * 60;
var height = 120 + Math.random() * 60;
var objAsset = self.attachAsset('meteorstone', {
anchorX: 0.5,
anchorY: 0.5
});
objAsset.width = width;
objAsset.height = height;
self.radius = width / 2;
// Always spawn at right edge, random Y, move left
self.x = 2048 + width;
self.y = 200 + Math.random() * (2732 - 400);
// Hız: asteroidlerden biraz daha hızlı olabilir
var baseSpeed = 3 + Math.random() * 2;
self.vx = -baseSpeed;
self.vy = (Math.random() - 0.5) * 2.5;
self.update = function () {
self.x += self.vx;
self.y += self.vy;
};
return self;
});
// Uzay Aracı (Player Ship)
var PlayerShip = Container.expand(function () {
var self = Container.call(this);
// Ship asset: blue ellipse
var shipAsset = self.attachAsset('playerShip', {
anchorX: 0.5,
anchorY: 0.5
});
// Asset will be created as: ellipse, width: 140, height: 100, color: 0x3a9cff
shipAsset.width = 140;
shipAsset.height = 100;
shipAsset.color = 0x3a9cff;
self.radius = 70; // For collision
return self;
});
// Uzay Cismi (Asteroid/Enemy) - SAĞDAN SOLA
var SpaceObject = Container.expand(function () {
var self = Container.call(this);
// Randomly choose asteroid or enemy
var isAsteroid = Math.random() < 0.7;
var color = isAsteroid ? 0x888888 : 0xff4444;
var width = isAsteroid ? 120 + Math.random() * 60 : 100;
var height = isAsteroid ? 120 + Math.random() * 60 : 100;
var objAsset = self.attachAsset('spaceObject', {
anchorX: 0.5,
anchorY: 0.5
});
objAsset.width = width;
objAsset.height = height;
objAsset.color = color;
self.radius = width / 2;
// Always spawn at right edge, random Y, move left
self.x = 2048 + width;
self.y = 200 + Math.random() * (2732 - 400);
var speed = 6 + Math.random() * 4;
self.vx = -speed;
self.vy = (Math.random() - 0.5) * 2; // hafif yukarı/aşağı varyasyon
self.update = function () {
self.x += self.vx;
self.y += self.vy;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000010
});
/****
* Game Code
****/
// Saturn gezegeni arka plan objesi
var saturnBg = LK.getAsset('saturn', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2,
width: 700,
height: 700
});
saturnBg.alpha = 0.18; // Hafif transparan, arka plan gibi
game.addChild(saturnBg); // EN ARKA PLANDA OLACAK ŞEKİLDE EN ÖNCE EKLENİR
// Gift görseli ekle (arka planın önünde, oyun alanında bir yerde)
var giftBg = LK.getAsset('gift', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2 + 600,
// Saturn'den biraz sağda, uzak bir noktada başlat
y: 2732 / 2 - 400,
width: 120,
height: 120
});
giftBg.alpha = 0.95;
game.addChild(giftBg);
// Oyun değişkenleri
var scrollX = 0; // Ekranın sağa doğru ilerlemesini simüle eden global değişken
var scrollSpeed = 8; // px/frame, sağa doğru ilerleme hızı
var playerShip = new PlayerShip();
// Oyuncu gemisi sol alt köşeden sağa hareket edecek şekilde konumlandırılır
playerShip.x = 350;
playerShip.y = 2732 / 2;
game.addChild(playerShip);
var playerMaxHealth = 10;
var playerHealth = playerMaxHealth;
var bullets = [];
var spaceObjects = [];
var canShoot = true;
var shootInterval = 250; // ms
var lastShootTick = 0;
var score = 0;
var difficulty = 1;
var spawnInterval = 90; // ticks
var lastSpawnTick = 0;
// Animated Health Bar (Can Bar)
var canBarWidth = 400;
var canBarHeight = 40;
var canBarBg = new Container();
var canBarBgRect = canBarBg.attachAsset('can', {
anchorX: 0,
anchorY: 0.5,
x: 0,
y: canBarHeight / 2,
width: canBarWidth,
height: canBarHeight
});
canBarBgRect.alpha = 0.25;
var canBarFg = new Container();
var canBarFgRect = canBarFg.attachAsset('can', {
anchorX: 0,
anchorY: 0.5,
x: 0,
y: canBarHeight / 2,
width: canBarWidth,
height: canBarHeight
});
canBarFgRect.alpha = 1;
// Health bar container for easy positioning
var canBarContainer = new Container();
canBarContainer.addChild(canBarBg);
canBarContainer.addChild(canBarFg);
// Position: top left, but not overlapping menu (leave 100px left and top margin)
canBarContainer.x = 100 + 20;
canBarContainer.y = 100 + 20;
// Add to game (not GUI, so it scales with game)
game.addChild(canBarContainer);
// Skor gösterimi
var scoreTxt = new Text2('0', {
size: 120,
fill: "#fff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Süre göstergesi (3 dakika = 180 saniye)
var gameDuration = 180; // saniye
var timeLeft = gameDuration;
var timerTxt = new Text2('03:00', {
size: 100,
fill: "#fff"
});
timerTxt.anchor.set(1, 0); // Anchor right edge
LK.gui.topRight.addChild(timerTxt); // Add to right side of GUI
// Timer'ı güncelleyen fonksiyon
function updateTimerDisplay() {
var min = Math.floor(timeLeft / 60);
var sec = Math.floor(timeLeft % 60);
var minStr = min < 10 ? "0" + min : "" + min;
var secStr = sec < 10 ? "0" + sec : "" + sec;
timerTxt.setText(minStr + ":" + secStr);
}
updateTimerDisplay();
// Animate health bar width and color
function updateCanBar() {
var targetWidth = canBarWidth * Math.max(0, playerHealth) / playerMaxHealth;
// Animate width using tween
tween(canBarFgRect, {
width: targetWidth
}, {
duration: 300
});
// Calculate color: green (full) to red (empty)
// 0x00FF00 (green) to 0xFF0000 (red)
var healthRatio = Math.max(0, Math.min(1, playerHealth / playerMaxHealth));
var r = Math.round(0xFF * (1 - healthRatio));
var g = Math.round(0xFF * healthRatio);
var b = 0;
var color = r << 16 | g << 8 | b;
// Animate color using tween
tween(canBarFgRect, {
color: color
}, {
duration: 300
});
}
updateCanBar();
// Dokunma/sürükleme ile gemi hareketi
var dragging = false;
function handleMove(x, y, obj) {
if (dragging) {
// Sınırları aşmasın - tüm ekranda serbest hareket
var minX = playerShip.width / 2 + 40;
var maxX = 2048 - playerShip.width / 2 - 40;
var minY = playerShip.height / 2 + 40;
var maxY = 2732 - playerShip.height / 2 - 40;
// Ekranın sağ kenarına yaklaşınca ekranı kaydır
var rightScrollTrigger = 2048 * 0.65;
if (x > rightScrollTrigger) {
// Gemi sağa ilerletiliyor, ekranı kaydır
var delta = x - rightScrollTrigger;
scrollX += delta;
// Gemi ekranın sağında sabit kalır
playerShip.x = rightScrollTrigger;
} else {
playerShip.x = Math.max(minX, Math.min(maxX, x));
}
playerShip.y = Math.max(minY, Math.min(maxY, y));
}
}
game.move = handleMove;
game.down = function (x, y, obj) {
// Geminin üstüne dokunulmuşsa veya her yere dokunulabiliyorsa
dragging = true;
handleMove(x, y, obj);
};
game.up = function (x, y, obj) {
dragging = false;
};
// Otomatik ateş (her shootInterval ms'de bir)
function tryShoot() {
if (!canShoot) return;
var bullet = new Bullet();
// Mermi geminin sağ tarafından ateşlensin
bullet.x = playerShip.x + playerShip.width / 2 + 10;
bullet.y = playerShip.y;
bullets.push(bullet);
game.addChild(bullet);
canShoot = false;
LK.setTimeout(function () {
canShoot = true;
}, shootInterval);
}
// Uzay cismi oluştur
function spawnSpaceObject() {
// 0: uzayNesnesi2 (enemy), 1: spaceObject (asteroid), 2: meteorstone (yeni düşman)
var rand = Math.random();
var obj;
if (rand < 0.4) {
// uzayNesnesi2 (enemy ship)
obj = new Container();
var width = 100;
var height = 100;
var objAsset = obj.attachAsset('uzayNesnesi2', {
anchorX: 0.5,
anchorY: 0.5
});
objAsset.width = width;
objAsset.height = height;
objAsset.color = 0xff4444;
obj.radius = width / 2;
obj.x = 2048 + width;
obj.y = 200 + Math.random() * (2732 - 400);
// Düşman hızı: kolayda yavaş, zorda hızlı
// 1. zorlukta ~3, 10. zorlukta ~9
var baseSpeed = 3 + (difficulty - 1) * 0.7;
var speed = baseSpeed + Math.random() * (1.5 + difficulty * 0.2);
obj.vx = -speed;
obj.vy = (Math.random() - 0.5) * (2.5 + difficulty * 0.2);
// Enemy bullet fire timer
obj.enemyBulletCooldown = 40 + Math.floor(Math.random() * 40); // ticks
obj.lastEnemyBulletTick = LK.ticks;
obj.update = function () {
obj.x += obj.vx;
obj.y += obj.vy;
// Ateş etme (her cooldown süresi dolduğunda)
if (LK.ticks - obj.lastEnemyBulletTick > obj.enemyBulletCooldown) {
var eb = new EnemyBullet();
eb.x = obj.x - 60;
eb.y = obj.y;
if (!game.enemyBullets) game.enemyBullets = [];
game.enemyBullets.push(eb);
game.addChild(eb);
obj.lastEnemyBulletTick = LK.ticks;
obj.enemyBulletCooldown = 40 + Math.floor(Math.random() * 40);
}
};
} else if (rand < 0.8) {
// spaceObject (asteroid)
obj = new Container();
var width = 120 + Math.random() * 60;
var height = 120 + Math.random() * 60;
var objAsset = obj.attachAsset('spaceObject', {
anchorX: 0.5,
anchorY: 0.5
});
objAsset.width = width;
objAsset.height = height;
objAsset.color = 0x888888;
obj.radius = width / 2;
obj.x = 2048 + width;
obj.y = 200 + Math.random() * (2732 - 400);
// Asteroid hızı: kolayda yavaş, zorda hızlı
// 1. zorlukta ~2.5, 10. zorlukta ~8
var baseSpeed = 2.5 + (difficulty - 1) * 0.6;
var speed = baseSpeed + Math.random() * (1.5 + difficulty * 0.2);
obj.vx = -speed;
obj.vy = (Math.random() - 0.5) * (2 + difficulty * 0.2);
obj.update = function () {
obj.x += obj.vx;
obj.y += obj.vy;
};
} else {
// meteorstone (yeni düşman)
// MeteorStone: kolayda yavaş, zorda hızlı
obj = new MeteorStone();
if (obj && obj.vx !== undefined) {
// 1. zorlukta ~-3, 10. zorlukta ~-8
var meteorBaseSpeed = 3 + (difficulty - 1) * 0.6;
obj.vx = -meteorBaseSpeed - Math.random() * (1.5 + difficulty * 0.2);
obj.vy = (Math.random() - 0.5) * (2.5 + difficulty * 0.2);
}
}
spaceObjects.push(obj);
game.addChild(obj);
}
// Çarpışma kontrolü (daire-çarpışma)
function isCircleHit(a, b) {
var dx = a.x - b.x;
var dy = a.y - b.y;
var dist = Math.sqrt(dx * dx + dy * dy);
var r1 = a.radius || (a.width ? a.width / 2 : 0);
var r2 = b.radius || (b.width ? b.width / 2 : 0);
return dist < r1 + r2 - 10;
}
// Zorluk arttırma ve oyun hızını kademeli olarak artır
function updateDifficulty() {
// Zorluk: 1-10 arası, her 10 puanda bir artar, maksimum 10
var newDifficulty = 1 + Math.floor(score / 10);
if (newDifficulty > 10) newDifficulty = 10;
if (newDifficulty > difficulty) {
difficulty = newDifficulty;
}
// spawnInterval: Kolayda yavaş (120), zorda hızlı (30)
// 1. zorlukta 120, 10. zorlukta 30
spawnInterval = Math.round(120 - (difficulty - 1) * 10);
if (spawnInterval < 30) spawnInterval = 30;
}
// Oyun döngüsü
game.update = function () {
// Timer: her saniye bir azalt
if (LK.ticks % 60 === 0 && timeLeft > 0) {
timeLeft--;
updateTimerDisplay();
if (timeLeft <= 0) {
LK.showGameOver();
return;
}
}
if (timeLeft <= 0) {
LK.showGameOver();
return;
}
// Planets removed
// Otomatik ateş
if (LK.ticks - lastShootTick > Math.floor(shootInterval / 16)) {
tryShoot();
lastShootTick = LK.ticks;
}
// Uzay cismi oluşturma
if (LK.ticks - lastSpawnTick > spawnInterval) {
spawnSpaceObject();
lastSpawnTick = LK.ticks;
}
// Mermileri güncelle
for (var i = bullets.length - 1; i >= 0; i--) {
var b = bullets[i];
b.update();
// ScrollX uygula (tüm objeler sağa doğru ilerliyor gibi)
b.x -= scrollSpeed;
// Ekran dışıysa sil
if (b.x > 2048 + 50) {
b.destroy();
bullets.splice(i, 1);
}
}
// Uzay cisimlerini güncelle
for (var j = spaceObjects.length - 1; j >= 0; j--) {
var obj = spaceObjects[j];
obj.update();
// ScrollX uygula
obj.x -= scrollSpeed;
// Ekran dışıysa sil
if (obj.x < -200 || obj.y < -200 || obj.y > 2732 + 200) {
obj.destroy();
spaceObjects.splice(j, 1);
continue;
}
// Gemiye çarptı mı?
if (isCircleHit(obj, playerShip)) {
// Patlama efekti (patlamaeffekt görseli ile) oyuncu gemisinin üstünde göster
var explosion = LK.getAsset('patlamaeffekt', {
anchorX: 0.5,
anchorY: 0.5,
x: playerShip.x,
y: playerShip.y,
width: playerShip.width || 140,
height: playerShip.height || 100
});
game.addChild(explosion);
tween(explosion, {
alpha: 0,
scaleX: 2,
scaleY: 2
}, {
duration: 400,
onFinish: function onFinish() {
explosion.destroy();
}
});
// Farklı düşman türlerine göre hasar uygula
var damage = 1;
if (obj instanceof MeteorStone) {
damage = 3;
} else if (obj.attachAsset && obj.attachAsset('spaceObject', {
anchorX: 0.5,
anchorY: 0.5
})) {
// SpaceObject asteroid veya enemy, asteroid ise 1 birim
damage = 1;
} else if (obj.attachAsset && obj.attachAsset('uzayNesnesi2', {
anchorX: 0.5,
anchorY: 0.5
})) {
// EnemyShip ise 1 birim (uzayNesnesi2)
damage = 1;
}
playerHealth -= damage;
updateCanBar();
if (playerHealth <= 0) {
LK.showGameOver();
return;
}
obj.destroy();
spaceObjects.splice(j, 1);
continue;
}
// Mermiyle çarpışma
for (var k = bullets.length - 1; k >= 0; k--) {
var b = bullets[k];
if (isCircleHit(obj, b)) {
// Patlama efekti (patlamaeffekt görseli ile)
var explosion = LK.getAsset('patlamaeffekt', {
anchorX: 0.5,
anchorY: 0.5,
x: obj.x,
y: obj.y,
width: obj.width || 100,
height: obj.height || 100
});
game.addChild(explosion);
tween(explosion, {
alpha: 0,
scaleX: 2,
scaleY: 2
}, {
duration: 400,
onFinish: function onFinish() {
explosion.destroy();
}
});
obj.destroy();
spaceObjects.splice(j, 1);
b.destroy();
bullets.splice(k, 1);
// Skor: meteorstone=2, spaceObject=1, enemy ship=3
var scoreToAdd = 1;
if (obj instanceof MeteorStone) {
scoreToAdd = 2;
} else if (obj.attachAsset && obj.attachAsset('uzayNesnesi2', {
anchorX: 0.5,
anchorY: 0.5
})) {
scoreToAdd = 3;
}
score += scoreToAdd;
scoreTxt.setText(score);
updateDifficulty();
break;
}
}
}
// Düşman mermileri güncelle ve çarpışma kontrolü
if (game.enemyBullets) {
for (var eb = game.enemyBullets.length - 1; eb >= 0; eb--) {
var enemyBullet = game.enemyBullets[eb];
enemyBullet.update();
// ScrollX uygula
enemyBullet.x -= scrollSpeed;
// Ekran dışıysa sil
if (enemyBullet.x < -100) {
enemyBullet.destroy();
game.enemyBullets.splice(eb, 1);
continue;
}
// Oyuncuya çarptı mı?
if (isCircleHit(enemyBullet, playerShip)) {
// Patlama efekti (patlamaeffekt görseli ile) oyuncu gemisinin üstünde göster
var explosion = LK.getAsset('patlamaeffekt', {
anchorX: 0.5,
anchorY: 0.5,
x: playerShip.x,
y: playerShip.y,
width: playerShip.width || 140,
height: playerShip.height || 100
});
game.addChild(explosion);
tween(explosion, {
alpha: 0,
scaleX: 2,
scaleY: 2
}, {
duration: 400,
onFinish: function onFinish() {
explosion.destroy();
}
});
playerHealth -= 2;
updateCanBar();
if (playerHealth <= 0) {
LK.showGameOver();
return;
}
enemyBullet.destroy();
game.enemyBullets.splice(eb, 1);
continue;
}
}
}
// Her frame scrollX'i artır (ekran sağa doğru ilerliyor gibi)
scrollX += scrollSpeed;
// Saturn gezegenini sağa doğru kaydır (arka plan efekti)
// Saturn, ekranın ortasında başlar ve scrollX ile daha yavaş kayar, uzaklık efekti için scroll oranı azaltıldı
if (saturnBg) {
// Saturn'u ana oyun alanının çok daha gerisinde, daha yavaş kayacak şekilde hareket ettir (uzaklık için 0.08 oranı)
saturnBg.x = 2048 / 2 - scrollX * 0.08 % (2048 + 700);
// Y ekseninde hafif dalgalanma efekti
saturnBg.y = 2732 / 2 + Math.sin(LK.ticks / 180) * 60;
}
// Gift görselini sağa ve aşağıya doğru çapraz kaydır (parallax efekti, saturn'den daha hızlı ama ana objelerden yavaş)
if (giftBg) {
// X: Orijinal konumundan, scrollX'in 0.18 oranı kadar sola kayar (parallax)
giftBg.x = 2048 / 2 + 600 - scrollX * 0.18 % (2048 + 120);
// Y: Orijinal konumundan, scrollX'in 0.10 oranı kadar aşağıya kayar (çapraz hareket) + dalgalanma efekti
giftBg.y = 2732 / 2 - 400 + scrollX * 0.10 % (2732 + 120) + Math.sin(LK.ticks / 90) * 40;
// Skor artırma: oyuncu gemisi gift'e değdi mi kontrol et
if (typeof giftBg.lastWasIntersecting === "undefined") {
giftBg.lastWasIntersecting = false;
}
var isIntersecting = isCircleHit(playerShip, giftBg);
if (!giftBg.lastWasIntersecting && isIntersecting) {
score += 10;
scoreTxt.setText(score);
updateDifficulty();
// Gift kaybolsun
giftBg.destroy();
giftBg = null;
}
if (giftBg) {
giftBg.lastWasIntersecting = isIntersecting;
}
}
}; ===================================================================
--- original.js
+++ change.js
@@ -656,8 +656,13 @@
if (!giftBg.lastWasIntersecting && isIntersecting) {
score += 10;
scoreTxt.setText(score);
updateDifficulty();
+ // Gift kaybolsun
+ giftBg.destroy();
+ giftBg = null;
}
- giftBg.lastWasIntersecting = isIntersecting;
+ if (giftBg) {
+ giftBg.lastWasIntersecting = isIntersecting;
+ }
}
};
\ No newline at end of file
düşman uzay gemisi. In-Game asset. 2d. High contrast. No shadows
patlama efekti. In-Game asset. 2d. High contrast. No shadows
mermi yönünü sağa çevir ve yat
satürn. In-Game asset. 2d. High contrast. No shadows
meteor taşı. In-Game asset. 2d. High contrast. No shadows
bölüm sonu canavar için devasa uzay gemisi. In-Game asset. 2d. High contrast. No shadows
rengini değiştir
ışın mermisi. In-Game asset. 2d. High contrast. No shadows
yanan ateş topları. In-Game asset. 2d. High contrast. No shadows
oyunda açılacak bir uzay portalı için görüntüyü netleştir
A magical sci-fi starburst explosion for a 2D game effect, with a bright blue and white energy core bursting outward in radiant spikes, surrounded by glowing particles, swirling light trails, and a soft nebula-like aura. The effect should feel like a powerful portal discharge or dimensional rift opening, with dynamic energy and cinematic glow. Transparent background, digital art style, top-down angle, ideal for sprite use in games.. In-Game asset. 2d. High contrast. No shadows
A stunning 2D top-down galaxy for a space-themed game background, featuring a massive spiral galaxy with swirling arms in vibrant shades of blue, purple, and pink, a bright glowing core, scattered star clusters, distant nebulae, and a few small planets orbiting around. The galaxy should feel colorful, mysterious, and vast, with soft glowing effects and high contrast for a sci-fi aesthetic. Style: digital art, seamless background, suitable for looping game parallax layers.. In-Game asset. 2d. High contrast. No shadows
kalkanın içinde gemi olmasın
A 2D sci-fi gift box or power-up crate floating in space, with a glowing metallic surface, futuristic design, bright neon blue and silver accents, and a soft pulsing light effect. The box should look valuable and mysterious, slightly levitating with subtle sparkles or energy rings around it. Designed for a top-down space shooter game. Transparent background, digital art, ideal for sprite use.. In-Game asset. 2d. High contrast. No shadows
A 2D sci-fi power-up gift box that grants a shield, designed with a glowing blue energy core inside a metallic futuristic container. The box features holographic shield symbols, neon cyan highlights, and soft pulsing light. It is slightly levitating, surrounded by sparkles and a faint energy ring. The design should clearly suggest it gives protective power. Transparent background, digital art style, ideal for sprite use in a top-down space shooter game.. In-Game asset. 2d. High contrast. No shadows
bu görseli hız için değiştir
Design a basic 2D top-down spaceship with a compact, angular body and minimal detailing. The ship should have a small central cockpit, two modest rear thrusters, and one weapon mount. Colors are simple — grays and blues — suggesting a utilitarian design. It should look like a beginner’s ship: reliable but not advanced. In-Game asset. 2d. High contrast. No shadows
Upgrade the Level 1 ship into a more capable 2D top-down design. Add wing extensions with subtle glowing lines, a larger engine section with animated thrusters, and two visible weapon hardpoints. Add more color variation (blues, steel, light glow effects) to indicate progress and increased power.. In-Game asset. 2d. High contrast. No shadows
Transform the ship into a high-tech 2D top-down spacecraft. Add shield emitters with rotating energy halos, four weapon slots, side thrusters, and an enhanced cockpit with a golden or crystal-like glow. The silhouette is wider and more refined. Visuals should include detailed paneling, moving parts, and advanced energy flows.. In-Game asset. 2d. High contrast. No shadows
elmas. In-Game asset. 2d. High contrast. No shadows
uzay 2d etkileyici lazer ışını. In-Game asset. 2d. High contrast. No shadows