User prompt
arka plan müziği diğer sesler ile eşit düzeyde olsun
User prompt
arka plan müziğinin sesini yükseltelim
User prompt
arkaplan olarak eklediğim görseli arka plana sığacak boyutta ekler misiin
User prompt
arka plana koyduğum bina görselinde her pencere içine oran olarak bir tuğla denk gelecek şekilde görünsün istiyorum
User prompt
arka plana tuğlalara denk gelecek şekilde pencereleri olan büyük bir bina olsun
User prompt
sesler kısmına da yeni yer açılsın tuğlaya çarpma sesi için
User prompt
top tuğlaya çarptığından ses efekti eklensin
User prompt
oyun ilk başladığında top küreğin üzerinde başlasın (hata düzeltilsin)
User prompt
arka plan müziğini çok düşük olacak şekilde ayarla
User prompt
arkada sürekli müzik olarak çalan ses %50 sesi alçaltalım
User prompt
müzik kısmına eklediğim müzik devamlı çalacak şekilde kullanılsın
User prompt
topun küreğe vurma anına ses efekti ekleyelim
User prompt
Migrate to the latest version of LK
Remix started
Copy Dreams of Arkanoid
/**** * Classes ****/ var Ball = Container.expand(function () { var self = Container.call(this); var ballGraphics = LK.getAsset('ball', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(ballGraphics); self.speed = { x: 20, y: -20 }; self._move_migrated = function () { self.x += self.speed.x; self.y += self.speed.y; if (self.x < 0 || self.x > 2048) { self.speed.x *= -1; } }; }); var Brick = Container.expand(function (i) { var self = Container.call(this); var brickGraphics = LK.getAsset('brick', { anchorX: 0.5, anchorY: 0.5 }); var colors = [0xFF0000, 0xFF7F00, 0xFFFF00, 0x00FF00, 0x0000FF, 0x4B0082, 0x8B00FF]; brickGraphics.tint = colors[i % colors.length]; self.addChild(brickGraphics); }); var Paddle = Container.expand(function () { var self = Container.call(this); var paddleGraphics = LK.getAsset('paddle', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(paddleGraphics); self.speed = 5; self._move_migrated = function (pos) { self.x = pos.x; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // brick collision sound game.setBackgroundColor(0x000040); LK.playMusic('uzay', { volume: 0.05 }); // Calculate brick and area sizes var brickRows = 10; var brickColumns = 5; var brickSample = new Brick(0); var brickW = brickSample.width; var brickH = brickSample.height; var brickAreaWidth = brickRows * brickW; var brickAreaHeight = brickColumns * brickH; var brickAreaStartX = (2048 - brickAreaWidth) / 2; var brickAreaStartY = 4 * brickH; // Place building background so its windows match the brick grid var buildingGraphics = LK.getAsset('building', { anchorX: 0, anchorY: 0 }); var building = new Container(); building.addChild(buildingGraphics); // Scale and position building so its window grid matches the brick grid var buildingOrigW = buildingGraphics.width; var buildingOrigH = buildingGraphics.height; var scaleX = brickAreaWidth / buildingOrigW; var scaleY = brickAreaHeight / buildingOrigH; buildingGraphics.scaleX = scaleX; buildingGraphics.scaleY = scaleY; building.x = brickAreaStartX; building.y = brickAreaStartY; // Optionally, if you want to add window overlays, you can do so here, but the building image itself should visually match the brick grid now game.addChild(building); var ball = game.addChild(new Ball()); var paddle = game.addChild(new Paddle()); var bricks = []; var score = 0; var scoreText = new Text2('0', { size: 150, fill: '#ffffff' }); scoreText.anchor.set(.5, 0); LK.gui.top.addChild(scoreText); paddle.x = 2048 / 2; paddle.y = 2732 - paddle.height; ball.x = paddle.x; ball.y = paddle.y - paddle.height / 2 - ball.height / 2; var brickRows = 10; var brickColumns = 5; var brickAreaWidth = brickRows * new Brick().width; var brickAreaStartX = (2048 - brickAreaWidth) / 2; for (var i = 0; i < brickRows; i++) { for (var j = 0; j < brickColumns; j++) { var brick = game.addChild(new Brick(i + j)); brick.x = brickAreaStartX + i * brick.width + brick.width / 2; brick.y = j * brick.height + brick.height / 2 + 4 * brick.height; bricks.push(brick); } } LK.on('tick', function () { ball._move_migrated(); if (ball.intersects(paddle) && ball.speed.y > 0) { var hitPos = (ball.x - paddle.x) / paddle.width; ball.speed.x = hitPos * 20; ball.speed.y *= -1; LK.getSound('sound').play(); } if (ball.y < 0) { ball.speed.y *= -1; } for (var i = 0; i < bricks.length; i++) { if (ball.intersects(bricks[i])) { ball.speed.y *= -1; LK.getSound('brickhit').play(); bricks[i].destroy(); bricks.splice(i, 1); i--; score++; LK.setScore(score); scoreText.setText(score.toString()); } } if (ball.y > 2732 || bricks.length === 0) { LK.showGameOver(); } }); game.on('move', function (x, y, obj) { var pos = game.toLocal(obj.global); paddle._move_migrated(pos); });
===================================================================
--- original.js
+++ change.js
@@ -57,35 +57,35 @@
game.setBackgroundColor(0x000040);
LK.playMusic('uzay', {
volume: 0.05
});
-// Add a large building background with window cutouts aligned to bricks
-var buildingWidth = brickRows * new Brick().width + 100;
-var buildingHeight = (brickColumns + 2) * new Brick().height + 200;
-var buildingX = (2048 - buildingWidth) / 2;
-var buildingY = 3 * new Brick().height;
-var building = new Container();
-var buildingShape;
+// Calculate brick and area sizes
+var brickRows = 10;
+var brickColumns = 5;
+var brickSample = new Brick(0);
+var brickW = brickSample.width;
+var brickH = brickSample.height;
+var brickAreaWidth = brickRows * brickW;
+var brickAreaHeight = brickColumns * brickH;
+var brickAreaStartX = (2048 - brickAreaWidth) / 2;
+var brickAreaStartY = 4 * brickH;
+// Place building background so its windows match the brick grid
var buildingGraphics = LK.getAsset('building', {
anchorX: 0,
anchorY: 0
});
+var building = new Container();
building.addChild(buildingGraphics);
-building.x = buildingX;
-building.y = buildingY;
-// Add window cutouts aligned to bricks
-for (var i = 0; i < brickRows; i++) {
- for (var j = 0; j < brickColumns; j++) {
- var windowShapeId = 'window_' + i + '_' + j;
- var windowAsset = LK.getAsset(windowShapeId, {
- anchorX: 0.5,
- anchorY: 0.5
- });
- windowAsset.x = buildingX + i * new Brick().width + new Brick().width / 2;
- windowAsset.y = buildingY + j * new Brick().height + new Brick().height / 2;
- building.addChild(windowAsset);
- }
-}
+// Scale and position building so its window grid matches the brick grid
+var buildingOrigW = buildingGraphics.width;
+var buildingOrigH = buildingGraphics.height;
+var scaleX = brickAreaWidth / buildingOrigW;
+var scaleY = brickAreaHeight / buildingOrigH;
+buildingGraphics.scaleX = scaleX;
+buildingGraphics.scaleY = scaleY;
+building.x = brickAreaStartX;
+building.y = brickAreaStartY;
+// Optionally, if you want to add window overlays, you can do so here, but the building image itself should visually match the brick grid now
game.addChild(building);
var ball = game.addChild(new Ball());
var paddle = game.addChild(new Paddle());
var bricks = [];
kaliteli ama klasik kırmızı renk yandan görünümlü bilek kısmı olmayan krampon. In-Game asset. 2d. High contrast. No shadows
çamı kırılmış olarak gözüken eski vintage pencere. In-Game asset. 2d. High contrast. No shadows
hd çözünrülükte atari tarzı tuğla duvar. In-Game asset. 2d. High contrast. No shadows