BALL ball1;//,ball2,ball3;
ball1.bx = 0;
ball1.by = 0;
ball1.bvx = 1.0;
ball1.bvy = 1.0;
ball1.radius = 5.0;
BALL是一个单独的.h文件中的结构,我使用了以下代码:
typedef struct ball
{
GLfloat bx;
GLfloat by;
GLfloat bvx;
GLfloat bvy;
GLfloat radius;
}BALL;
typedef struct paddle
{
GLfloat length;
GLfloat width;
GLfloat px;
GLfloat py;
GLfloat pvx;
GLfloat pvy;
bool alongX;
}PADDLE;
但是在主文件中我收到了上述错误!
主文件中的代码是:
#include "header.h"
#include "ball_pad.h"
#include "pingpong.h"
#include "texture.h"
#include "3dsloader.h"
float A = 45.0f,AA = -45.0f;
float B = 35.0f,BB = -35.0f;
/**********************************************************
*
* VARIABLES DECLARATION
*
*********************************************************/
// The width and height of your window, change them as you like
int screen_width=640;
int screen_height=480;
// Absolute rotation values (0-359 degrees) and rotation increments for each frame
double rotation_x=0, rotation_x_increment=0.1;
double rotation_y=0, rotation_y_increment=0.05;
double rotation_z=0, rotation_z_increment=0.03;
// Absolute rotation values (0-359 degrees) and rotation increments for each frame
double translation_x=0, translation_x_increment=1.0;
double translation_y=0, translation_y_increment=0.05;
double translation_z=0, translation_z_increment=0.03;
// Flag for rendering as lines or filled polygons
int filling=1; //0=OFF 1=ON
//Now the object is generic, the cube has annoyed us a little bit, or not?
obj_type board,ball,pad_alongX,pad_alongY;
BALL ball1;//,ball2,ball3;
ball1.bx = 0;
ball1.by = 0;
ball1.bvx = 1.0;
ball1.bvy = 1.0;
ball1.radius = 5.0;
答案 0 :(得分:2)
由于代码在函数内发生时有效,我假设它出现在任何函数之外。
ball1.XXX = YYY;
行都是赋值语句,这些只能在函数中出现。
如果要使用某组值初始化ball1
对象,可以这样做:
BALL ball1 = { 0, 0, 1.0, 1.0, 5.0 };
或者,如果您的编译器支持它:
BALL ball1 = { .bx = 0, .by = 0, .bvx = 1.0, .bvy = 1.0, .radius = 5.0 };
答案 1 :(得分:1)
您必须发布更多代码才能让某人确切地告诉您问题所在。很多时候这个错误是由于某些语法错误导致的,例如在类的末尾没有放置分号(可能是GLfloat?),而不是在您尝试创建或使用的对象前面指定命名空间。另外,请确保源文件中包含所有必需的包含。
您可以尝试修剪代码并编译以查看它何时成功,然后从该点开始向前工作。在这里,我将首先评论结构的所有GLfloat成员以及依赖于它们并编译的任何代码。继续修剪,直到找到问题文件为止。