示例#1
0
orxOBJECT* Powerup::spawnPointObj(int val){
	orxVECTOR tempVec;
	orxObject_GetPosition(powerup, &tempVec);

	//make a point object
	stringstream pointsText;
	pointsText<<"Points";
	//cout<<enemyName; //debug to find enemy's name for the ini's
	orxOBJECT* pts = orxObject_CreateFromConfig(pointsText.str().c_str());
	stringstream string;

	string<<val;

	orxObject_SetTextString(pts, string.str().c_str());
	orxObject_SetPosition(pts, &tempVec);

	orxVECTOR ptSpeed;
	ptSpeed.fY = -50;
	ptSpeed.fX = 0;
	ptSpeed.fZ = 0;
	orxObject_SetSpeed(pts, &ptSpeed);
	//end point object

	orxCOLOR white;
	orxVECTOR w = {255,255,255};
	white.vRGB = w;
	white.fAlpha = 1;
	orxObject_SetColor(pts, &white);

	return pts;
}
示例#2
0
Powerup::Powerup(powerup_type t, int v, orxVECTOR pos, orxVECTOR speed){
	type=t;
	value=v;
	position=pos;
	
	switch(t){
	case WEAPON_UNLOCK:
		powerup=orxObject_CreateFromConfig( "WeaponUnlock" );
		break;

	case CRYSTAL:
		powerup=orxObject_CreateFromConfig( "Crystal" );
		break;
	default:
		powerup=orxObject_CreateFromConfig( "Powerup" );
		break;
	}

	//The following is for getting this object through collisions
	ObjectInfo *powerupObj= new ObjectInfo();
	powerupObj->type=POWERUP;
	powerupObj->object=this;
	orxObject_SetUserData(powerup,powerupObj);

	orxObject_SetPosition(powerup,&pos);
	orxObject_SetSpeed(powerup, &speed);
}
示例#3
0
static orxSTATUS orxFASTCALL Run()
{
  orxSTATUS eResult = orxSTATUS_SUCCESS;
  orxVECTOR vMousePos, vGravity;

  /* Updates generator's status */
  orxObject_Enable(spstGenerator, orxInput_IsActive("Spawn"));

  /* Gets mouse position in world space */
  if(orxRender_GetWorldPosition(orxMouse_GetPosition(&vMousePos), orxNULL, &vMousePos))
  {
    orxVECTOR vGeneratorPos;

    /* Gets generator position */
    orxObject_GetPosition(spstGenerator, &vGeneratorPos);

    /* Keeps generator's Z coord */
    vMousePos.fZ = vGeneratorPos.fZ;

    /* Updates generator's position */
    orxObject_SetPosition(spstGenerator, &vMousePos);
  }

  /* Gets gravity vector from input */
  orxVector_Set(&vGravity, orxInput_GetValue("GravityX"), -orxInput_GetValue("GravityY"), orxFLOAT_0);

  /* Significant enough? */
  if(orxVector_GetSquareSize(&vGravity) > orx2F(0.5f))
  {
    static orxVECTOR svSmoothedGravity =
    {
      orx2F(0.0f), orx2F(-1.0f), orx2F(0.0f)
    };

    /* Gets smoothed gravity from new value (low-pass filter) */
    orxVector_Lerp(&svSmoothedGravity, &svSmoothedGravity, &vGravity, orx2F(0.05f));

    /* Updates camera rotation */
    orxCamera_SetRotation(orxViewport_GetCamera(spstViewport), orxMATH_KF_PI_BY_2 + orxVector_FromCartesianToSpherical(&vGravity, &svSmoothedGravity)->fTheta);
  }

  // Is quit action active?
  if(orxInput_IsActive("Quit"))
  {
    // Logs
    orxLOG("Quit action triggered, exiting!");

    // Sets return value to orxSTATUS_FAILURE, meaning we want to exit
    eResult = orxSTATUS_FAILURE;
  }

  return eResult;
}
示例#4
0
Powerup::Powerup(){
	type=HEALTH;
	value=1;

	powerup=orxObject_CreateFromConfig( "Powerup" );

	//The following is for getting this object through collisions
	ObjectInfo *powerupObj= new ObjectInfo();
	powerupObj->type=POWERUP;
	powerupObj->object=this;
	orxObject_SetUserData(powerup,powerupObj);

	orxVECTOR pos={0,0,0};
	orxVECTOR speed={0,15,0};
	orxObject_SetPosition(powerup,&pos);
	orxObject_SetSpeed(powerup, &speed);
}
orxSTATUS orxFASTCALL Run()
{
  orxVECTOR mousePos;
  orxVECTOR mouseInWorld;

  // Get the mouse position on screen
  orxMouse_GetPosition(&mousePos);

  // Get the mouse position in the game world,
  // note that the mouse might not be in our game's window
  orxVECTOR * inWindow = orxRender_GetWorldPosition(&mousePos, viewport, &mouseInWorld);
  if(inWindow) {
    mouseInWorld.fZ = -0.1;
  } else {
    mouseInWorld.fZ = -2; // Out of camera frustum, so the light_bulb is hidden
  }
  orxObject_SetPosition(light_bulb, &mouseInWorld);

  return orxSTATUS_SUCCESS;
}
示例#6
0
FFCheckBox::FFCheckBox(FFBaseUiScene* parent, FFVector3& position, orxCHAR* name, 
	CHECKCHANGE oncheckchange)
	:FFBaseControl(parent,position,name)
{
	_OnCheckChange = oncheckchange != NULL ? oncheckchange : NULL;
	_state = CHB_NORMAL;
	_mainObject = orxObject_CreateFromConfig(CHECKBOX_SECTION);
	if(_mainObject)
	{
		orxObject_SetPosition(_mainObject,_position);
		for(orxOBJECT* obj = orxObject_GetOwnedChild(_mainObject); obj != orxNULL; obj = orxObject_GetOwnedSibling(obj))
		{
			const orxSTRING name = orxObject_GetName(obj);
			if(!orxString_Compare(name,CHECKBOX_CAPTION_SECTION))
			{
				_captionObject = obj;
				orxObject_SetTextString(_captionObject,_caption);
			}
		}
	}

}
示例#7
0
文件: 05_Viewport.c 项目: orx/orx
/** Update callback
 */
