老师看看我的理解

来源:8-1 Canvas动画

光aaaaand影

2019-08-19 09:17:35

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>canvas</title>
        <style>
            canvas{
                border:1px solid red;
            }
        </style>
    </head>
    <body>
        <canvas id="myCanvas" width="400" height="300">
            您的浏览器不支持canvas!
        </canvas>
        <script type="text/javascript">
            var myCanvas=document.getElementById("myCanvas");
            // getContext() 方法返回一个用于在画布上绘图的环境
            var ctx=myCanvas.getContext("2d");
            var posX=0,posY=0,dir=1,isMouseInRect=false;
            myCanvas.onmousemove=function(e){
                var mouseX=e.offsetX;
                var mouseY=e.offsetY;
                
                if(mouseX>posX&&mouseX<posX+50
                    &&mouseY>posY&&mouseY<posY+50){
                        isMouseInRect=true;
                        // console.log(isMouseInRect);
                    }else{
                        isMouseInRect=false;
                        // console.log(isMouseInRect);
                    }
            }
            
            setInterval(function(){
                ctx.clearRect(0,0,myCanvas.width,myCanvas.height);
                ctx.fillRect(posX,posY,50,50);
                if(posX+50>=myCanvas.width){
                    dir=-1;
                }else if(posX<=0){
                    dir=1;
                }
                // console.log(isMouseInRect);
                if(isMouseInRect==false){
                    posX+=10*dir;
                }
            },100)
            
            
        </script>
    </body>
</html>

老师,我觉得这样子判断比视频中的代码好理解一些吧。

我对if判断条件有一点迷,

  1. 视频中用的(!isMouseInRect),是不是只有在(!isMouseInRect)为真时才会执行后边的代码?

  2. 还有一种情况是,有时候括号中并没有像我这样明确的写等于false还是true,而是直接写一个变量,例如if( ismouseDown),在这种情况下究竟什么时候执行if{}中的代码

写回答

1回答

好帮手慕慕子

2019-08-19

同学你好, 编程是灵活的, 同学觉得这种判断方法比较好理解, 就可以使用这种书写方式呀

对于同学的疑惑解答如下

  1. !isMouseInRect 这里同学理解是对的

  2. if(ismouseDown) 这种写法等同于if(ismouseDown == true ), 表示在ismouseDown为真的情况下, 才会执行if后面的代码哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

0

0 学习 · 4826 问题

查看课程