I
isma
Здравствуйте. Хочу повторить игру Астероиды. Не получается "научить" объект стрелять(стреляет криво, пули летят словно они привязаны к кораблю).
Инициализация opengl - уроки NeHe.
Помогите правильно написать void Bullet::update()
class Object
{
public:
float pos_x, pos_y, pos_z;
float angle_1, angle_2;
float speed;
float max_speed;
float low_speed;
float delta_speed;
void update();
void Draw();
void set_position(float x, float y, float z);
void set_angle(float x, float y);
void set_speed(float x);
};
Object* player = new Object();
...
...
class Bullet
{
public:
float pos_x, pos_y, pos_z;
void update();
void render();
};
...
...
void Bullet::update()
{
pos_x += player->pos_x + 2 * cos(player->angle_1*3.14159/180) * sin(player->angle_2*3.14159/180)/50.0f;
pos_y += player->pos_y + 2 * sin(player->angle_1*3.14159/180) * sin(player->angle_2*3.14159/180)/50.0f;
pos_z += player->pos_z + 2 * cos(player->angle_2*3.14159/180.0)/50.0f;
}
Инициализация opengl - уроки NeHe.
Помогите правильно написать void Bullet::update()
class Object
{
public:
float pos_x, pos_y, pos_z;
float angle_1, angle_2;
float speed;
float max_speed;
float low_speed;
float delta_speed;
void update();
void Draw();
void set_position(float x, float y, float z);
void set_angle(float x, float y);
void set_speed(float x);
};
Object* player = new Object();
...
...
class Bullet
{
public:
float pos_x, pos_y, pos_z;
void update();
void render();
};
...
...
void Bullet::update()
{
pos_x += player->pos_x + 2 * cos(player->angle_1*3.14159/180) * sin(player->angle_2*3.14159/180)/50.0f;
pos_y += player->pos_y + 2 * sin(player->angle_1*3.14159/180) * sin(player->angle_2*3.14159/180)/50.0f;
pos_z += player->pos_z + 2 * cos(player->angle_2*3.14159/180.0)/50.0f;
}