//code to move ball down direction y axis
void move()
{
if (y+150<760)
{
y=y+1;
}
//code to move ball at x axis
else if (x+1<1000)
{
x=x+1;
}
// code move ball up direction *here the problem exists need help in logic what should i edit down in this code to move the ball up direction.
else if(y<160)
{
y=y-1;
}
第三条评论显示错误实际上我需要看看球向上移动。
答案 0 :(得分:0)
由于你的第一个if语句。对于第一个失败的语句,y必须大于或等于760.这意味着当你到达第3个if语句y将等于760,这意味着y <160是假的。您需要在第一个if语句中添加下限。
void move()
{
if (y+150<760 && y >160)
{
y=y+1;
}
}
修改强>
需要注意的是,这可以解决逻辑问题,但您仍然会遇到问题。看看这个场景吧。我知道你也有X,但只是和Y一起工作。
如果为真y = y + 1 = 610
,则将第一个y = 609传递给第一个
如果错误y = y - 1 = 609
,则将第二个y = 610传递给第一个
如果为真,则将第三个y = 609传递给第一个y = y + 1 = 610
传递四个y = 610第一个如果是假y = y - 1 = 609
<强>更新强> 逻辑如何以方形图案移动球。 你有x和y分。所以我们说方形的坐标是左上角(0,50),右上角(50,50),右下角(50,0),左下角(0,0)
你想在开始时将X和Y设置为默认点(0,0)(或任意4个点),然后你继续将Y增加到50,这是向上的方向。那就是if(x==0 && y<=50) y=y+1
然后你继续前进到下一个点if(x<=50 && y == 50) x = x + 1
并继续使用那个逻辑