2010-10-13 6 views
0
BALL ball1;//,ball2,ball3; 
ball1.bx = 0; 
ball1.by = 0; 
ball1.bvx = 1.0; 
ball1.bvy = 1.0; 
ball1.radius = 5.0; 

BALL est un struct dans un fichier separate.h où je l'ai utilisé le code suivant:constructeur prévu, destructor ou conversion de type avant jeton

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; 

Mais dans le fichier principal que je Je reçois l'erreur ci-dessus!

Le code dans le fichier principal est:

#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

vous marquer votre question comme C mais votre message d'erreur est définitivement C++. Donc, une première chose serait d'utiliser le bon compilateur pour votre code (ou pour changer de balises). Deuxièmement, cela n'a aucun sens d'être ce que vous nous lissez ce code et de donner un message d'erreur, mais ne nous dites pas dans quelle ligne il se produit. Et puis, peut-être juste nous donner vos paramètres de plate-forme (OS, compilateur, options du compilateur). –

Répondre

1

Vous devez poster plus de code pour que quelqu'un pour vous dire exactement où se trouve le problème. Plusieurs fois cette erreur est due à une erreur de syntaxe comme ne pas mettre un point-virgule à la fin d'une classe (éventuellement GLfloat?), À ne pas spécifier un espace de noms devant un objet que vous essayez de créer ou d'utiliser. Assurez-vous également d'inclure tous les éléments nécessaires dans votre fichier source.

Vous pouvez essayer de supprimer le code et de compiler pour voir quand il a réussi, puis revenir en arrière à partir de ce point. Ici, je commencerais par commenter tous les membres GLfloat de la structure et tout code qui repose sur eux et compiler. Continuez à élaguer jusqu'à ce que vous ayez défini le problème.

+0

Où obj_type est-il déclaré et défini? –

2

Comme le code serait valide s'il se produisait dans une fonction, je suppose qu'il se produit en dehors de toute fonction. Les lignes ball1.XXX = YYY; sont toutes des instructions d'affectation et celles-ci ne peuvent se produire que dans une fonction.

Si vous voulez initialiser l'objet ball1 avec un certain ensemble de valeurs, vous pouvez le faire comme ceci:

BALL ball1 = { 0, 0, 1.0, 1.0, 5.0 }; 

ou, si votre compilateur supporte:

BALL ball1 = { .bx = 0, .by = 0, .bvx = 1.0, .bvy = 1.0, .radius = 5.0 };