【发布时间】:2014-04-19 22:05:00
【问题描述】:
目前正在为我的划桨游戏中的球类实现 move() 方法。 桨游戏是一种底部有桨的游戏,可以向左/向右移动。球从三堵墙上反弹。我意识到我的 move 方法是错误的,想知道是否有人可以指出我实现它的正确方法。我需要考虑球何时从侧面和顶部反弹
编辑:我玩弄了我的代码,但它仍然没有从墙上反弹
我的代码:
if (this.y+speed<=0+radius) //Checking for top
{
System.out.println("in y"); //Checking if it's in this condition
flipYDir();
}
else if (this.x+speed<=0+radius) //Checking for left wall
{
System.out.println("in x<"); //Checking if it's in this condition
flipXDir();
}
else if (this.x+speed<courtWidth-radius) //Checking for right wall
{
System.out.println("in x>"); //Checking if it's in this condition
flipXDir();
}
else //Update move
{
x+=speed*xDir;
y+=speed*yDir;
}
【问题讨论】:
-
这有什么问题?您是否尝试过使用它,如果是,那么它在做什么错了?
-
我的讲师提供了一个测试员课程。测试人员说顶部弹跳不正确,左侧弹跳不正确。但由于某种原因,向右弹跳是正确的。
-
您可能希望提供所描述的正确行为,但您的教练。此外,您可能希望通过在每个步骤中插入显示
x、y、speed和dir值的几个打印语句来创建代码行为的跟踪。此外,问题可能出在 move 方法之外。最后,但与您的问题无关,我将实施xSpeed和ySpeed,因此您的前两个if/then子句折叠为x += xSpeed; y += ySpeed;。翻转减少到xSpeed *= -1。