Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script>
- document.addEventListener('DOMContentLoaded', function(){
- const canvas = document.getElementById("canvasId");
- const canvasId = canvas.getContext("2d");
- let player = new Player(canvas.width/2 - 100/2, canvas.height - 20, 100, 20);
- let ball = new Ball(canvas.width/2, canvas.height - player.height - 20, 20, 0, 0);
- document.addEventListener("mousemove", function(evt){
- const mouse = mouse_player1(evt, canvas);
- player.x = mouse.x - player.width/2;
- // do some tasks
- });
- canvas.addEventListener('click', function(){
- reset();
- ball.speedX = Math.floor(Math.random()*2) == 0 ? -10 : 10;
- // if(Math.floor(Math.random()*2) == 0){
- // ball.speedX = -10;
- // } else {
- // ball.speedX = 10;
- // }
- ball.speedY = -13;
- })
- const reset = () => {
- ball.x = canvas.width/2;
- ball.y = canvas.height - player.height - ball.r;
- ball.speedX = 0;
- ball.speedY = 0;
- console.log('game over');
- }
- const executeTasks = () => {
- moveTask();
- drawTask();
- }
- const moveTask = () => {
- ball.x += ball.speedX;
- ball.y += ball.speedY;
- if(ball.x + ball.r >= canvas.width || ball.x - ball.r <= 0){
- ball.speedX = -ball.speedX;
- }
- if(ball.y - ball.r <= 0){
- ball.speedY = -ball.speedY;
- }
- if(ball.y + ball.r + player.height >= canvas.height){
- if(ball.x + ball.r >= player.x && ball.x - ball.r <= player.x + player.width){
- ball.speedY = -ball.speedY;
- } else {
- reset();
- }
- }
- }
- const drawTask = () => {
- canvasId.fillStyle = "black";
- canvasId.fillRect(0, 0, canvas.width, canvas.height);
- canvasId.fillStyle = "green";
- canvasId.beginPath();
- canvasId.arc(ball.x, ball.y, 20, 0, Math.PI*2);
- canvasId.fill();
- canvasId.closePath();
- canvasId.fillStyle = "white";
- canvasId.fillRect(player.x, player.y, player.width, player.height);
- }
- setInterval(executeTasks, 33);
- });
- class Ball{
- constructor(x, y, radius, speedX, speedY){
- this.x = x;
- this.y = y;
- this.r = radius;
- this.speedX = speedX;
- this.speedY = speedY;
- }
- }
- class Player{
- constructor(x, y, width, height){
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- }
- }
- const mouse_player1 = (evt, canvas) => {
- let rect = canvas.getBoundingClientRect(); // взима позицията на платното в документа, в случай, че то не започва от горния ляв ъгъл
- let mouseX = evt.clientX - rect.left; // позицията на курсора по хоризонтала
- let mouseY = evt.clientY - rect.top; // позиията на курсора по вертикала
- return {
- x: mouseX,
- y: mouseY,
- } // фунцкията връша два параметъра, x и y
- }
- </script>
- <style>
- #canvasId{
- background:black;
- }
- </style>
- </head>
- <body>
- <canvas id="canvasId" width="1000" height="600"></canvas>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement