User prompt
ball.velocityX *= 1.02; ball.velocityY *= 1.02;
User prompt
function onBlockHit() { // Blok kırıldı, topun hızını %5 artır ball.velocityX *= 1.05; ball.velocityY *= 1.05; }
User prompt
function onBlockHit() { // Top hızını %10 artır ball.velocityX *= 1.1; ball.velocityY *= 1.1; }
Code edit (1 edits merged)
Please save this source code
User prompt
Brick Breaker
Initial prompt
/**** * Assets ****/ LK.init.shape('paddle', {width: 150, height: 20, color: 0x3366ff, shape: 'box'}); LK.init.shape('ball', {width: 20, height: 20, color: 0xff3333, shape: 'circle'}); LK.init.shape('block', {width: 80, height: 30, color: 0x44cc44, shape: 'box'}); /**** * Classes ****/ var Paddle = Container.expand(function () { var self = Container.call(this); self.attachAsset('paddle', {anchorX: 0.5, anchorY: 0.5}); self.speed = 10; self.update = function () { // Mouse ya da dokunma ile paddle hareketi if (game.pointerX !== undefined) { self.x = game.pointerX; // Paddle ekran dışına çıkmasın if (self.x < self.width / 2) self.x = self.width / 2; if (self.x > game.width - self.width / 2) self.x = game.width - self.width / 2; } }; return self; }); var Ball = Container.expand(function () { var self = Container.call(this); self.attachAsset('ball', {anchorX: 0.5, anchorY: 0.5}); self.velocityX = 6; self.velocityY = -6; self.radius = 10; self.update = function () { self.x += self.velocityX; self.y += self.velocityY; // Duvarlardan sekme if (self.x < self.radius) { self.x = self.radius; self.velocityX *= -1; } if (self.x > game.width - self.radius) { self.x = game.width - self.radius; self.velocityX *= -1; } if (self.y < self.radius) { self.y = self.radius; self.velocityY *= -1; } // Paddle ile çarpışma kontrolü if ( self.y + self.radius >= paddle.y - paddle.height / 2 && self.y + self.radius <= paddle.y + paddle.height / 2 && self.x > paddle.x - paddle.width / 2 && self.x < paddle.x + paddle.width / 2 ) { self.y = paddle.y - paddle.height / 2 - self.radius; self.velocityY *= -1; // X hızını paddle'nin hareketine göre hafifçe değiştir var diff = self.x - paddle.x; self.velocityX = diff * 0.2; } // Alt ekrana düşerse oyun biter if (self.y > game.height + self.radius) { gameOver(); } }; return self; }); var Block = Container.expand(function (color) { var self = Container.call(this); self.attachAsset('block', {anchorX: 0, anchorY: 0}); self.color = color || 0x44cc44; self.tint = self.color; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x222222, width: 800, height: 600 }); var paddle = game.addChild(new Paddle()); paddle.x = game.width / 2; paddle.y = game.height - 50; var ball = game.addChild(new Ball()); ball.x = game.width / 2; ball.y = game.height - 80; var blocks = []; var rows = 5; var cols = 9; var blockWidth = 80; var blockHeight = 30; var startX = (game.width - (cols * blockWidth)) / 2; var startY = 50; // Blokları oluştur for (var row = 0; row < rows; row++) { for (var col = 0; col < cols; col++) { var block = game.addChild(new Block()); block.x = startX + col * blockWidth; block.y = startY + row * blockHeight; blocks.push(block); } } // Oyun bitiş fonksiyonu function gameOver() { alert("Oyun bitti! Yeniden başlatılıyor..."); location.reload(); } /**** * Game Loop ****/ game.update = function () { paddle.update(); ball.update(); // Top ile blokların çarpışmasını kontrol et for (var i = blocks.length - 1; i >= 0; i--) { var b = blocks[i]; if ( ball.x + ball.radius > b.x && ball.x - ball.radius < b.x + blockWidth && ball.y + ball.radius > b.y && ball.y - ball.radius < b.y + blockHeight ) { // Çarpışma varsa blok yok olur ve top yön değiştirir blocks.splice(i, 1); game.removeChild(b); ball.velocityY *= -1; break; } } // Tüm bloklar kırıldıysa oyunu kazandın if (blocks.length === 0) { alert("Tebrikler, oyunu kazandın!"); location.reload(); } };
/**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 });
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});