为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的小球不会弹回而直接下落呢

var searchLight = {x:400, y:400, radius:150, vx:Math.random() * 5 + 10, vy:Math.random() * 5 + 10};
            window.onload = function(){
                var canvas = document.getElementById("canvas");
                var context = canvas.getContext("2d");
                setInterval(
                    function(){
                        draw(context);
                        update(canvas.width, canvas.height);
                    },40
                );
            }
            function draw (cxt) {
                var canvas = cxt.canvas;
                cxt.clearRect(0, 0, canvas.width, canvas.height);
                
                cxt.save();
                cxt.beginPath();
                cxt.fillStyle = "#000";
                cxt.fillRect(0, 0, canvas.width, canvas.height);
                
                cxt.beginPath();
                cxt.fillStyle = "#FFF";
                cxt.arc(searchLight.x, searchLight.y, searchLight.radius, 0, Math.PI * 2, false);
                cxt.fill();
                cxt.clip();
                
                cxt.font = "bold 150px Arial";
                cxt.textAlign = "center";
                cxt.textBaseline = "middle";
                cxt.fillStyle = "#058";
                cxt.fillText("CANVAS", canvas.width / 2, canvas.height / 4);
                cxt.fillText("CANVAS", canvas.width / 2, canvas.height / 2);
                cxt.fillText("CANVAS", canvas.width / 2, canvas.height * 3 / 4);
                cxt.restore();
            }
            function update (canvasWidth, canvasHeight) {
                searchLight.x += searchLight.vx;
                searchLight.y += searchLight.vy;
                
                if (searchLight.x - searchLight.radius <= 0) {
                    searchLight.vx = -searchLight.vx;
                    searchLight.x = searchLight.radius;
                }
                
                if (searchLight.x + searchLight.radius >= canvasWidth) {
                    searchLight.vx = -searchLight.vx;
                    searchLight.x = canvasWidth - canvas.radius;
                }
                
                if (searchLight.y - searchLight.radius <= 0) {
                    searchLight.vy = -searchLight.vy;
                    searchLight.y = searchLight.radius;
                }
                
                if (searchLight.y + searchLight.radius >= canvasHeight) {
                    searchLight.vy = -searchLight.vy;
                    searchLight.y = canvasHeight - canvas.radius;
                }
            }



正在回答

1 回答

没问题了,问题解决了......

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我的小球不会弹回而直接下落呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信