问答详情
源自:4-2 使用canvas做个物理实验

关于其他三边缘的碰撞检测

if(ball.x>=1024-ball.r){
        vall.x=1024-ball.r;
        ball.vx=-ball.vx;
    }

为何没效果呢?如果我要左右两边缘都有碰撞检测效果呢?

提问者:香宝的夫差 2017-05-22 09:14

个回答

  • 慕粉1471129054
    2017-07-31 12:46:20

    	if(ball.y >= 600-ball.r){
    					ball.y=600-ball.r;
    					ball.vy = -ball.vy;
    				}
    				if(ball.y<=ball.r){
    		        ball.y=ball.r;
    		        ball.vy=-ball.vy;
    		    }
    				if(ball.x<=ball.r){
    		        ball.x=ball.r;
    		        ball.vx=-ball.vx;
    		    }
    				if(ball.x>= 1100 -ball.r){
    						ball.x=1100 -ball.r;
    						ball.vx=-ball.vx;
    				}


  • 慕粉1471129054
    2017-07-31 12:42:03

    这么久过去了不知道你的问题有没有解决,我就是这样写的啊 对着呢

  • 香宝的夫差
    2017-05-22 09:38:08

    //左边缘碰撞返回

    if(ball.x<=ball.r){
            ball.x=ball.r;
            ball.vx=-ball.vx;
        }

    //右边缘碰撞返回

    if(ball.x>=1024-ball.r){
            ball.x=1024-ball.r;
            ball.vx=-ball.vx;
        }

    //上边缘碰撞返回

    if(ball.y<=ball.r){
            ball.y=ball.r;
            ball.vy=-ball.vy*0.9;
        }


  • 香宝的夫差
    2017-05-22 09:29:02

    if(ball.x>=1024-ball.r){
    ball.x=1024-ball.r;
            ball.vx=-ball.vx;
        }