Я хочу сделать игру для пинг-понга, я застрял в движении мяча, я не хочу, чтобы он вышел из границ, который в случае 640 на 480. .... я не хочу, чтобы выйти из этой границы, но вместо того, чтобы двигаться снова, как и в случае столкновения ... Ниже приведен кодКак перемещать объект внутри определенной границы в C++
#include <iostream>
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
int x = 0, y = 0, i;
setcolor(RED);
setfillstyle(SOLID_FILL, YELLOW);
circle(x, y, 20);
floodfill(x, y, RED);
loop1:
for (i = 0; i <= 45; i++) {
cleardevice();
setcolor(RED);
setfillstyle(SOLID_FILL, YELLOW);
circle(x, y, 20);
floodfill(x, y, RED);
if (y == 460) {
break;
}
else {
x += 10;
y += 10;
}
delay(10);
}
for (i = 0; i <= 46; i++) {
cleardevice();
setcolor(RED);
setfillstyle(SOLID_FILL, YELLOW);
circle(x, y, 20);
floodfill(x, y, RED);
if (x == 620) {
break;
}
else {
x += 10;
y -= 10;
}
delay(10);
}
for (i = 0; i <= 45; i++) {
cleardevice();
setcolor(RED);
setfillstyle(SOLID_FILL, YELLOW);
circle(x, y, 20);
floodfill(x, y, RED);
if (y == 20) {
break;
}
else {
x -= 10;
y -= 10;
}
delay(10);
}
for (i = 0; i <= 45; i++) {
cleardevice();
setcolor(RED);
setfillstyle(SOLID_FILL, YELLOW);
circle(x, y, 20);
floodfill(x, y, RED);
if (x == 20) {
goto loop1;
}
else {
x -= 10;
y += 10;
}
delay(10);
}
getch();
closegraph();
}
озеро отступов, использование 'goto' и включение всех графического кода делает этот пример довольно трудно понять. Чем проще ваш пример, тем больше вероятность того, что кто-то найдет время, чтобы понять это. Вы должны правильно отступать и сводить свой пример к важным компонентам. Кроме того, использование локальных файлов ('' C: \\ TC \\ BGI '') делает этот пример недоступным для других, что еще больше обескураживает помощь. –
Это худшее использование 'goto', которое вы могли бы иметь. Развернувшись вверх к метке, из цикла 'for' вернитесь в цикл' for', используя целое число 'i' в качестве счетчика циклов. В обоих циклах вы снова и снова вскакиваете. [Спагетти код] (https://en.wikipedia.org/wiki/Spaghetti_code) – PaulMcKenzie