所以我有下面的代码来表达"AI“运动。pdl_R是AI桨,AIH是AI高度,AIHS是AI高度速度。我想要的代码,以移动划桨由AIH在AIHS的方向。
pdl_R.y=AIH;
AIH+=(3*AIHS);
if(pdl_R.y==stage.stageHeight || pdl_R.y==stage.stageHeight-pdl_R.height)
{
AIHS*=-1;
}
但是当pdl_R ( AI控制面板)到达屏幕底部(向下是默认方向)时,它会停留在那里,上下闪烁3个像素(而不是预期的方向开关)。
我的初始AIH是200,我的初始AIHS是1。
发布于 2012-11-07 20:49:47
当您的AIH达到stage.stageHeight时,会发生以下情况:
,
一个修复方法是在修改AIHS后增加AIH的值。这实际上是最常见的错误原因,您首先应用未更改的值,然后更改它,而不是先更改,然后应用。
发布于 2012-11-07 19:09:06
在下面的if语句中:
if(pdl_R.y==stage.stageHeight || pdl_R.y==stage.stageHeight-pdl_R.height)
{
AIHS*=-1;
}
使用划桨高度(30)和舞台高度(600)的一些示例数字,您会问:
if(paddle.y == 600 || paddle.y == 570)
{
ReversePaddleDirection
}
这可以解释为什么船桨会卡在底部,因为它会永远在570和600之间反弹,一旦到达其中一个就会反转。
如果不是这样,我们可以使用一些更多的信息(即实际的舞台高度和划桨高度)来进一步调试。
https://stackoverflow.com/questions/13266498
复制相似问题