Esempio n. 1
0
void CBitmapUi::Draw()
{
	if(! IsEnabled())
	{
		return;
	}

	assert(m_pGameFramework != NULL);

	if(m_pGameFramework == NULL)
	{
		return;
	}

	assert(m_pUiDraw != NULL);

	if(m_pUiDraw == NULL)
	{
		return;
	}

	m_pUiDraw->PreRender();

	UpdateCurrentState();
	DrawCurrentScreenState();

	m_pUiDraw->PostRender();
}
void CAmericanShermanTank::ConstructL()
{
	iTextureObject = CTextureObject::New(GetCurrentPositionNormilized(), &CGame::Game->iImageStore->GetImage(EImageIdGroundUnitShermanTankDriving), AMERICAN_SHERMAN_TANK_WIDTH, AMERICAN_SHERMAN_TANK_HEIGHT, iZCor, 0, 1, 0, 1);

	//need to create bounding Hitbox
	iHitBox = CHitBox::New(&iCoordinates, AMERICAN_SHERMAN_TANK_NUMBER_OF_ORIGINIAL_HITBOX_POINTS, AMERICAN_SHERMAN_TANK_NUMBER_OF_ORIGINIAL_HITBOX_POINTS, &iPixelsPerMoveX, &iPixelsPerMoveY, &iObjectReflected, &iAngle, CAmericanShermanTank::CollisionPoints);

	SAnimationRequest lDefaultRequest;//not really used
	iAnimationPlayer = CAnimationPlayer::New(iTextureObject, lDefaultRequest);
	//smoke creator
	iSmokeCreator = CGeneralSmokeCreator::New(this, &iAngle, AMERICAN_SHERMAN_TANK_SMOKE_CREATOR_X, AMERICAN_SHERMAN_TANK_SMOKE_CREATOR_Y,  true, GROUND_UNIT_SMOKE_DEFAULT_COLOUR, GROUND_UNIT_SMOKE_STARTS_AFTER_HEALTH_LEFT, GROUND_UNIT_SMOKE_DEFAULT_SIZE, GROUND_UNIT_SMOKE_DEFAULT_FRAMES);
	//another smoke creator if tank is moving to create dust
	iDustCreator = CGeneralSmokeCreator::New(this, &iAngle, AMERICAN_AA_SHERMAN_TANK_DUST_CREATOR_X, AMERICAN_AA_SHERMAN_TANK_DUST_CREATOR_Y,  false, GROUND_UNIT_DUST_DEFAULT_COLOUR, GROUND_UNIT_DUST_STARTS_AFTER_HEALTH_LEFT, GROUND_UNIT_DUST_DEFAULT_SIZE, GROUND_UNIT_DUST_DEFAULT_FRAMES, GROUND_UNIT_DUST_DEFAULT_ANGLE_OFFSET, GROUND_UNIT_DUST_DEFAULT_SPEED, GROUND_UNIT_DUST_DEFAULT_X_EXPO,GROUND_UNIT_DUST_DEFAULT_Y_EXPO);
	//create GunWeapon
	iTankGun = CTankGun80mm::New(false, &iCoordinates, &iAngle, AMERICAN_SHERMAN_TANK_GUN_X_LOCATION, AMERICAN_SHERMAN_TANK_GUN_Y_LOCATION, &iObjectReflected, &iConflictSide);
	//create track sound for the tank
	iSoundObject = CSoundObject::New(ESoundFileId_Tank_Tracks, iHitBox);
		
	if(iObjectReflected)
	{
		iAngle = 0;
		iPixelsPerMoveX = iSpeed * CMath::GraphicsCosTable(iAngle);
		iTextureObject->ReflectOverYAxis();
		iCoordinates = iTextureObject->ReturnCurrentFixPoint();
	}
	UpdateCurrentState(EGroundUnitStateStanding);//resets the animation player
}
void CJapaneseRocketman::ConstructL()
{
	iTextureObject = CTextureObject::New(GetCurrentPositionNormilized(), &CGame::Game->iImageStore->GetImage(EImageIdGroundUnitJapaneseRocketmanStanding), JAPANESE_ROCKETMAN_WIDTH, JAPANESE_ROCKETMAN_HEIGHT, iZCor, 0, 1, 0, 1);

	//need to create bounding Hitbox
	iHitBox = CHitBox::New(&iCoordinates, BASIC_GROUND_UNIT_NUMBER_OF_ORIGINIAL_HITBOX_POINTS, BASIC_GROUND_UNIT_NUMBER_OF_PROJECTED_HITBOX_POINTS, &iPixelsPerMoveX, &iPixelsPerMoveY, &iObjectReflected, &iAngle, CJapaneseRocketman::CollisionPoints);

	//create GunWeapon
	iGrendaeLauncher = CGrenadeLauncher::New(false, &iCoordinates, &iAngle, JAPANESE_ROCKETMAN_GRENADE_LAUNCHER_X_LOCATION, JAPANESE_ROCKETMAN_GRENADE_LAUNCHER_Y_LOCATION, &iObjectReflected, &iConflictSide);

	//Animation Player
	SAnimationRequest lDefaultRequest;//not really used
	iAnimationPlayer = CAnimationPlayer::New(iTextureObject, lDefaultRequest);
	UpdateCurrentState(EGroundUnitStateStanding);//resets the animation player

	if(iObjectReflected)
	{
		iAngle = 0;
		iPixelsPerMoveX = iSpeed * CMath::GraphicsCosTable(iAngle);
		iTextureObject->ReflectOverYAxis();
		iCoordinates = iTextureObject->ReturnCurrentFixPoint();
	}
	iSoundObject = CSoundObject::New(ESoundFileId_Male_Painful, GetHitBox());
}