Making a simple game, but nothing is visible on the canvas

<html>
<head>
<title>Sean Coyne</title>

<link rel="stylesheet" type="text/css" href="home.css">
<link rel="icon" type="image/x-icon" href="favicon.ico" />

</head>

<body>


<section>
<article>
<div id="logo"><img src="LogoComic.png" id="Logo"></div><br></br>

<div id="canvas">
    <canvas id="c" style="border:5px solid orange" height="500" width="500"></canvas>

    <p id="p1"></p>

    <script>

        var basket_x=100;
        var basket_y=100;
        var ball_x=100;
        var ball_y=100;
        var points=0;

      

// Canvas background color

        var c = document.getElementById("c");
        var ctx = c.getContext("2d");
        ctx.fillStyle = "#0000";
        ctx.fillRect(0,0,500,500);

      

// This is where the event listener is located

        mycanv.addEventListener("mousemove",seenmotion,false);

        function seenmotion(e) {

      

// This is the code for the mouse // moving around the canvas.

        var bounding_box=mycanv.getBoundingClientRect();
                basket_x=(e.clientX-bounding_box.left) *
                                     (mycanv.width/bounding_box.width); 
                basket_y=(e.clientY-bounding_box.top) *
                        (mycanv.height/bounding_box.height);    
        }

        function start_game() {
            setInterval(game_loop, 50);
        }

        function game_loop() {

      

// The above code is called every 50ms and is // a frame-redraw-game-animation loop.

            mycanv.width=mycanv.width; 

      

// Below is the code that draws objects

            draw_basket(basket_x,basket_y); 
            draw_ball(ball_x,ball_y); 

      

// Below is the code that updates the location of the balls

            ball_x++;
                if (ball_x>mycanv.width) {
                    ball_x=0;
            }

      

// Here is the collision detection code

            if (collision(basket_x, basket_y, ball_x, ball_y)) {
                    points -= 1;
                }

      

// Here is the code for the dot system

            points+=1

      

// and paste it in the upper right corner.

                var integerpoints=Math.floor(points); // make it into an integer
            ctx.font="bold 24px sans-serif #fff";
                ctx.fillText(integerpoints, mycanv.width-50, 50);   
        }

        function collision(basket_x, basket_y, ball_x, ball_y) {
            if(basket_y + 85 < ball_y) {
                return false;
            }
            if (basket_y > ball_y + 91) {
                return false;
            }
            if (basket_x + 80 < ball_x) {
                return false;
            }
            if (basket_x > ball_x + 80) {
                return false;
            }

            return true;
        }

      

// Code to stop the game when we're done playing

        function stop_game() {

        }

      

// Code for the ball

        function draw_ball(x,y) {
            var c = document.getElementById("c");
            var ctx = c.getContext("2d");
            ctx.fillStyle = "#fff";
            ctx.fillRect(0,0,20,20);
        }

      

// Cart code

        function draw_basket(x,y) {
            var basket_img=new Image();
            basket_img.src="basket.png";
            ctx.drawImage(basket_img,x,y);

        }

    start_game()

    </script>



</div>

</article>
</section>

      

Here is what the canvas looks like when started

+3


source to share


1 answer


You never call a start_game()

program to run, so the program just waits. Instead, <script>

add at the end start_game()

.



Just a hint: your string is mycanv.width = mycanv.width

completely unnecessary, it's equivalent to an expression var x = 1; x = x;

.

+1


source







All Articles