通过数组绘制对象

时间:2011-04-14 17:26:53

标签: c++ arrays opengl object

有一些问题,这个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 个答案:

答案 0 :(得分:3)

也许你需要这个

Redball[i]->Draw(); 

但是没有办法告诉

从你给我们的代码

答案 1 :(得分:2)

该错误意味着。访问器用于实际数据。结构类或uninons在这种情况下,你有一个指向你的类而不是实例的指针。

试试看是否适用于你。

Redball[i]->Draw()