void Rocket::Draw(int terrain)//манипул¤ции над //ракетой: вычисление и установка местаположени¤ //и т.д. { const float rocketSpeed = 1.1;//скрость перемещени¤ //ракеты const int RockToLive = 3000; if (alive) { //если ракета активизирована, //то показываем еЄ и dbShowObject(num);// производим манипул¤ции над ней dbMoveObject(num, rocketSpeed); Xpos = dbObjectPositionX(num); Ypos = dbObjectPositionY(num); Zpos = dbObjectPositionZ(num); float ground = dbGetTerrainGroundHeight(terrain, Xpos,// переменна¤, хран¤ща¤ высоту Zpos);// поверхности ландшафта if (ground >= Ypos) { // произошло столкновение с поверхностью Die(); } dbPositionObject(num, Xpos,// перемещаем ракету Ypos, Zpos); if ((GetTickCount() - start_time) > RockToLive) Die(); } else dbHideObject(num);//иначе скрываем еЄ }
void M4::positionWeapon() { //positions the m4 at a fps point of view if(noClip == false) { dbPositionObject(obj,dbCameraPositionX(), dbCameraPositionY()-10,dbCameraPositionZ()); dbRotateObject(obj,-dbCameraAngleX(), dbCameraAngleY()-180,dbCameraAngleZ()); dbMoveObject(obj, -18); dbMoveObjectRight(obj, -7); } }
void Rocket::Pos(float x, float y, float z, float deg)//фунци¤ позиционировани¤ объекта-ракеты { Xpos = x; Ypos = y; Zpos = z; Ydeg = deg; dbPositionObject(num, Xpos, Ypos, Zpos); //позиционирование в мировых координатах dbMoveObject(num, 2);//относительное смещение - dbMoveObjectRight(num, 2);//позиционирование dbMoveObjectUp(num, 2.5);//в локальных координатах dbYRotateObject(num, Ydeg); }