void Draw() {
int c1;
int x = 59;
int y = 500;
int temp = x;
for (int i = 0; i < 13; ++i){
for (int j = 0; j < 10; ++j){
x_coordinates[i][j] = x;
y_coordinates[i][j] = y;
c1 = temp_color[i][j];
DrawRectangle(x, y, 65, 25, colors[c1]);
x += 67;
}
x = temp;
y -= 28;
}
DrawRectangle(tempx, 0, 85, 12, colors[5]);
DrawCircle(templx, temply, 10, colors[7]);
}
// This function will be called automatically by this frequency 1000.0/FPS
void Animate() {
//if (temply < - 10)
//exit(1);
Brick_collision();
glutPostRedisplay(); // Once again call the Draw member function
}
int Brick_collision(){
for (int i=0; i<13; ++i){
for (int j=0; j<10; ++j){
if (((templx >= x_coordinates[i][j]) && (templx <= x_coordinates[i][j] + 65)) && ((temply + 5 >= y_coordinates[i][j]) && (temply + 5 <= y_coordinates[i][j] + 35 ))){
vy = -vy;
temp_color[i][j] = 2;
// x_coordinates[i][j] -= 300;
// y_coordinates[i][j] -= 300;
// I HAVE USED THESE VALUES BECAUSE NOW THE BRICK WOULD BE OUTSIDE THE SCREEN AND THE BALL WILL NOT COLLIDE WITH IT AGAIN BUT THIS DOESN'T WORK.
return 1;
}
}
}
}
Я пытаюсь создать игру BrickSlayer с использованием OpenGL. В функции Draw()
я рисую структуру игры: кирпичи, педаль и шар. Теперь я сохраняю координаты x и y кирпичей в двумерном массиве. И в функции Animate()
я вызываю функцию Brick_collision()
В которой я применил условие для обнаружения кирпичей. Когда шар сталкивается с кирпичом, я делаю его незаменимым, и я меняю его цвет на белый, а также я должен удалить его координаты из двухмерного массива, чтобы шар не обнаружил его снова. Как я могу добиться этого? Все методы, которые я использовал для удаления координат, не сработали.Удаление значений из 2D-массива в C++
Что значит _remove_? Вы не можете удалить элементы из массивов с фиксированным размером. Вы имели в виду, что вам нужно сбросить эти значения? В противном случае я бы рекомендовал использовать что-то вроде 'std :: vector>'. –
Убрав, я имею в виду, могу ли я изменить значение для координаты «x» и «y» конкретного кирпича в массиве. –
FYI: это * не * 2D-массив, это зубчатый массив –