void orxFASTCALL Update(const orxCLOCK_INFO *_pstClockInfo, void *_pstContext)
{
  orxVECTOR vPos, vSoldierPos;
  orxCAMERA *pstCamera;
  orxFLOAT  fWidth, fHeight, fX, fY;

  /* *** CAMERA CONTROLS *** */

  /* Gets first viewport camera */
  pstCamera = orxViewport_GetCamera(pstViewport);

  /* Camera rotate left? */
  if(orxInput_IsActive("CameraRotateLeft"))
  {
    /* Rotates camera CCW */
    orxCamera_SetRotation(pstCamera, orxCamera_GetRotation(pstCamera) + orx2F(-4.0f) * _pstClockInfo->fDT);
  }
  /* Camera rotate right? */
  if(orxInput_IsActive("CameraRotateRight"))
  {
    /* Rotates camera CW */
    orxCamera_SetRotation(pstCamera, orxCamera_GetRotation(pstCamera) + orx2F(4.0f) * _pstClockInfo->fDT);
  }

  /* Camera zoom in? */
  if(orxInput_IsActive("CameraZoomIn"))
  {
    /* Camera zoom in */
    orxCamera_SetZoom(pstCamera, orxCamera_GetZoom(pstCamera) * orx2F(1.02f));
  }
  /* Camera zoom out? */
  if(orxInput_IsActive("CameraZoomOut"))
  {
    /* Camera zoom out */
    orxCamera_SetZoom(pstCamera, orxCamera_GetZoom(pstCamera) * orx2F(0.98f));
  }

  /* Gets camera position */
  orxCamera_GetPosition(pstCamera, &vPos);

  /* Camera right? */
  if(orxInput_IsActive("CameraRight"))
  {
    /* Updates position */
    vPos.fX += orx2F(500) * _pstClockInfo->fDT;
  }
  /* Camera left? */
  if(orxInput_IsActive("CameraLeft"))
  {
    /* Updates position */
    vPos.fX -= orx2F(500) * _pstClockInfo->fDT;
  }
  /* Camera down? */
  if(orxInput_IsActive("CameraDown"))
  {
    /* Updates position */
    vPos.fY += orx2F(500) * _pstClockInfo->fDT;
  }
  /* Camera up? */
  if(orxInput_IsActive("CameraUp"))
  {
    /* Updates position */
    vPos.fY -= orx2F(500) * _pstClockInfo->fDT;
  }

  /* Updates camera position */
  orxCamera_SetPosition(pstCamera, &vPos);


  /* *** VIEWPORT CONTROLS *** */

  /* Gets viewport size */
  orxViewport_GetRelativeSize(pstViewport, &fWidth, &fHeight);

  /* Viewport scale up? */
  if(orxInput_IsActive("ViewportScaleUp"))
  {
    /* Scales viewport up */
    fWidth *= orx2F(1.02f);
    fHeight*= orx2F(1.02f);
  }
  /* Viewport scale down? */
  if(orxInput_IsActive("ViewportScaleDown"))
  {
    /* Scales viewport down */
    fWidth *= orx2F(0.98f);
    fHeight*= orx2F(0.98f);
  }

  /* Updates viewport size */
  orxViewport_SetRelativeSize(pstViewport, fWidth, fHeight);

  /* Gets viewport position */
  orxViewport_GetPosition(pstViewport, &fX, &fY);

  /* Viewport right? */
  if(orxInput_IsActive("ViewportRight"))
  {
    /* Updates position */
    fX += orx2F(500) * _pstClockInfo->fDT;
  }
  /* Viewport left? */
  if(orxInput_IsActive("ViewportLeft"))
  {
    /* Updates position */
    fX -= orx2F(500) * _pstClockInfo->fDT;
  }
  /* Viewport down? */
  if(orxInput_IsActive("ViewportDown"))
  {
    /* Updates position */
    fY += orx2F(500) * _pstClockInfo->fDT;
  }
  /* Viewport up? */
  if(orxInput_IsActive("ViewportUp"))
  {
    /* Updates position */
    fY -= orx2F(500) * _pstClockInfo->fDT;
  }

  /* Updates viewport position */
  orxViewport_SetPosition(pstViewport, fX, fY);

  /* *** SOLDIER MOVE UPDATE *** */

  /* Gets mouse world position? */
  orxRender_GetWorldPosition(orxMouse_GetPosition(&vPos), orxNULL, &vPos);

  /* Gets object current position */
  orxObject_GetWorldPosition(pstSoldier, &vSoldierPos);

  /* Keeps Z value */
  vPos.fZ = vSoldierPos.fZ;

  /* Moves the soldier under the cursor */
  orxObject_SetPosition(pstSoldier, &vPos);
}