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; }
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); } } }