Рисование объекта через массив - PullRequest
0 голосов
/ 14 апреля 2011

Возникли некоторые проблемы с этим циклом for для рисования нескольких чисел одного и того же объекта,

for (int i = BALL_RED_START; i<BALL_RED_END;i++)
{
    glColor3f(1,0,0);
    Redball[i].Draw(); 
}

Redball вызывается из отдельного класса,

I get error:2228, left of .Draw must have class/struct/union.

Redball определяется в верхней части Main.cpp

Ball Redball;  

Ball.cpp:

include "Ball.h"
include "Vector2f.h"
include "Vector3f.h"
include "Glut/glut.h"
include "GL/gl.h"
include "GL/glu.h"

Ball::Ball(void)
{
    Vector3f Temp_position;
    position = Temp_position;
    Vector3f Temp_velocity;
    velocity = Temp_velocity;
}

Ball::~Ball(void)
{
}

void Ball::SetPos(Vector3f New_position)
{
    position = New_position;
}

void Ball::Draw()
{
    glPushMatrix();
    glTranslatef(position.X(), position.Y(), position.Z());
    glColor3d(1, 0, 0);
    glutSolidSphere(0.3, 50, 50);
    glPopMatrix();
}

void Ball::SetVel(Vector3f New_velocity)
{
    velocity = New_velocity;
}

Vector3f Ball::GetPos()
{
    Vector3f temp;
    temp = position;
    return temp;
}

Просто пытаюсь нарисовать 8 из этих шаров.

Ответы [ 2 ]

3 голосов
/ 14 апреля 2011

Возможно, вам нужно это

Redball[i]->Draw(); 

Но нельзя сказать

Из кода, который вы нам дали

2 голосов
/ 14 апреля 2011

Эта ошибка означает, что.аксессоры предназначены для реальных данных.Структуры Классы или Uninons в этом случае у вас есть указатель на ваш класс, а не экземпляр.

Попробуйте и посмотрите, работает ли это для вас.

Redball[i]->Draw()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...