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 Asteroid::driftRight() { if(dRight == true && dLeft == false) { float x = dbObjectPositionX(obj); float y = dbObjectPositionY(obj); float z = dbObjectPositionZ(obj); dbPositionObject(obj, x + DRIFT_SPEED_R, y, z ); dLeft = false; } }
void Asteroid::reset() { posX = dbObjectPositionX(obj); posY = dbObjectPositionY(obj); posZ = dbObjectPositionZ(obj); if(posY <= -22 || posX <= -25 || posX >= 25 || posY >= 35) { totalSpeed = moveSpeed + GAME_SPEED; dbPositionObject ( obj, dbRnd(47) -25 , dbRnd(10) +25 , 0); } return; }
//TINY_ROID Tiny_Roid::Tiny_Roid() { obj = findFreeObject(100); dbCloneObject(obj, TINY_OBJ); moveSpeed = TINY_STROID_SPEED; totalSpeed = moveSpeed + GAME_SPEED; maxMoveSpeed = TINY_STROID_MAX_SPEED; size = 1; health = 5; dmg = .5; SC_SetupObject(obj, 1, 2); //dbSetObjectAmbient ( ASTERIOD5, 0 ); SC_UpdateObject(obj); //updates the map's collision box dbRotateObject (obj, dbRnd(360) - 360, dbRnd(360) - 360, dbRnd(360) - 360 ); dbPositionObject(obj, -30, 4,0); dbSetObjectCollisionToPolygons(obj ); }
//MEDIUM_ROID Medium_Roid::Medium_Roid() { obj = findFreeObject(100); dbCloneObject(obj, MEDIUM_OBJ); moveSpeed = MEDIUM_STROID_SPEED; totalSpeed = moveSpeed + GAME_SPEED; maxMoveSpeed = MEDIUM_STROID_MAX_SPEED; size = 3; health = 10; dmg = 1.0; SC_SetupObject(obj, 1, 2); //dbSetObjectAmbient ( ASTERIOD3, 0 ); SC_UpdateObject(obj); //updates the map's collision box dbRotateObject (obj, dbRnd(360) - 360, dbRnd(360) - 360, dbRnd(360) - 360 ); dbPositionObject(obj, -30, 4,0); dbSetObjectCollisionToPolygons(obj ); }
//LARGE_ROID Large_Roid::Large_Roid() { obj = findFreeObject(100); dbCloneObject(obj, LARGE_OBJ); moveSpeed = LARGE_STROID_SPEED; totalSpeed = moveSpeed + GAME_SPEED; maxMoveSpeed = LARGE_STROID_MAX_SPEED; size = 5; health = 20; dmg = 2.0; SC_SetupObject(obj, 1, 2); //dbSetObjectAmbient ( ASTERIOD1, 0 ); SC_UpdateObject(obj); //updates the map's collision box dbRotateObject (obj, dbRnd(360) - 360, dbRnd(360) - 360, dbRnd(360) - 360 ); dbPositionObject(obj, 0, -30,0); dbSetObjectCollisionToPolygons(obj ); }
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); }
Rocket::Rocket(int i, char *filename) { num = i; alive = false;//ракета деактивирована burn = false; Xpos = 0; Ypos = 0; Zpos = 0; Ydeg = 0; start_time = GetTickCount(); if (num == myrocket)//перва¤ ракета { dbLoadObject(filename,num);//загружаем еЄ из файла, } else //так как все ракеты одинаковы, то... { dbCloneObject(num, myrocket); //...остальные копируем с первой } dbHideObject(num);//скрываем dbPositionObject(num, Xpos, Ypos, Zpos); dbYRotateObject(num, Ydeg); }
void Asteroid::gravity() { dbPositionObject ( obj, dbObjectPositionX(obj), dbObjectPositionY(obj)+ totalSpeed, dbObjectPositionZ(obj)); return; }
void DarkSDK ( void ) { // entry point for the application //dbSetDir ( "media\\" ); // initial application set up dbSyncOn ( ); // turn sync on dbSyncRate ( 0 ); // set sync rate to 60 dbBackdropOn ( ); // switch backdrop off - no need to clear screen dbSetCameraRange ( 0.5f, 30000 ); // set the camera range PhysStart ( ); // floor dbMakeObjectBox ( 1, 100, 1, 100 ); dbPositionObject ( 1, 0, 0, 0 ); dbColorObject ( 1, dbRgb ( 100, 0, 0 ) ); PhysCreateStaticRigidBodyMesh ( 1 ); /* dbLoadObject ( "bin1.x", 2 ); //dbPositionObject ( 2, 0, 1 + dbObjectCollisionCenterY ( 2 ), 0 ); dbPositionObject ( 2, 0, 0, 0 ); //dbOffsetLimb ( 2, 0, dbObjectCollisionCenterX ( 2 ) * -1, dbObjectCollisionCenterY ( 2 ) * -1, dbObjectCollisionCenterZ ( 2 ) * -1 ); PhysCreateRigidBodyBox ( 2 ); dbMakeObjectCube ( 3, 5 ); dbPositionObject ( 3, 20, 10, 0 ); PhysCreateRigidBodyBox ( 3 ); */ const NxReal height = 0.3; const NxReal width = 2; const NxReal length = 4; //dbMakeObjectBox ( 5, length*0.65, height*0.85, width*0.65 ); dbMakeObjectBox ( 5, 3.5,3,4); dbPositionObject ( 5, 3.5,4,0 ); dbMakeObjectSphere ( 10, 0.8 ); dbMakeObjectSphere ( 11, 0.8 ); dbMakeObjectSphere ( 12, 0.8 ); dbMakeObjectSphere ( 13, 0.8 ); CreateTruck ( ); //dbLoadObject ( "corsa.x", 5 ); //dbPositionObject ( 5, 0, 1, 0 ); /* InitCar ( ); car = CreateCar(NxVec3(0,5,0)); */ dbPositionCamera ( 0, 20, -30 ); // PhysCreateRigidBodyBox ( 10 ); // loop round until escape key is pressed while ( LoopSDK ( ) ) { if ( dbEscapeKey ( ) ) return; if ( dbSpaceKey ( ) ) PhysSetVelocity ( 10, 0, 20, 0 ); UpdateTruck ( ); //if ( dbSpaceKey ( ) ) // PhysSetVelocity ( 3, -20, 0, 0 ); /* { bool bKey = false; if ( dbKeyState ( 17 ) == 1 ) { gMotorForce = gMaxMotorPower; bKey = true; } if ( dbKeyState ( 31 ) == 1 ) { gMotorForce = -gMaxMotorPower; bKey = true; } if ( dbKeyState ( 32 ) ) { if (gSteeringValue > (-1.0f + gSteeringDelta)) gSteeringValue -= gSteeringDelta; bKey = true; } if ( dbKeyState ( 30 ) ) { if (gSteeringValue < (1.0f - gSteeringDelta)) gSteeringValue += gSteeringDelta; bKey = true; } if ( !bKey ) { gMotorForce = 0.0f; gSteeringValue = 0.0f; } } TickCar ( ); */ // show the frame rate and handle user input showFPS ( ); userInput ( ); PhysRun ( ); PhysUpdate ( ); // render everything dbSync ( ); } }