Exemple #1
0
void Mob::Unisti()
{
	Explosion* e=stanje->GetExplosion();
	e->Init(DajSredinu(),128,stanje);
	e->Setup(128,3000,200);
	for(int i=0; i<4; i++)
	{
		SmecePickup* c=(SmecePickup*)stanje->GetThing(new SmecePickup());
		c->Init(DajSredinu(),stanje);
	}
}
Exemple #2
0
void Mob::Unisti()
{
	Explozija* e=stanje->DodajExploziju();
	e->Init(DajSredinu(),128,stanje);
	e->Postavke(128,3000,200);
	for(int i=0; i<4; i++)
	{
		SmecePickup* c=(SmecePickup*)stanje->DodajStvar(new SmecePickup());
		c->Init(DajSredinu(),stanje);
	}
}
Exemple #3
0
void Mob::SpawnEfekt()
{
	Explosion* e=stanje->GetExplosion();
	e->Init(DajSredinu(),512,stanje);
	e->Setup(32,1000,100);
	e->SetColor(Vec3(0.25,0.5,1.0));
}
Exemple #4
0
void Mob::SpawnEfekt()
{
	Explozija* e=stanje->DodajExploziju();
	e->Init(DajSredinu(),512,stanje);
	e->Postavke(32,1000,100);
	e->PostaviBoju(Vec3(0.25,0.5,1.0));
}
void Igrac::UpdateFarove()
{
	Vec2 smjer;
	smjer.x=cos((rotacijaTorza+180)/180.0*3.14);
	smjer.y=sin((rotacijaTorza+180)/180.0*3.14);	
	smjer.Normaliziraj();	
	farovi->PostavkeKuta(smjer,2);

	Vec2 slot;
	slot.x=cos((rotacijaTorza)/180.0*3.14);
	slot.y=sin((rotacijaTorza)/180.0*3.14);
	slot.Mnozi(34);
	farovi->PromijeniPoz(DajSredinu()+slot);
}
Exemple #6
0
void SmecePickup::Pokupi(Igrac* igrac)
{
	sf::Sound* z = stanje->DodajZvuk(new sf::Sound(),
		stanje->DajMZ()->DajZvuk("Zvukovi/pickup.wav"));		
	z->Play();
	unisten=true;

	s->Unisti();
	Explozija* e=stanje->DodajExploziju();
	e->Init(DajSredinu(),128,stanje);
	e->Postavke(12,100,50);
	e->PostaviBoju(Vec3(1.0, 0.75, 0.5));	

	igrac->DodajHP(2);
}
Exemple #7
0
void Mob::Pucanje(Projektil* p, float deltaT)
{
	if(stanje->GetPlayer()->JeUnisten()==false)
	{
		if(punjenje<100)
			punjenje+=brzinaPunjenja*deltaT;
		if(punjenje>=100)
		{
			Vec2 smjerPucanja=stanje->GetPlayer()->DajSredinu()-poz-Vec2(dim.x/2, dim.y/2);
			float l=smjerPucanja.Duljina();
			if(l<domet)
			{
				smjerPucanja.Normaliziraj();
				Projektil* pr=stanje->GetProjectile(p);
				pr->Init(DajSredinu(),smjerPucanja,stanje,mapa,NEPRIJATELJ);				
			}	
			punjenje=0;
		}
	}
}
Exemple #8
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);
		}
	}
}