Сделайте что-то вроде этого:
// first of all, include the x,y position (assuming 2D, since pool) in the Ball object:
class Ball
{
//...
private:
float xpos, ypos;
//...
};
Затем, когда вы создаете массив шаров, а не просто делаете 8 шаров, вы захотите распределить память в куче так, чтобы онапоследний на протяжении всей вашей игры.Так что сделайте это:
Ball *ball= new Ball*[8];
ball[0] = new Ball(x0,y0);
ball[1] = new Ball(x1,y1);
ball[2] = new Ball(x2,y2);
ball[3] = new Ball(x3,y3);
// ...
Убедитесь, что когда ваша игра окончена, вы убираете за собой.
for (int i = 0; i < 8; i++)
delete ball[i];
delete [] ball;
Затем в вашем Ball :: draw () сделайте что-то вроде этого:
Ball::draw()
{
glColor3f(/*yellow*/); // Set the color to yellow
glTranslatef(-xpos, -ypos, 0); // Move to the position of the ball
// Draw the ball
glTranslatef(xpos, ypos, 0); // Move back to the default position
}
Все, что вам нужно сделать, это придумать правильные (x0, y0), (x1, y1), (x2, y2) ..., чтобы сформировать треугольник!Имеет ли это смысл / отвечает на ваш вопрос?