gpt4 book ai didi

C++ 弹跳球跳出屏幕

转载 作者:行者123 更新时间:2023-11-28 04:46:55 25 4
gpt4 key购买 nike

我尝试制作一个简单的匀速弹跳球,它应该会在屏幕边缘弹跳。我已经成功地让球向前和向下移动,但它并没有停止,而是继续移动并离开了屏幕。另外,我昨天才开始使用 C++ 图形,程序非常原始,因此如果答案简单一点,我将不胜感激。

(包含所有头文件)

void main()
{
int gdriver = DETECT, gmode, xmax, ymax, Vx=10, Vy=10, Cx=150, Cy=150, t=1;
initgraph(&gdriver, &gmode, "");
xmax = getmaxx();
ymax = getmaxy();
setfillstyle(SOLID_FILL, YELLOW);
a:
while((Cx!=xmax-5 && Cx!=0) || (Cy!=ymax-5 && Cy!=0))
{
Cx += (Vx * t);
Cy += (Vy * t);
clrscr();
pieslice(Cx,Cy,0,360,10);
delay(100);
}
if (Cx==xmax-5 || Cx==0)
{
Vx = - Vx;
}
else if (Cy==ymax-5 || Cy==0)
{
Vy = - Vy;
}
goto a;
}

最佳答案

while(Cx!=xmax-5 || Cx!=0 || Cy!=ymax-5 || Cy!=0)

这是永远正确的!

无论Cx 的值是什么,它总是“不是xmax-5”或“不是零”(嗯,除非xmax-5 本身为零,它可能不是)。

同样,您的 Cy 条件始终成立。

所以,球总是在移动。

相反:

while ((Cx!=xmax-5 && Cx!=0) || (Cy!=ymax-5 && Cy!=0))

现在您仍然遇到同时检查水平和垂直运动的问题,这只有在球准确击中角落时才有效。但我会让你自己解决这个问题。

关于C++ 弹跳球跳出屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49107955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com