Exemple #1
0
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);//иначе скрываем еЄ
}
Exemple #2
0
 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 );
}
Exemple #8
0
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);
}
Exemple #9
0
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;
}
Exemple #11
0
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 ( );
	}
}