Example #1
0
void userInput ( void )
{
	dbControlCameraUsingArrowKeys ( 0, g_fSpeed, g_fTurn );

	g_fOldCamAngleY = g_fCameraAngleY;
	g_fOldCamAngleX = g_fCameraAngleX;

	g_fCameraAngleY = dbWrapValue ( g_fCameraAngleY + dbMouseMoveX ( ) * 0.4f );
	g_fCameraAngleX = dbWrapValue ( g_fCameraAngleX + dbMouseMoveY ( ) * 0.4f );

	dbYRotateCamera ( dbCurveAngle ( g_fCameraAngleY, g_fOldCamAngleY, 24 ) );
	dbXRotateCamera ( dbCurveAngle ( g_fCameraAngleX, g_fOldCamAngleX, 24 ) );

	char* szKey = dbInKey ( );

	if ( strcmp ( szKey, "+" ) == 0 )
	{
		if ( g_fSpeed < 1000 )
			g_fSpeed = g_fSpeed + 0.01f;
	}

	if ( strcmp ( szKey, "-" ) == 0 )
	{
		if ( g_fSpeed > 0.02f )
			g_fSpeed = g_fSpeed - 0.01f;
	}
}
Example #2
0
	void CameraFreeView (int iID, float move, float ystep, float xturn, float yturn)
	{
		if (!camera.ACTIVE) return;
		// Tastatur Steuerung
		if (dbUpKey()==1)			{	camera.UPDATE=true;	dbMoveCamera(    iID, move);		}
		if (dbDownKey()==1)		{	camera.UPDATE=true;	dbMoveCamera(    iID, -move);									}
		if (dbLeftKey()==1)		{	camera.UPDATE=true;	dbYRotateCamera( iID, dbWrapValue(camera.b-yturn));	}
		if (dbRightKey()==1)		{	camera.UPDATE=true;	dbYRotateCamera( iID, dbWrapValue(camera.b+yturn));	}
		if (dbScanCode()==201)  {	camera.UPDATE=true;	dbXRotateCamera( iID, dbWrapValue(camera.a+xturn));	}
		if (dbScanCode()==209) 	{	camera.UPDATE=true;	dbXRotateCamera( iID, dbWrapValue(camera.a-xturn));	}
		if (dbShiftKey()==1) 	{	camera.UPDATE=true;	dbPositionCamera(iID, camera.x,camera.y+ystep,camera.z);}
		if (dbControlKey()==1) 	{	camera.UPDATE=true;	dbPositionCamera(iID, camera.x,camera.y-ystep,camera.z);}

		// Maus Steuerung
		if ( mouse.c == 2)
		{

		if ( mouse.mx != 0.0f)	{	camera.UPDATE=true;	dbYRotateCamera(iID,dbCurveAngle(dbWrapValue(camera.b+mouse.mx),camera.b,2.5f));	}
		if ( mouse.my != 0.0f)	{	camera.UPDATE=true;	dbXRotateCamera(iID,dbCurveAngle(dbWrapValue(camera.a+mouse.my),camera.a,2.5f));	}
		if ( mouse.mz != 0.0f)	{	camera.UPDATE=true;	dbMoveCamera(iID,mouse.mz);}
		}
	}
Example #3
0
	void CameraCylinder (int iID,float move, float ystep, float yturn)
	{
		if (!camera.ACTIVE) return;

		//Left
		if (dbLeftKey()==1)		
		{	
			camera.b=dbWrapValue(camera.b+yturn);
			float distXZ=dbSQRT(camera.x*camera.x+camera.z*camera.z);
			camera.x=dbNewXValue(camera.point.x,camera.b,-distXZ);
			camera.z=dbNewZValue(camera.point.z,camera.b,-distXZ);
			dbPositionCamera(iID,camera.x,camera.y,camera.z);
			dbPointCamera(iID,camera.point.x,camera.point.y,camera.point.z);
			camera.UPDATE=true;
		}
		//Right
		if (dbRightKey()==1)		
		{
			camera.b=dbWrapValue(camera.b-yturn);	
			float distXZ=dbSQRT(camera.x*camera.x+camera.z*camera.z);
			camera.x=dbNewXValue(camera.point.x,camera.b,-distXZ);
			camera.z=dbNewZValue(camera.point.z,camera.b,-distXZ);
			dbPositionCamera(iID,camera.x,camera.y,camera.z);
			dbPointCamera(iID,camera.point.x,camera.point.y,camera.point.z);
			camera.UPDATE=true;
		}
		//Shift
		if (dbShiftKey()==1)		
		{	
			camera.y += ystep;
			dbPositionCamera(iID,camera.x,camera.y,camera.z);
			dbPointCamera(iID,camera.point.x,camera.point.y,camera.point.z);
			camera.a=dbCameraAngleX(iID);
			camera.UPDATE=true;
		}
		//Strg
		if (dbControlKey()==1)	
		{	
			if (camera.y>=ystep)
			{
			camera.y -= ystep;
			dbPositionCamera(iID,camera.x,camera.y,camera.z);
			dbPointCamera(iID,camera.point.x,camera.point.y,camera.point.z);
			camera.a=dbCameraAngleX(iID);
			camera.UPDATE=true;
			}
		}
		//Up
		if (dbUpKey()==1)	
		{	
			dbMoveCamera(iID,move);
			camera.x=dbCameraPositionX(iID);
			camera.y=dbCameraPositionY(iID);
			camera.z=dbCameraPositionZ(iID);
			camera.UPDATE=true;
		}
		//Down
		if (dbDownKey()==1)
		{	
			dbMoveCamera(iID,-move);
			camera.x=dbCameraPositionX(iID);
			camera.y=dbCameraPositionY(iID);
			camera.z=dbCameraPositionZ(iID);
			camera.UPDATE=true;
		}
		//Mouse
		if (mouse.c==2)
		{
		if ( mouse.mx != 0.0f)	{	dbYRotateCamera(iID,dbCurveAngle(dbWrapValue(dbCameraAngleY(iID)+mouse.mx),dbCameraAngleY(iID),2.5f));	}
		if ( mouse.my != 0.0f)	{	dbXRotateCamera(iID,dbCurveAngle(dbWrapValue(dbCameraAngleX(iID)+mouse.my),dbCameraAngleX(iID),2.5f));	}
		if ( mouse.mz != 0.0f)	{	dbMoveCamera(iID,mouse.mz);}
		}	
	}