Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>Moja pierwsza gra</title>
- <style>
- * { padding: 0; margin: 0; }
- canvas { background: #eee; display: block; margin: 0 auto; }
- </style>
- </head>
- <body>
- <canvas id="myCanvas" width="480" height="320"></canvas>
- <script>
- var canvas = document.getElementById("myCanvas");
- var ctx = canvas.getContext("2d");
- // koordynaty kola wraz z wartoscia poczatkowa
- var x = canvas.width / 2;
- var y = canvas.height - 30;
- var dx = 2;
- var dy = -2;
- var ballRadius = 10;
- // ustawienia paletki
- var paddleHeight = 10;
- var paddleWidth = 80;
- var paddleX = canvas.width / 2;
- var paddleY = canvas.height - paddleHeight;
- var rightPressed = false;
- var leftPressed = false;
- // cegly
- var brickWidth = 75; // szerokosc cegly
- var brickHeight = 20; // wysokosc cegly
- var brickPadding = 10; // odstep miedzy ceglami
- var brickOffsetTop = 30; // odleglosc od gornej krawedzi ekranu
- var brickOffsetLeft = 30; // odleglosc od lewej strony ekranu
- var brickRowCount = 3; // ilosc wierszy
- var brickColumnCount = 5; // ilosc kolumn
- var brick = [];
- for(var r = 0; r < brickRowCount; r++) {
- brick[r] = [];
- for(var c = 0; c < brickColumnCount; c++) {
- var brickX = brickOffsetLeft + c * (brickWidth + brickPadding);
- var brickY = brickOffsetTop + r * (brickHeight + brickPadding);
- brick[r][c] = {x: brickX, y: brickY, status: 1};
- }
- }
- // rysowanie paletki
- function drawPaddle() {
- ctx.beginPath();
- ctx.rect(paddleX, paddleY, paddleWidth, paddleHeight);
- ctx.fillStyle = "blue";
- ctx.fill();
- ctx.closePath();
- }
- // rysowanie pilki
- function drawBall() {
- ctx.beginPath();
- ctx.arc(x, y, ballRadius, 0, Math.PI*2, false);
- ctx.fillStyle = "#b34f9d";
- ctx.fill();
- ctx.closePath();
- }
- // rysowanie cegiel
- function drawBricks() {
- for(var r = 0; r < brickRowCount; r++) {
- for(var c = 0; c < brickColumnCount; c++) {
- if(brick[r][c].status == 1) {
- var brickX = brick[r][c].x;
- var brickY = brick[r][c].y;
- ctx.beginPath();
- ctx.rect(brickX, brickY, brickWidth, brickHeight);
- ctx.fillStyle = "black";
- ctx.fill();
- ctx.closePath();
- }
- }
- }
- }
- function collisionDection() {
- for(var r = 0; r < brickRowCount; r++) {
- for(var c = 0; c < brickColumnCount; c++) {
- var b = brick[r][c];
- if(b.status == 1) {
- if(x > b.x && x < b.x + brickWidth && y > b.y && y < b.y + brickHeight) {
- b.status = 0;
- dy = - dy;
- }
- }
- }
- }
- }
- function keyDownHandler(e) {
- // strzalka w prawo - 39
- if(e.keyCode == 39) {
- rightPressed = true;
- }
- // strzalka w left - 37
- if(e.keyCode == 37) {
- leftPressed = true;
- }
- }
- function keyUpHandler(e) {
- // strzalka w prawo - 39
- if(e.keyCode == 39) {
- rightPressed = false;
- }
- // strzalka w left - 37
- if(e.keyCode == 37) {
- leftPressed = false;
- }
- }
- function draw() {
- ctx.clearRect(0, 0, canvas.width, canvas.height);
- drawBall();
- drawPaddle();
- drawBricks();
- collisionDection();
- if(x + dx > canvas.width - ballRadius || x + dx < ballRadius) {
- dx = -dx;
- }
- if(y + dy < ballRadius) {
- dy = -dy;
- }
- if(y + dy > canvas.height - ballRadius) {
- if(x < paddleX || x > paddleX + paddleWidth) {
- alert("GAME OVER");
- document.location.reload();
- } else {
- dy = -dy;
- }
- }
- document.addEventListener("keydown", keyDownHandler);
- document.addEventListener("keyup", keyUpHandler);
- if(rightPressed && paddleX < canvas.width - paddleWidth) {
- paddleX += 6;
- }
- if(leftPressed && paddleX > 0) {
- paddleX -= 6;
- }
- x = x + dx;
- y = y + dy;
- }
- setInterval(draw, 10);
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement