如何编写JavaScript中两个对象之间的碰撞和反应代码

时间:2019-05-11 09:06:14

标签: javascript

我正在和1位玩家进行乒乓球游戏。我已经设置好了,所以当球击中屏幕边框时,球会改变方向,但是,如果球要击中屏幕中的另一个对象,我将无法做出与之相同的代码

我已经使用Khanacademy编写了此代码,因此大小为400px x 400px

这是我当前的代码

var ballx = random(50,350);
var bally = (50);
var ballxmovement = 2.5;
var ballymovement = 2.5;
var padwidth=80;
var padheight=10;
draw = function(){ 
ballx += ballxmovement;
bally += ballymovement;
noStroke();
background(0, 0, 0);
fill(255, 255, 255);
rectMode(CENTER);
rect(mouseX,350,padwidth, padheight);
fill(255, 255, 255);
ellipse(ballx,bally,20,20);
if (bally > 400) {
        ballymovement = -2.5;
    }
if (bally < 0) {
        ballymovement = 2.5;
    }
if (ballx > 400) {
        ballxmovement = -2.5;
    }
if (ballx < 0) {
        ballxmovement = 2.5;
    }    
};

我想发生的事情是,当球击中矩形时,其反应方式与击中边界时相同。

根据请求,我提供了我创建响应失败的代码。 我将矩形y的位置更改为名为recty的变量。

while(ballx===mouseX){
    if(bally===recty){
        ballxmovement = -2.5;
        }
    } 

1 个答案:

答案 0 :(得分:0)

首先,您可以使用切换大小写,或者如果其他方式用于代码重构,则如果您知道对象的位置(x,y坐标),则可以在达到目标的情况下使用它们来实现回弹效果所需位置

//if(ballx >= 400 ) subtract the values
//else if (ball7 >= 400) subtract the valuew
//else(ballx=== x co-ordinate and bally === y co-ordinnate) subtract the value

尝试上面的sudo代码可以解决您的用例