我正在和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;
}
}
答案 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代码可以解决您的用例