Hi,
I want to shoot more than 1 bullet but I can not do that. How can I do that with my code ?
// ********************************************** void UpDate_Shoot(float X, float Y, float Z, float Shoot_Angle_Not_Locked, float Current_Time) { // For all of the Players for (int i = 0; i < MAX_PLAYERS; i ++) { // Have we shot ? if (Shoot) { // We've fired, so we create 1 bullet if (!Shoot_Bullet) Number_of_Bullets_Shot += 1; Shoot_Bullet = true; for (int ii = 0; ii < Number_of_Bullets_Shot; ii ++) { // If the shoot angle is not yet locked, we set it if (!Shoot_Angle_Locked) { // We set the Shoot Angle Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Shoot_Angle_Not_Locked = Shoot_Angle_Not_Locked; // The Shoot Angle has been locked, so we set it Shoot_Angle_Locked = true; // Current Time for moving the Bullet Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Time = Current_Time; // Inital Bullet Position on X Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_X = - X; // Inital Bullet Position on Y Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_Y = Y; // Inital Bullet Position on Z Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_Z = - Z; } // We save the current matrix glPushMatrix(); // Object Mouvement + Speed Deplacement_Object = (Deplacement_A / Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Time) * 12; // Current Bullet Position on X Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_X = Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_X - (Deplacement_Object * sin(Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Shoot_Angle_Not_Locked * Piover180)); // Current Bullet Position on Y Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_Y = 1.5f; // Current Bullet Position on Z Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_Z = Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_Z - (Deplacement_Object * cos(Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Shoot_Angle_Not_Locked * Piover180)); // We move the Bullet glTranslatef(Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_X, Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_Y, Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_Z); // We draw a Bullet (just for the example) glutSolidSphere(0.1f, 10, 10); // Collision Detection for the Bullet Collision_Detection_Object(Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_X, Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_Y, Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_Z, 0.1f); // The Bullet has hit something, so we stop it if (Number_Polygon_Collision_Object > -1) { Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Hit = true; Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Impact_Bullet_Position_X = Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_X; Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Impact_Bullet_Position_Y = Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_Y; Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Impact_Bullet_Position_Z = Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Current_Bullet_Position_Z; // After the Collision, the "Shoot" variable is set to 'false' // Shoot = false; // We set the Shoot Angle // Shoot_Angle = Shoot_Angle_Not_Locked; // The Shoot Angle has been locked, so we set it // Shoot_Angle_Locked = true; /* // Current Time for moving the Bullet Time = Current_Time; // Inital Bullet Position on X Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_X = - X; // Inital Bullet Position on Y Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_Y = 1.5f; // Inital Bullet Position on Z Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_Z = - Z; */ } // We load the saved matrix glPopMatrix(); } } else { // We set the Shoot Angle // Shoot_Angle = Shoot_Angle_Not_Locked; // Bullet Position on X // Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_X = - X; // Bullet Position on Y // Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_Y = Y; // Bullet Position on Z // Player_in_Game[i].Weapon_In_Game[0].Bullet[ii].Init_Bullet_Position_Z = - Z; } } }