Exemple #1
0
void Mob::Update(float deltaT)
{
	akceleracija=1;

	Vec2 smjer;
	smjer=stanje->GetPlayer()->DajSredinu()-poz-Vec2(dim.x/2, dim.y/2);
	smjer.Normaliziraj();

	rotacija=atan2(smjer.y,smjer.x)*180/3.14 + 90;

	Vec2 moment;
	moment.x=cos((rotacija-90)/180.0*3.14)*akceleracija;
	moment.y=sin((rotacija-90)/180.0*3.14)*akceleracija;	

	poz.y+=moment.y*brzina*deltaT;
	if(ProvjeraSudara())
		poz.y-=moment.y*brzina*deltaT;
	poz.x+=moment.x*brzina*deltaT;
	if(ProvjeraSudara())
		poz.x-=moment.x*brzina*deltaT;

	SudarProjektila();	

	if(hp<=0)
		unisten=true;

	akceleracija=0;
}
Exemple #2
0
void SmecePickup::Update(float deltaT)
{
	Stvar::Update(deltaT);		
	
	if(brzina>0.0)
	{
		s->PromijeniPoz(DajSredinu());
		if(cesticaTimer>=1.0)
		{
			SmeceCestica* c=(SmeceCestica*)stanje->DodajCesticu(new SmeceCestica());
			c->Init(DajPoz(),stanje);		
			cesticaTimer=0.0;
		}
		else
			cesticaTimer+=deltaT*10;

		poz.y+=smjer.y*brzina*deltaT;
		if(ProvjeraSudara()==true)
		{
			poz.y-=smjer.y*brzina*deltaT;
			smjer.y=-smjer.y;
		}
		poz.x+=smjer.x*brzina*deltaT;
		if(ProvjeraSudara()==true)
		{
			poz.x-=smjer.x*brzina*deltaT;
			smjer.x=-smjer.x;
		}
		brzina-=100*deltaT;
	}
	else
	{
		brzina=0.0;
	}

	
}
void Igrac::Update(float deltaT, Vec2 mis)
{
	if(unisten==false)
	{
		Vec2 moment;
		moment.x=cos((rotacija-90)/180.0*3.14)*akceleracija;
		moment.y=sin((rotacija-90)/180.0*3.14)*akceleracija;	

		poz.y+=moment.y*brzina*deltaT;
		if(ProvjeraSudara())
			poz.y-=moment.y*brzina*deltaT;
		poz.x+=moment.x*brzina*deltaT;
		if(ProvjeraSudara())
			poz.x-=moment.x*brzina*deltaT;
	
		if(moment.x!=0 || moment.y!=0)
		{
			if(akceleracija>0)
				pomak_tracnica+=deltaT;
			else
				pomak_tracnica-=deltaT;
			if(pomak_tracnica>1.0)
				pomak_tracnica=0.0;
			if(pomak_tracnica<0.0)
				pomak_tracnica=1.0;
		}
		akceleracija=0;

		SudarProjektila();

		rotacijaTorza=atan2((mis.y-poz.y-dim.y/2),(mis.x-poz.x-dim.x/2))*180/3.14;

		for(int i=0; i<4; i++)
		{
			if(unisten==false)
				if(oruzjeSlot[i]==true && oruzja[i]!=NULL)
					oruzja[i]->Update(deltaT);
		}

		UpdateFarove();

		if(puca==false)
		{
			if(energija<100.0)
				energija+=10*deltaT;
			if(energija>100.0)
				energija=100.0;		
		}
		else
			puca=false;

		if(hp<=0.0)
		{
			hp=0.0;
			unisten=true;
			
			Explosion* e=stanje->GetExplosion();
			e->Init(DajSredinu(),512,stanje);
			e->Setup(256,3000,200);

			sf::Sound* z = stanje->GetSound(new sf::Sound(),
				stanje->GetSM()->DajZvuk("../data/Sounds/explosion1.wav"));		
            z->play();

			gameOverPoruka=new Poruka();
			gameOverPoruka->Init("HQ", "All units lost, mission Failed.", 4, "../data/Sounds/blip.wav", stanje);
			stanje->GetMessage(gameOverPoruka);	

			farovi->Postavke(Vec3(0,0,0), 0);
		}
	}
}