SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR. Primjena tehnologije Microsoft XNA u izradi 2D igara

Size: px
Start display at page:

Download "SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR. Primjena tehnologije Microsoft XNA u izradi 2D igara"

Transcription

1 SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR Primjena tehnologije Microsoft XNA u izradi 2D igara Voditelj: Zagreb, travanj, 2011.

2 Sadržaj 1. Uvod Osnove rada u XNA tehnologiji Uvod u XNA okruženje Kreiranje projekta i osnovna struktura Izrada prvog programa - Hello World! Objekti i logika Sprite: uvod u pojam i primjenu Objekti i logika u igri Teksture i transformacije Radni prozor i orijentacija Rad s teksturama Transformacije Animacija Detekcije kolizije Uvod u detekciju kolizije Pravokutna i kružna detekcija kolizije Čestični sustavi Teorija čestičnih sustava Primjena čestičnih sustava Zaključak Literatura Sažetak...23

3 1. Uvod Svijet računalnih igara neopisivo je napredovao od svojih početaka. Godišnje se proda stotine milijuna igrica, zarada na kupovinu i pretplatu na igre mjeri se u milijardama kuna. Računalna industrija je jedna od najbrže razvijanih industrija, uz svakodnevne inovacije i ideje za budućnost. Proces razvoja računalnih igara zahtjevao je razvoj boljih arhitektura procesora, grafičkih kartica i sklopovske opreme, kako bi se omogućili novi sadržaji, bolje slike, nove dimenzije...nove virtualne stvarnosti. Ljudi su najbolji u trošenju najrjeđeg resursa vremena, a najviše uživaju u opuštanju i zabavi. Računalne igre postaju najbolji i najzastupljeniji sadržaj za zabavu, porastom korisnika donose profit koji potiče daljnji razvoj tehnologije. Unatoč tome, izrada igara zahtijeva razvoj računalne grafike, koju ne smijemo potcijeniti podređivanjem igrama. Računalna grafika je svuda oko nas, dok smo oko računala. Ovaj tekst, sve ikone i programi, svi podaci koje možemo vidjeti rezultati su razvoja grafike. Ona ima mnoge primjene u simulacijama, modeliranju sadržaja, zabavi, medicini, prometu, orijentiranju, bazama podataka... Igre su samo dio korištenja ljepote računalne grafike. U ovom seminaru obradit će se osnovni koncepti potrebni za izradu 2D računalne igre pomoću XNA tehnologije. Kroz poglavlja se izlažu principi i tehnike za programiranje računalne igre: postupno se prelazi iz osnova rada u XNA, upoznavanja s metodama i strukturama, u složene sustave primjenjivane pri izradama 2D igara. Uz izradu seminara, priložen je originalan kôd 2D igre Neverending Pew Pew, koju je implementirao autor. Djelovi koda iz igre priloženi su uz objašnjenja principa i tehnika, no postoje i pojednostavljeni primjeri koda izmišljeni za potrebe seminara. Slika 1.1 Izgled igre Neverending Pew Pew

4 2. Osnove rada u XNA tehnologiji 2.1 Uvod u XNA okruženje Microsoft XNA je skup alata nastao 2004., a objavljen je godine u Kaliforniji, SAD. Temelji se na Microsoftovom vremenskom okruženju, a služi za olakšavanje razvoja računalnih igara bez ponavljanja koda i jednostavno upravljanje resursima za bolju kvalitetu grafičkog i zvučnog sadržaja igre. Cilj XNA tehnologije je ujedinjavanje različitih aspekata stvaranja računalnih igara za Microsoft platforme u jedinstven sistem. Naziv XNA izvorno dolazi od Xbox New Architecture development Nova Xbox razvojna arhitektura, no nakon izlaska Xbox platforme 2005., autori su odlučili objaviti je pod imenom XNA nije akronim ( XNA is Not an Acronym ), ime za kojeg XNA jest akronim. U ovom seminaru koristit ću se najnovijim integriranim razvojnim okruženjem za izradu igara i aplikacija pomoću XNA tehnologije: XNA Game Studio 4. Game Studio sadrži opsežan skup predimplementiranih klasa i mehanizama predviđenih za izradu igara kako bi olakšao pisanje te minimizirao korisnikovu implementaciju istih. XNA okruženje (Framework) obuhvaća niske razine tehnoloških detalja u kodiranju igre poput kompatibilnosti koda za Xbox i druge platforme, omogućavajući programerima da se fokusiraju na sadržaj i doživljaj igranja. Integrirano je sa dodatnim alatima za stvaranje sadržaja, poput XACT - platforma za kreiranje audio sadržaja, te pruža podržku za 2D i 3D grafiku te omogućuje korištenje Xbox 360 kontrolera. 2.2 Kreiranje projekta i osnovna struktura Kako bismo stvorili novi projekt u kojem ćemo izraditi igru, nakon pokretanja programa Visual Studio odaberemo Projekt tipa ima predodređenu konstrukciju predviđenu za izradu igre ili grafičke aplikacije sa logičkom izmjenom parametara. U svojoj osnovi sastoji se od dvije klase: i, te referenci na biblioteke i direktorij sadržaja koji je inicijalno prazan, a služi za pohranu tekstura, modela, efekta te zvukova korištenih u projektu. se pokreće pozivom stvorene.exe datoteke, sastoji se isključivo od konstruktora za klasu te pokretanja iste. klasa ima vlastite definicije varijabli koje se mogu inicijalizirati u konstruktoru, no ne moraju, jer klasa može u bilo kojem djelu vlastite strukture koristiti tek tada instancirane varijable. Kôd klase nakon uključivanja korištenih knjižnica (libraryja), koje sadrže predefinirane strukture i klase, izgleda ovako: namespace WindowsGame1 public class Game1 : Microsoft.Xna.Framework.Game GraphicsDeviceManager graphics; SpriteBatch spritebatch;

5 public Game1() graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; protected override void Initialize() base.initialize(); protected override void LoadContent() spritebatch = new SpriteBatch(GraphicsDevice); protected override void UnloadContent() protected override void Update(GameTime gametime) if (Keyboard.GetState().IsKeyDown(Keys.Escape)) this.exit(); base.update(gametime); protected override void Draw(GameTime gametime) base.draw(gametime); je ključna riječ za međusobno povezivanje klasa i njihovih sadržaja bez dodatnog uključivanja zaglavlja ili datoteka kodova. Sve klase koje su povezane istim mogu se instancirati i koristiti međusobno. Kao što vidimo, klasa nasljeđuje sva svojstva predefinirane klase Microsoft.Xna.Framework.Game, te u svojim metodama koristi njezine. Pogledajmo osnovne djelove. Na početku imamo definicije dvaju klasa: klasa omogućava komunikaciju s grafičkom karticom, promjenu načina prikaza igre, rezolucije i složenijih parametara poput dubine crtanja 2D sadržaja, te klase koja omogućuje crtanje 2D sadržaja na ekran sa zajedničkim svojstvima. Slijedi konstruktor za klasu u kojem se poziva konstruktor i referencira se direktorij za pohranu materijalnog sadržaja igre. U nastavku imamo 5 metoda potrebnih za ciklički program kao što je računalna igra. Kada pokrećete neku prosječnu igru, ona počne s naslovnim ekranom, pa na izborniku imate ponuđen nastavak igre, počinjanje nove, promjene opcija i slično. Već za prikaz i funkcionalnost navedenog potrebno je inicijalizirati varijable poput širine ekrana, izgleda pozadine i podizbornika, pozadinske animacije i sličnog na početnu vrijednost to čini metoda metoda učitava sve teksture, zvukove, fontove i efekte korištene u tom procesu, a ovisno o implementaciji može učitati i sadržaj za igraći dio Trenutno se u našoj metodi samo instancira novi SpriteBatch. Recimo da izaberete pokretanje ranije započete igre. Mjesto, status i razvoj igre u trenutku u kojem ste spremili igru se treba učitati, a sadržaj s izbornika se može odbaciti kako bi se rasteretio grafički uređaj sustava, te se to čini metodom, no za pravilnu upotrebu te metode potrebno je dublje znanje i dodatne klase koje nećemo ovdje spominjati. Sama igra po završetku poziva metodu.

6 Ostaju nam dvije najbitnije metode koje skoro rade sav posao same. Metode i su sinkronizirane s otkucajem sata procesora i po postavkama XNA okruženja obje se pokušavaju pozvati 60 puta u sekundi. Ako se metoda, koja je bitnija, ne uspije izvršavati zbog zastoja u cjevovodu XNA sučelja, preskakat će se pozivi metode kako bi se mogao izvršavati pravilnom frekvencijom. Broj poziva po sekundi se može modificirati po želji, no 60 je sasvim dovoljno za običnu 2D arkadnu igricu kakvu radimo u seminaru. metoda služi za obradu sve logike i promjenu vrijednosti svih varijabli ovisno o implementiranim pasivnim događajima u igri ili radnjama izazvanim kretanjem te djelovanjem igrača. Naša metoda sadrži samo mogući izlaz pritiskom tipke te poziv koji ažurira sve promjene u logici svih ostalih komponenti igre, kojih trenutno nema. XNA Game Studio ima već implemetirane klase za obradu unosa sa strane korisnika, učitavanje stanja tipki na tipkovnici, stanja gumba na mišu te relativnog pomaka miša. Njihova upotreba je jednostavna i intuitivna, te se lako postiže funkcionalnost zadavanja naredbi i promjena varijabli pomoću tipkovnice i miša. Prvi red u metodi očitava trenutno stanje tipki na tipkovnici i u slučaju pritisnute tipke Escape poziva metodu za izlazak iz igre. metoda služi za crtanje svih modela, tekstura, te efekata u 2D ili 3D prostoru. Također sadrži poziv za metode svih komponenti igre, kako bi i one iscrtale vlastiti sadržaj. XNA okruženje sadrži korisnu klasu skupljač smeća, koja je odgovorna za brisanje svog sadržaja koji je dereferenciran, točnije: nema varijabli koje pokazuju na njega. Skupljač smeća se automatski poziva na kraju svakog poziva metode i briše sve nepotrebne podatke. Da skupljač ne postoji, radna memorija bi se kod pokretanja većih projekata sa složenim sadržajem brzo napunila i igra bi se zablokirala. Još jedna od pozadinskih stvari koje su implementirane kako korisnici ne bi brinuli o efikasnisti i zauzeću memorije. Nažalost, to ne sprječava početnike u XNA da napišu loše kodove koji uzaludno realociraju mnogo memorije. 2.3 Izrada prvog programa Hello World! Nakon uvoda u osnovnu strukturu klase, možemo napraviti svoj prvi program u Game projektu. Kada bismo radili Hello World program u projektu tipa Console Application konzolna aplikacija, dovoljno bi bilo nakon glavnog početka programa ( () ) napisati narebu za ispis teksta na konzolu na mjestu kursora: I tekst bi se ispisao na ekran. No u Game tipu projekta to nije tako jednostavno. Za ispis teksta na ekran, potreban nam je font kojim će tekst biti ispisan, a to radimo klikom na i izborom tipa, te unosom imena fonta preko kojeg ćemo ga učitavati iz sadržaja u varijablu: nazovimo ga. Potrebno je definirati varijablu tipa prije konstruktora Game klase unosom : Nakon toga, trebamo u sadržaj (Content) učitati stvoreni font, to činimo u metodi:

7 Recimo da želimo napisati Hello World bijelom bojom na crnom ekranu, točno na sredini ekrana. Prvo, trebamo postaviti ekran na crnu boju. To činimo u metodi pozivom Slijedeće, trebamo znati veličinu teksta i koordinate sredine ekrana. No, prije toga, pohranimo tekst Hello World u varijablu tipa string. Srećom, XNA pohranjuje veličinu ekrana u varijablu Window.ClientBounds. Instancirajmo varijablu tipa Vector2 u metodi ispod prethodne linije. Vector2 je varijabla vektorskog tipa koja sadrži 2 realna broja čija se vrijednost postavlja i dohvaća s imevektora.x i imevektora.y. Postavimo varijablu na vrijednost polovice veličine ekrana: Klasa prikladno sadrži metodu koja računa veličinu teksta, spremimo ju u novu varijablu tipa vektor2: Ako je lokacija za crtanje teksta sredina ekrana, ona je jednaka Preostaje nam samo ispisati tekst na ekranu. Nažalost, u Game projektu se ništa ne ispisuje, već je sve bazirano na crtanju. Kako bi nešto nacrtali na ekranu, moramo omogućiti SpriteBatchu da crta. To se postiže s metodama: Između njihovog poziva crtamo naš tekst na ekran sijedećom naredbom: Pogledajmo parametre prethodne naredbe. Ona crta zadanim na zadanoj na ekranu, određene, gdje smo iskoristili predefiniranu bijelu boju. Uz promjenu parametra Size u xaml kodu za na 70 zbog bolje vidljivosti, pokretanjem napisanog projekta dobivamo slijedeći prikaz: Slika 2.1 Izvršavanja Hello World programa Kao što smo vidjeli, za jednostavan ispis teksta na ekran potrebno je dodavanje par varijabli, fonta kao dodatka sadržaju i shvaćanje par novih koncepata, da ne spominjem poznavanje parametara metoda i struktura. Implementacijom funkcionalnog Hello World programa završavaju osnove rada u XNA.

8 3. Objekti i logika 3.1 Sprite : uvod u pojam i primjenu Računalna igra Neverending Pew Pew koja je napravljena za ovaj seminar prikazujući primjenu računalne tehnologije XNA u 2D grafici, temelji se na objektno orijentiranom programiranju u programskom jeziku C#, jednostavnoj logici međupovezanosti objekata, te prikazivanju sadržaja na temelju sprite sistema. Za potrebe daljnjeg objašnjenja primjenjenih sistema i logike, upoznajmo se detaljnije s definicijom pojma sprite. U računalnoj grafici, pojam sprite odnosi se na dvodimenzinalnu sliku ili animaciju koja je integrirana u veću scenu, iako se termin često krivo i ograničeno interpretira kao isključivo 2D grafika niske rezolucije, referirajući na drugi pojam umjetnost slikovnih elemenata (pixel art). Pojam je inicijalno korišten za opis grafičkih objekata koji su zasebno memorijski tretirani kao vizualni prikaz slike na ekranu, no upotreba se proširila na definiranje različitih načina preklapanja u prikazu grafičkih sadržaja. Izvorno, spriteovi su bili metoda integriranja nepovezanih slika kako bi sastavili dio slike na ekranu računala, poput stvaranja animiranog lika koji se može micati po ekranu bez promjene podataka koji definiraju sadržaj cjelokupne pozadine ekrana. Takvi spriteovi mogu biti implementirani u računalnim komponentama poput DMA impoziranjem vizualnih izvora (slika) ili programski posebnim metodama izrade prikaza. (prevođenja određenog prikaza slike u piksele na ekranu). Kako je tehnologija 3D računalne grafike izrazito napredovala kroz vrijeme, korištenje termina prikaz spriteovima u tom području znači opisivanje tehnike stapanja slika u cjelinu sadržaja trodimenzionalnih scena. Naziv Sprite potječe od engleske riječi za vilenjaka, smislio ga je krajem 1980-ih godina jedan od inženjera iz tvrtke Texas Instruments, koji su radili na kreiranju prvog procesora (Visual Display Processor) koji je omogućavao vizualni prikaz slika. Unatoč apsolutnoj nepovezanosti pojma vilenjak i primjene Sprite-a u računalnoj grafici, pojam je postao toliko poznat i čest da jednostavno referira na navedenu primjenu. Tijekom sedamdesetih godina 20. stoljeća, tvrtka Signetics je razvila prve video/grafičke procesore sposobne za generiranje separirajućeg prikaza slika. Videoračunalni sustav Atari, izveden i objavljen godine bio je sposoban za prikaz i micanje čak pet grafičkih objekata neovisno o pozadini. Paralelni razvoj računalnih igara pratio je mogućnosti računalnih komponenata. Nakon razvoja tehnologije kojom je omogućeno da centralna računalna jedinica (CPU) vanjskim čipovima daje instrukcije za dohvaćanje slika i integriranje na glavni ekran korištenjem kanala direktnog memorijskog pristupa (DMA), svojstva grafičkih prikaza sustava, poput brzine izvođenja, znatno su se poboljšala jer procesor više nije bio zauzet premještanjem podataka i mogao je izvršavati logički kôd za promjenu pozicije, boje tekstura, itd. Za ostatak razvoja računalne grafike do današnje kvalitete zaslužna je evolucija u izvedbi računalnih arhitektura i grafičkih kartica. U računalnim igrama, spriteovi se najčešće koriste za prikaz likova drugih pomičnih objekata. U općenitoj primjeni, spriteovi se koriste za prikaz strelice miša na ekranu,

9 pisanje ovih slova, ikone u programima ili na pozadini i mnoge druge suptilne svrhe koje svakodnevno prihvaćamo kao prikaz normalnog rada računala. Za korištenje spriteova izvan njihovog opsega, oni mogu biti skalirani ili kombinirani s drugima ili vlastitim kopijama, čime se postižu efekti čestičnih sustava, koji će biti obrađeni u 6. poglavlju. 3.2 Objekti i logika u igri U izradi svake igre, programeru mora biti poznat cilj igre, kao i tok događaja, kako bi mogao apstraktne pojmove i njihova svojstva implementirati u objekte koji će, kao jednostavne i smislene cjeline, simulirati zadano ponašanje i svojstva. U ovoj igri, naša logika počinje od, i to bi mogao biti prvi za implemetaciju. Igrač treba vidjeti neku prezentaciju sebe na ekranu (budući da je igra dvodimenzinonalna), poput teksture posebnog svemirskog broda, kako bi znali gdje se nalazi, kuda ide i što je u njegovoj neposrednoj okolini. Također, trebat ćemo implementirati kretanje i druge radnje koje bi igrač trebao kontrolirati kako bi ispunio cilj. Cilj igre je ostati živ što dulje izbjegavajući asteroide i neprijatelje, kao i njihove projektile ispaljene prema nama, naravno, uz mogućnost uništavanja neprijatelja i udaljavanja asteroida prije ostvarivanja prijetnje za igračev život. Odjednom, pojavili su se novi objekti:. Svi će imati zasebnu klasu koja će upravljati njihovim svojstvima, no pogledajmo prije toga što im je svima zajedničko: svi se moraju crtati na različitim pozicijama na ekranu te nezavisno ponašati, točnije: imati vlastitu teksturu za prikaz, varijable i metode za osnovno ponašanje, crtanje i promjenu položaja. Zaključak je da početno kodiranje mora biti usmjereno prema apstraktnom objektu, klasi, koja će sadržavati osnovna svojstva i biti korištena kao roditeljska klasa svih objekata prikazivanih na ekranu kroz igru, rezultirajući jednostavnošću i smanjenjem količine te ponavljanja koda. Osnovni izgled klase : class Sprite // varijable za prikaz na ekranu public Texture2D Texture; private Color tintcolor = Color.White; // varijable za animaciju protected List<Rectangle> frames = new List<Rectangle>(); private int framewidth = 0; private int frameheight = 0; private int currentframe; private float frametime = 0.1f; private float timeforcurrentframe = 0.0f; // varijable za transformacije protected Vector2 location = Vector2.Zero; protected Vector2 velocity = Vector2.Zero; protected float rotation = 0.0f; public float scale = 1.0f; // varijable za detekciju kolizije public int CollisionRadius = 0; public int BoundingXPadding = 0; public int BoundingYPadding = 0; // konstruktor public Sprite( Vector2 location,texture2d texture,rectangle initialframe,vector2 velocity)(...)

10 // ostale metode public bool IsBoxColliding(Rectangle OtherBox)(...) public bool IsCircleColliding(Vector2 othercenter, float otherradius)(...) public void AddFrame(Rectangle framerectangle)(...) public virtual void Update(GameTime gametime) float elapsed = (float)gametime.elapsedgametime.totalseconds; timeforcurrentframe += elapsed; if (timeforcurrentframe >= FrameTime) currentframe = (currentframe + 1) % (frames.count); timeforcurrentframe = 0.0f; location += (velocity * elapsed); public virtual void Draw(SpriteBatch spritebatch) // crtaj (sa Teksture, centar na ekranu, pravokutnik sa Teksture, sa rotacijom, // sa centrom rotacije u, skaliraj, sa dodatnim efektom, sa prostornom dubinom) spritebatch.draw(texture, Center, Source,tintColor,rotation, new Vector2(frameWidth / 2, frameheight / 2, scale, SpriteEffects.None, 0.0f); Objašnjenje koda: Klasa sadrži 4 podskupine varijabli podijeljene po svrsi: varijable za prikaz na ekranu, animaciju, transformacije i detekciju kolizije. Sadrži konstruktor koji prima 4 parametra za početnu definiciju svake instance klase: lokaciju, brzinu, teksturu na kojoj se nalazi slika i pravokutnik početnog okvira, kao dio teksture koji obuhvaća prikaz slike za taj. Slijede 2 metode: i koje služe za detekciju kolizije (kolizija je objašnjena u 6. poglavlju). Metoda u listu dodaje okvire kao niz slika koje će se prikazivati i izmjenjivati u određenom vremenskom razmaku. Moguće ostvarenje animacije pružaju varijable za animaciju i kôd u metodi, osim zadnjeg reda koji ažurira položaj Kao što vidimo u istoj metodi, XNA razvojno okruženje pruža korisnicima manipulaciju varijablama na temelju proteklog vremena odbrojavanog u različitim jedinicama, te se navedena svojstva koriste u proteklim sekundama ili milisekundama za npr. animaciju - izmjenu slika, odbrojavanje životnog vijeka čestica, sve translacije po ekranu i druge svrhe. Preostaje nam metoda koja uz sve prethodno izračunate parametre crta trenutni okvir za prikaz na trenutnoj lokaciji na ekranu, uz rotaciju i skaliranje po potrebi. Sada kad imamo implementiranu klasu, možemo se posvetiti specifičnim objektima. No, nakon kratkog razmatranja, zaključujemo da bi bilo dobro slijedeće napraviti klasu Projektili ( ), koja će upravljati ispaljenim projektilima sa strane igrača i neprijatelja. Navedeno radimo iz slijedećeg razloga: igrač i neprijatelji kao klase će sadržati vlastite, nezavisne instance klase, kako bi se omogućilo razlikovanje izvora projektila za pravilnu interakciju pri detekciji kolizije projektila i drugog objekta. Ukratko, nakon izgradnje Projektila, implementiramo klase Igrača i Neprijatelja, te dodamo korištenje Projektila u njih. Proširimo klasu na klasu za implementaciju čestičnih sustava.

11 Dodamo klasu Asteroidi i interakciju svih dosadašnjih klasa objedinimo u klasi Detekcija Kolizije ( ) koja određenim algoritmima detektira kolizije objekata, te reakcije prosljeđuje klasi Eksplozije ( ) koja je odgovorna za popratne vizualne efekte. Preostaju nam opcionalne klase za pozadinski ugođaj, bez kojeg bi se igra doimala pomalo ispraznom i linearno dosadnom. Spomenute klase su: Zvjezdano Polje ( ) za nasumične pozadinske piksele koji predstavljaju zvijezde u daljini, te klasa Upravljanje Zvukom ( ) čije se metode koriste u klasama Igrač, Neprijatelj, Detekcija Kolizije te Eksplozija, kako bi pustila prigodne zvukove tako da igrači igre steknu doživljaj napetosti i osjete povratnu vezu između njihovih akcija i igre. Nakon dovršetka svih pomoćnih klasa, razmatramo kako u igri prikazivati različite djelove igre, koji će različito izgledati i koristiti pomoćne klase na različite načine. Enumeracija (enum) je posebna vrsta podataka u kojoj ne postoje tipovi varijabli ili strukture, samo proizvoljna nabrojana imena, poput imena varijabli. Varijabla enumeracijskog tipa se može postaviti isključivo na jednu od nabrojenih imena u presjeku vremenskog trenutka. Primjenom Enumeracije odvajamo stadije igre u sljedeće cjeline: Naslovni ekran, Tijekom igre, Igrač mrtav, Igra gotova, Igra pauzirana. Pomoću naredbe višestrukog grananja u i metodi glavne klase, možemo iskodirati potrebe za prikaz i razvoj događaja u pojedinim stadijima igre. Izvorni kôd slijedi: enum GameStates TitleScreen, Playing, PlayerDead, GameOver, Paused ; Konačno, preostaje nam dodavanje posljednje metode u glavnu klasu, koja će se pozvati kada igra završi, tj. kad igrač izgubi sve živote. Ta metoda će resetirati stanje igre na Naslovni ekran, čime se ciklus igranja ponovno omogućuje. Time zatvaramo krug i popunjavamo zadnja mjesta u logici igre.

12 4. Teksture i transformacije U ovom poglavlju obradit ću osnove rada s prozorom izvršavanja projekta, dodavanje, učitavanje, osnovno i napredno korištenje tekstura, osnove transformacije tekstura, te kratke, ali korisne funkcije i algoritme za implemetaciju fizike, interpolacije i animacije. 4.1 Radni prozor i orijentacija Pri samom stvaranju projekta tipa veličina izvršnog prozora se postavlja na 800x600 piksela. Tu veličinu možemo modificirati po volji i u bilo kojem trenutku, iako bi bilo mudro činiti to u metodi i ne mijenjati tijekom izvođenja ukoliko su mnoge veličine i pozicije postavljene na konkretne brojeve neovisno o veličine prozora. Širinu i visinu prozora postavljamo slijedećim kodom: graphics.preferredbackbufferwidth = 1280; graphics.preferredbackbufferheight = 800; graphics.applychanges(); Kôd postavlja širinu na 1280, a visinu prozora na 800 piksela, te se u toj rezoluciji izvršava projekt ovog seminara. Primjetimo da je grafički uređaj, tj. varijablu graphics koja je instanca klase, potrebno ažurirati metodom kako bi ona primjenila promjene varijabli. Prozor možemo tretirati kao koordinatni sustav s točkom (0,0) u gornjem lijevom kutu, te duljinama poluosi X i Y koje odgovaraju veličini prozora. Unatoč tome što je naš prikaz ograničen na dio 1. kvadranta limitiranog koordinatnog sustava zrcaljenjog preko x osi, XNA će crtati i teksture na negativnim te lokacijama izvan granica ekrana. Budući da to nema nikakve praktične primjene, samo popratni efekt nepotrebnog usporavanja izvršavanja programa, bilo bi dobro imati metodu poput iz klase, koja provjerava nalazi li se zadana tekstura na ekranu; ako ne, nema potrebe za njenim crtanjem. (0,0) (PreferredBackBufferWidth,0) PrefferedBackBufferWidth PrefferedBackBufferHeight - širina prozora - visina prozora (0, PreferredBackBufferHeight) Slika 4.1 Prozor: koordinacija Slika 4.1 prikazuje koordinate rubnih točaka i orijentaciju veličina. Za kraj osnova radnog prozora, prikažimo kako se može mijenjati boja pozadine korištenjem neke od 142 predefiniranih boja ili instanciranjem vlastite na slijedeći način: Color imeboje = new Color(r, g, b, a);

13 Prethodni red stvara strukturu tipa boja, koja sadrži 4 vrijednosti u rasponu cijelih brojeva od 0 do 255 ili u rasponu realnih brojeva od 0 do 1 za količine crvene, zelene, plave boje te transparentnosti, tim redoslijedom. Raspon se automatski postavlja ovisno o poslanim vrijednostima te se skalira ovisno o tipu. Boju ekrana primijenimo na početku metode u klasi, kako bi se sve što crtamo poslije promjene boje pozadine i dalje vidjelo na ekranu. Pri stvaranju projekta, XNA postavlja boju zaslona na svijetlo-plavu, definiranu kao CornFlowerBlue. Izmjenom tog parametra primjenjujemo željenu boju na cijeli prozor. Kôd glasi: GraphicsDevice.Clear(Color.Black); Programski kôd poručuje grafičkom uređaju da sve piksele koje crta u prozoru,koji je prikaz izvršavanja projekta, postavi na zadanu boju. 4.2 Rad s teksturama XNA okruženje nema podršku za stvaranje tekstura, tako da sve teksture koje želimo prikazati tijekom igre, moramo dodati u sadržaj projekta. XNA se tijekom izvođenja ograničava na pristup datotekama koje su prethodno dodane u sadržaj. Datoteke dodajemo na slijedeći način: te klikom na željenu datoteku dodajemo ju sadržaju projekta. Sada možemo učitati teksturu iz sadržaja, no prije toga stvorimo varijablu tipa iznad konstruktora klase. Kao što je spomenuto u poglavlju 2., metoda poziva se samo jednom tijekom izvođenja i optimalno služi za učitavanje sadržaja, pa učitajmo teksturu tamo. Tekstura se učitava na slijedeći način: Texture2D mojatekstura;... public Game1();... protected override void LoadContent() spritebatch = new SpriteBatch(GraphicsDevice); mojatekstura = Content.Load<Texture2D>("imeDatotekeUSadrzaju"); Prikažimo učitanu teksturu kao pozadinu cijelog radnog prozora. U XNA okruženju sve crtamo na ekran, a sve 2D objekte crtamo u metodi funkcijom. Funkcija ima 7 predefiniranih oblika, ovisno o količini parametara te složenosti samog crtanja. Iskoristimo najjednostavniji oblik: spritebatch.draw(mojatekstura, GraphicsDevice.Viewport.Bounds, Color.White); Parametri ove funckije su tekstura koju želimo prikazati, pravokutnik u kojem crtamo teksturu, te boja propusnosti teksture, u našem slučaju je to bijela, potpuno transparentna boja, tako da prikaz teksture odgovara pravom izgledu učitane datoteke. Klasa omogućava pristup prikladnoj varijabli koja sadrži pravokutnik veličine izvršnog zaslona, tako da bez stvaranja novih pravokutnika možemo crtati teksturu preko cijelog ekrana. XNA skalira širinu i visinu učitane slike kako bi odgovarala veličini zadanog pravokutnik u naredbi Rezultat izvršenja možemo vidjeti na slici 4.2.

14 Sada primjenimo složeniju verziju naredbe. Parametri i poziv glase: spritebatch.draw(mojatekstura, centarnaekranu, dioteksture, bojapropusnosti, kut, centarrotacije, SkalaXY, SpriteEffects.None, dubinasloja); Slika 4.2 Jednostavan Slika 4.3 Složen Prikazana naredba crta pravokutnik iz datoteke, centriranu na poziciji. Tekstura je zarotirana udesno za, izražen u radijanima, s obzirom na, kojeg postavljamo na polovicu veličine pravokutnika ako želimo da se rotira oko vlastitog centra. SkalaXY skalira širinu i visinu teksture, bojapropusnosti se koristi kao i bijela boja iz jednostavnog primjera, je enum podatak koji sadrži preslikavanje po x ili y osi te prazan efekt. je parametar dubine crtanja teksture realnog raspona od 0 do 1. Ako se dubina postavi na 0, tekstura se crta na najgornjem, a za dubinu 1 na najdonjem sloju. Rezultat crtanja složenog poziva se vidi na slici 4.3. Parametri su slijedeći: dioteksture je 200x300 piksela sa sredine slikovne datoteke sa slike 4.2, rotacija je 2 radijana, skaliranje je 0.8 po obje osi, te je pozadina boje CornFlowerBlue. 4.3 Transformacije U prošlom poglavlju smo imali prilike vidjeti transformiranje tekstura u smislu pomaka (lokacije crtanja), rotiranja i skaliranja. Sada pogledajmo primjenu na logičke varijable. Metoda u klasi poziva se, kao i ostale, 60 puta u sekundi. Igrač se ovisno o pritisku kontroli na tipkovnici, kreće u željenom smjeru konstantnom brzinom. XNA okruženje ima načine za kontrolu toka vremena, čime se postiže pomicanje slike igrača za određen broj u određenom vremenu. Slijedeći kôd u metodi povećava varijablu za 17 po protekloj sekundi vremena: public virtual void Update(GameTime gametime) float elapsed = (float)gametime.elapsedgametime.totalseconds; value += (17 * elapsed); Ako se umjesto stavi varijabla koja određuje lokaciju igrača, a umjesto broja 17 brzina određena kontrolama, dobije se kretanje slike igrača kroz vrijeme.

15 XNA okruženje u svojim predefiniranim klasama sadrži klase, u kojima su definirane osnovne i napredne matematičke funkcije, konstante poput Pi, te druge korisne funkcije. Među njima se nalaze i funkcije i koje su korištene u projektu. Funkcija vraća varijablu ograničenu na raspon vrijednosti od do Varijable i mogu biti samo realnog tipa. Primjena te funkcije je česta kod rotacije, jer kut u radijanima ne mora biti izvan raspona od 0 do 2*Pi kako bi se svi kutevi mogli prikazati. Jedna od primjena u projektu, ograničavanje kretanja igrača kako bi on u potpunosti u svakom trenutku bio na ekranu, prikazana je u slijedećem kodu: igrac.pozicija.x = MathHelper.Clamp(igrac.pozicija.X, 0, ekran.sirina - igrac.sirina); igrac.pozicija.y = MathHelper.Clamp(igrac.pozicija.Y, 0, ekran.visina - igrac.visina); Vrijednosti su određene veličinom slike igrača, budući da je pozicija referentna na gornji lijevi kut slike igrača. Funkcija vraća varijablu koja iznosi Kao u funkciji, varijable mogu biti samo realnog tipa. Funkcija se koristi za linearnu interpolaciju neke vrijednosti, poput položaja, rotacije, sjaja ili transparentnosti, te se za parametar obično šalje vremenski promijenjiva varijabla. Primjeri u projektu su interpolacija položaja neprijatelja između zadanih točaka njihove putanje, te interpolacija boja i transparentnosti čestica u eksploziji neprijatelja ili igrača. Vektori, kao strukture koje sadrže 2 realna broja, su bitan dio sastava projekta kao 2D računalne igre. Budući da se u dvodimenzionalnom prostoru sve referira pomoću X i Y koordinata, primjena strukture je neizostavna. Fizika implementirana u projektu svodi se na igranje s vektorima. Vidjeli smo primjer za pomak: brzina x vrijeme, bez akceleracije. Ovdje ćemo navesti bolji, složeniji primjer, poput međusobnog odbijanja asteroida. Proučimo sudar 2 asteroida: oba imaju trenutnu poziciju i trenutnu brzinu (v1 i v2). Uz primjenu količine gibanja, dobije se rezultantna brzina vrez= (v1+v2)/2, i to je 1. korak na slici 4.4. Od početnih brzina se oduzme vrez te se dobiveni vektor vrez1 i vrez2 reflektiraju od odgovarajućih normala -> korak 2. Normale n1 i n2 dobiju se razlikom koordinata centara a2-a1 odnosno a1-a2, to je korak 3. Korak 4 -> nove brzine asteroida su jednake v1'= vrez1+vrez, odnosno v2+=vrez2+vrez. vrez n1 v1' v1 vrez1 v2 vrez2 n2 v2' Slika Sudar asteroida

16 Pri implementaciji koda za odbijanje asteroida korištene su vektorske funkcije i. Funkcija skalira vektor na vektor jedinične duljine. Prije normaliziranja moramo provjeriti da vektor ne iznosi (0,0) jer od nul-vektora ne postoji jedinični. Nomalizacija vektora se koristi i pri ograničavanju brzine igrača te brzine čestica u eksploziji na slijedeći način: if (brzina > maxbrzina) brzina.normalize(); brzina *= maxbrzina; Funkcija djeluje kao zrcaljenje vektora oko osi, s promjenom orijentacije. 4.4 Animacija Animacija se ostvaruje brzom izmjenom slika kako bi se postigla iluzije pokreta, promjene oblika ili promjene osvjetljenja i boje. U projektu igre, sve osim pozadinske slike je animirano. Za iluziju pokreta u kodu dovoljno je da se vrijednost položaja, skale, rotacije, transparentnosti ili boje promijeni u jednom pozivu metode, i metoda će nacrtati 60 različitih varijacija iste slike u sekundi. Na primjer, čestice se gibaju uz promjenu boja, te zbog tromosti vida mi doživljavamo te promjene kao konstantne naš mozak stvara iluziju animacije. No kako bismo postigli animaciju u smislu promjene samog izgleda slike, a ne parametara njenog prikazivanja? Za prikaz takve animacije trebamo imati više slika istog objekta, poput slika asteroida. Na izvornoj teksturi nalaze se sve korištene slike igrača, neprijatelja i projektila. Kako bismo postigli iluziju rotacije asteroida oko svoje osi, trebamo pohraniti sve djelove teksture koje prikazuju asteroid u niz slika koje ćemo prikazivati pravilnim izmjenjujućim redoslijedom. Slijedi kôd koji izmjenjuje sliku asteroida koja će se prikazati u slijedećem pozivu metode: public virtual void Update(GameTime gametime) float elapsed = (float)gametime.elapsedgametime.totalseconds; timeforcurrentframe += elapsed; if (timeforcurrentframe >= FrameTime) currentframe = (currentframe + 1) % (frames.count); timeforcurrentframe = 0.0f; Uz pretpostavku pravilnog učitavanja slika s izvorne teksture, slike su slijedno pohranjene u listi. Varijabla sadrži vrijeme u sekundama kroz koje želimo prikazivati jedan okvir iz niza. odbrojava vrijeme koje je prošlo od početka prikazivanja trenutačnog okvira, te se resetira pri smanjenju na nulu, uz promjenu okvia na slijedeći u nizu.

17 5. Detekcija kolizije 5.1 Uvod u detekciju kolizije Termin odnosi se na računalni problem detekcije presjecanja dvaju ili više objekata. Primjenjuje se u robotici, fizičkim simulacijama i računalnim igrama. Uz predviđanje trenutka sudara, algoritmi mogu odrediti i set točaka sudara ili volumen presjeka nakon isteka odreženog vremena. Algoritmi detekcije kolizije moraju omogućavati daljnja predviđanja nakon detekcije inicijalnih sudara. Rješavanje takvih problema zahtjeva opsežno znanje linearne i matrične algebre. Dok robotika i fizičke simulacije imaju stroge zahtjeve za točnost algoritama, primjena u računalnim igrama ima mnogo niže standarde. Igre trebaju simulirati sudare u prirodi s prihvatljivom točnošću koja ne mora biti precizna, ali mora biti efikasna i brza, kako ne bi došlo do usporavanja igre i smanjenja kvalitete doživljaja. Najbrži algoritmi za detekciju kolizije u dvodimenzionalnom prostoru su oni koji sve objekte za provjeru kolizije tretiraju kao zasebni geometrijski lik. 5.2 Pravokutna i kružna detekcija kolizije Da, spomenuti algoritmi najčešće koriste ta dva geometrijska lika za detekciju kolizije. Pogledajmo kako su ostvareni. Pravokutna detekcija kolizije Za primjenu ovog algoritma, svi objekti trebaju imati pravokutnik koji aproksimira njihov izgled i poziciju na ekranu. Objekti se mogu aproksimirati pravokutnikom svoje veličine, umanjenom na granicama za neki sigurnosni sloj u kojem se neće detektirati kolizija. Što je sigurnosni sloj veći, veća je i greška, ako je objekt nepravilan. Slika 6.1 prikazuje objekt povezan s pravokutnikom i malim sigurnosnim slojem. Slika Prikaz objekta i povezanih pravokutnika Algoritam presjeka dva pravokutnika ispituje imaju li zajedničku točku. Za ispitivanje kolizije više pravokutnika, uspoređuju se dva po dva. Kôd za takvu detekciju korišten u izrađenoj igri: public bool IsBoxColliding(Rectangle OtherBox) return BoundingBoxRect.Intersects(OtherBox);

18 Algoritam koristi predefiniranu XNA metodu koja provjerava jesu li koordinate vrhova jednog pravokutnika unutar drugog, ako je bar jedan vrh unutra, oni se sijeku. Na slici 6.2 vidimo presjek dvaju pravokutnika kada im se djelovi bez sigurnosnih slojeva ne sijeku i kad se detektira kolizija. Kružna detekcija kolizije Slika 5.2 Detekcija kolizije pravokutnicima Detekcija kolizije objekata koji su aproksimirani krugom je puno jednostavnija od gornje, svodi se na jedno oduzimanje. Svaki objekt ima definiranu sredinu kruga i radijus kolizije. Kôd slijedi: public bool IsCircleColliding(Vector2 othercenter, float otherradius) if (Vector2.Distance(Center, othercenter) < (CollisionRadius + otherradius)) return true; return false; Metoda prima parametre radijusa i centra kruga drugog objekta, a poziva se iz prvog objekta. Uspoređuje udaljenosti centara krugova s ukupnim radijusom kolizije. Ako je udaljenost manja od sume radijusa, krugovi se sijeku. Na slici 6.3 vidimo dva kruga koji su dovoljno daleko i dva koji se sijeku. Slika Detekcija kolizije krugovima Algoritam za detekciju pomoću krugova redom se koristi u klasi za detekciju između parova objekata:. S obzirom na detektirane kolizije, poduzimaju se određene radnje: neprijatelj se uništi, projektij nestane, nastane eksplozija, asteroid nestane ili se odbije. Obrađeni algoritmi dovoljni su za spomenutu prihvatljivu točnost, i dovoljno jednostavni da ne usporavaju izvršenje koda. Za složenije primjere objekata i algoritama, trebali bi se dublje upustiti u linearnu algebru i logiku uključivanja.

19 6. Čestični sustavi 6.1 Teorija čestičnih sustava U računalnoj grafici, termin čestični sustav (particle system) odnosi se na tehniku prikazivanja dinamičnih fenomena koji se teško reproduciraju standardnim tehnikama prikazivanja 2D i 3D objekata. Čestični sustavi se mogu primjeniti na simulaciju vatre, eksplozija, dima, animaciju površine (ili unutrašnjosti) vode, struje, padajućeg lišća, oblaka, magle, snijega, meteora, kose, krzna ili dlakave površine, trave te ostalih apstraktnih vizualnih efekata poput osvjetljenja i magije. U praksi češća je upotreba 3D čestičnih sustava, u skladu s razvojem mogućnosti industrije računalnih igara, no mnogi ljudi podcijenjuju kvalitetu, ljepotu i jednostavnost implementacije i upotrebe 2D sustava. Osnova rada mnogih čestičnih sustava je emiter. Emiter je najčešće 3D objekt koji se ponaša kao izvor za lokaciju čestica, te sadrži parametre ponašanja čestica poput količine stvaranja čestica u vremenu, vektor brzine i smjera, životni vijek čestice, boje i mnoge druge. Poligoni od kojih je sastavljen emiter se postave kao vektori normale na smjer kretanja stvorenih čestica, kako bi se postigao željeni oblik sustava čestica poput lokaliziranog plamena ili oblaka. Programeri čestičnih sustava navedenim parametrima pridjeljuju realne vrijednosti koje su u rasponu od centrirane određene vrijednosti kako bi se postigao efekt nasumičnosti i realnosti. Kao primjer, prosječni životni vijek neke čestice može biti 2 sekunde, ali se u praksi izabire 2 sekunde +- 20% te vrijednosti, kako se sustav ne bi ponašao monotono i uniformno. Izvedba standardnih čestičnih sustava dijeli se na metodu za ažuriranje i promjenu parametara (simulacija), te metodu za prikaz čestica na ekranu. Tijekom poziva simulacijske metode za ažuriranje varijabli čestičnog sustava, čestice se stvaraju na temelju određene količine i intervala, inicijaliziraju na postavljene i nasumične vrijednosti, na sve postojeće čestice se primjeni promjena lokacije, boje, intenziteta osvjetljenja i ostalih parametara, te se konačno sve čestice kojima je istekao životni vijek uklanjaju iz liste postojećih. Promjena pozicije, kao osnovnog parametra, može biti jednostavna translacija, no napredni sustavi imaju mogućnosti kretanja u određenim matematičkim putanjama, krivuljama te prostornim objektima, uz izražen utjecaj vanjskih sila (gravitacija, frikcija, vjetar), te čestične interakcije sa drugim česticama i okolinom (fuzija, odbijanje, raspršenje) koje se zbog složenosti implementacije i usporavanja izvršavanja programa rijetko primjenjuju u simulacijama. Nasumičnost parametara prikaza (veličine, rotacije, skaliranja) te ponašanja čestica (boje) omogućava simulaciju istih ponašanja neponovljivog izgleda, čak i korištenjem samo jednog modela čestice. Nakon promjene opisnih varijabli svih čestica, one se prikazuju na ekranu. Čestica može biti prikazana četverokutnom teksturom, točnije: djelom teksture okrenutom prema kameri, obojanim pikselom (najjednostavniji i najbrži način prikaza, najmanje kvalitete), metakuglama ili drugim 3D objektima. U slučaju prikaza čestica 3D objektima veliku ulogu u kvaliteti i brzini prikaza ima količina poligona kojima se prikazuje jedna čestica, transparentnost pojedinih djelova te drugi površinski i efekti materijala čestice povezani s okolišem i osvjetljenjem.

20 Termin čestični sustavi često asocira isključivo na animirani aspekt primjene, no oni mogu biti animirani i statični, točnije: putanja i promjena čestice kroz životni vijek može biti prikazana kadar po kadar animacije ili odjednom. Kao primjer dinamične animacije čestica imamo snijeg, vatra, oblaci, a primjer statike je kosa, (dlaka, krzno), trava i slično. Varijable statičnih sustava se mogu mijenjati po istim (implementiranim) zakonima fizike i matematike. U primjeni statičnih sustava efektivnost utjecaja varijabli se lokalizira, te se primjenjuje krivulja utjecaja na model čestice ili čitavog sustava: na primjer, vrh vlasi trave će se više saviti na vjetru od sredine ili korijena. Također postoje dodatne varijable koje preciznije simuliraju prethodno navedeno ponašanje, njima se postižu naprednija fizička svojstva poput ukočenosti, čvrstoće, inertnosti, rasporeda mase. 6.2 Primjena čestičnih sustava U seminarskom radu postoje 4 klase koje implementiraju ponašanje čestičnih sustava: i. Sva tri slučaja koriste animiranu primjenu čestičnih sustava, no u različite svrhe: pozadinski efekt, interakcija s okolinom, te efekt koji se aktivira posebnim događajem. Zvjezdano polje ( ) prvi je implementirani čestični sustav, te služi samo za uljepšavanje i razbijanje monotonosti pozadine. Možda se u razvoju igre dodaju svojstva koja bi odražavala tempo i trenutnu težinu igre poput agresivnijih boja ili većih brzina čestica za više razine. U klasi, u metodi, pozivaju se pomoćne metode za crtanje u svim ostalim klasama. Zvjezdano polje se crta prvo po redu, (naravno, nakon pozadine) iz jednostavnog razloga. U ovom projektu upotrijebljen je jednostavan princip crtanja što se crta poslije, prikazuje se preko svega što se nacrtalo prije. Budući da je Zvjezdano polje zasad samo ambijentalno, logično je prvo njega nacrtati. Primjetimo da sam mogao koristiti prikladnost koju omogućava buffer depth opcija naredbe za crtanje i klase SpriteBatch koja bi omogućila sistematizitani slojeviti prikaz i redoslijed crtanja sadržaja klasa u igri, no nekad je jednostavnije samo nacrtati stvari željenim redoslijedom, iako to nije nimalo profesionalno, te zahtijeva više kodiranja pri mijenjanju odluka o crtanju segmenata igre. U osnovne varijable klase za obradu ponašanja čestičnog sustava pripada neizostavna lista osnovne Sprite klase, opisane ranije. Ostale varijable mogu se sažeti na veličinu površine na kojoj će biti crtane naše čestice - zvijezde, broj i veličina zvijezda, dio teksture koji će ih predstavljati, usmjerenje i brzina, te raspon boja koje one mogu poprimiti. U konstruktoru zadanom broju zvjezda nasumično dodjelimo brzinu unutar razumnog raspona, položaj unutar dane površine, boju iz skupa dopuštenih boja, te su nam potrebne još samo metode za ažuriranje položaja i crtanje. Klasa Sprite ima predefiniranu metodu za crtanje, te sve što trebamo je pozvati tu metodu za sve zvijezde u Zvjezdanom polju. Što se tiče Update() metode, opet sam išao jednostavnijom metodom čim zvijezda bude locirana van ekrana (zadane površine), neka njena pozicija bude nasumično izabrana lokacija unutar ekrana, što u praksi ima efekt novostvorene zvijezde. Cijela klasa ima efekt stalnog pokreta, nasumičnosti i živosti, te je ugođaj u igri bogatiji od čiste statične slike pozadine. Asteroidi ( ) čine drugi čestični sustav, i kao dio svemirskog okoliša, postoji interakcija između njih i okoline, točnije: igrača i neprijatelja. Uz neizostavnu listu

21 Sprite klase koja predstavlja naš skup asteroida, kao i metode za postavljanje nasumičnog položaja i ažuriranje varijabli, klasa Asteroidi sadrži metodu za fizičku simulaciju odbijanja između svih postojećih asteroida, oslanjajući se na detekciju kolizije i primjenu vektorskih funkcija u XNA okruženju. Klasa Zvjezdano polje je omogućavala slobodno pomicanje čestica po ekranu, dok asteroidi mogu sudarati međusobno i s igračem te neprijateljima, što uzrokuje njihovo uništenje, a realizirano je također laički, premještanjem lokacije pojedinog asteroida van ekrana, što je dovoljno za efekt nestajanja samog asteroida. Update() metoda, uz ažuriranje lokacije asteroida na ekranu, koristi metode za nasumično postavljanje lokacije i brzine asteroida koji su izašli iz ekrana, similirajući prolaz novih asteroida. Ova klasa koristi animaciju same slike asteroida, prikazujući niz okvira različito nacrtanih asteroida u petlji te tako simulirajući prostornu rotaciju. Prikaz se ostvaruje 2D teksturom, te čestice nemaju određeni životni vijek, kao ni u prethodnoj klasi, već je njihovo stvaranje i brisanje određeno njihovom lokacijom. Klasa Projektili ( funkcionira na istom principu kao prethodni čestični sustav, uz par izuzetaka: projektili se stvaraju na centru Spriteova koji su ih ispalili, kreću se istom brzinom u smjeru rotacije svog izvora, kolizijom sa Asteroidom, igračem ili neprijateljem nestaju, (igračevi i neprijateljski projektili reagiraju samo na onog drugog i asteroid), za razliku od asteroida, projektili se ne odbijaju i ne animiraju listom slika. Eksplozije ( ) je zadnji i najzahtjevniji čestični sustav. Umjesto liste sprite klasa, koristi klasu koja proširuje klasu varijablama za praćenje životnog vijeka čestice, postotka trajanja, akceleraciju i maksimalnu brzinu, početnu boju, završnu, te listu prijelaznih boja i varijable koje omogućuju interpolaciju između svih zadanih boja za česticu za vrijeme njenog trajanja. klasa u () metodi ima klasični algoritam za odbrojavanje koji ažurira vrijednost dosadašnjeg trajanja čestice, te s obzirom na postavljenu vremensku duljinu trajanja obojenošću istom bojom ažurira i veličinu koja ide po svim bojama i interpolira vrijednost s kojom se čestica na kraju crta. Najbitnija varijabla čestice je koja nam na pitanje je li čestica još uvijek aktivna odgovara sa Da ili Ne. Ako nije, ne moramo ju više crtati u () metodi, niti ažurirati boje ili položaj u (), tada se čestica tretira kao da više ne postoji i uklanja se iz liste svih čestica u klasi. Efekt ovog čestičnog sustava koristi se u par slučaja: pri sudaru asteroida sa neprijateljem ili igračem, te za njihov međusobni sudar. Prvi navedeni slučaj stvara jednu, a drugi dvije eksplozije. Eksplozija je definirana kao događaj na određenoj lokaciji s kauzalnom brzinom sudarenih objekata na temelju čega se česticama dodjeljuje početna pozicija te moment inercije. Klasa ima metodu () koja se koristi za instanciranje čestica za prikaz pojedine eksplozije. U sebi sadrži isti kôd za inicijalizaciju čestica kao piksela, te čestica kao parcijalno transparentnih tekstura za dojam raspada masivnijeg objekta. Svaka čestica se tretira kao instanca, tj. klase: vrijednosti se ažuriraju i crta se dok postoji, ako postane neaktivna, briše se iz liste. Budući da se za novonastale eksplozije čestice samo dodaju na kraj liste, ovo omogućava tek memorijski ograničen (vrlo velik) broj istovremenih simulacija eksplozija na ekranu. Prolaskom kroz sastav, primjenu i svrhu svih čestičnih sustava u ovom programskom projektu vidjeli smo različite načine implementacije i prikaza čestica, kompliciranost

22 održavanja čestičnog sustava i neke jednostavne trikove koji izvrsno rade u 2D grafici gdje je osnovno svojstvo crtanih tekstura biti ili ne biti na ekranu. Prošli smo kroz primjene detekcije kolizije, interpolacije, transformacija i manipulacija tekstura za postizanje masovnog efekta istom teksturom replicirajući je s nasumičnim varijablama, kako bi uvijek bila novog i neviđenog ponašanja, u granicama implementiranih pravila.

23 7. Zaključak Kroz protekla poglavlja može se steći blagi dojam složenosti izrade obične, laičke 2D računalne igre. Prikazani su vjerni modeli Sprite strukture, algoritama ažuriranja animacije, implementacije napredne kolizije i reakcije, pozadinskih i aktivnih čestičnih sustava. Opisani koncepti se koriste u složenim 2D igrama, neki i u 3D igrama, ali s puno kompliciranijim algoritmima, klasama, strukturama i desecima tisuća linija koda. Za rad u 2D grafici nije potrebno znati matematiku više od rada u koordinatnom sustavu i trigonometrije, što je velika prednost u odnosu na 3D grafiku. Znanje fizike ovisi o željenoj razini realističnosti igre. Programiranje nije preduvjet, jer postoje mnoge knjige, barem za XNA tehnologiju, koje od početka objašnjavaju rad u XNA i C# programski jezik. Nakon usvajanja osnovnog znanja poput primjene kolizije, animacije i čestičnih sustava, moguće je proizvesti mnogo različitih 2D igara, ali za potražnju na tržištu i poboljšanja izvedbe do savršenstva, znanja se moraju konstantno proširivati, a uz znanja dolaze ispirativne ideje. Uz iščekivanje budućeg razvoja računalne grafike do potpunog realiziranja prirode i ljudske mašte, završavam zaključak seminara s porukom da je grafika divno sredstvo izražavanja i stvaranja nečega što pomaže ljudima i čini ih sretnijim.

24 8. Literatura [1] Microsoft XNA, Wikipedia, [2] XNA Wiki, [3] Particle system (Čestični sustavi), Wikipedia, [4] Sprite, Wikipedia, [5] Reed, A [6] Carter, C. -, [7] Miles, R. - Microsoft XNA Game Studio 4.0: Learn Programming Now!, 2011.

25 9. Sažetak Seminar upoznaje čitatelja sa osnovama rada u XNA tehnologiji i primjenom 2D računalne grafike i animacije. Podjeljen je u 5 glavnih cjelina, sa sljedećim sadržajem: Prva cjelina navodi kratku povijest XNA tehnologije, osnovne principe i djelove projekta za izradu igre. Detaljno se opisuju osnovne naredbe za kreiranje jednostavnih programa, implemetira se Hello World program. Druga cjelina daje uvod u primjenu svjetski korištenog termina i klase Sprite, objašnjava osnovno logičko razmišljanje pri stvaranju igre, povezanosti objekata, te ostvarenje cikličnosti igre. Treća cjelina obuhvaća rad sa teksturama, transformacije s pogledom na matematiku i fiziku, te ih objedinjuje u primjeni prikazanih principa na izradi animacije. Četvrta cjelina analizira principe detekcije kolizije objekata, pristup matematici, primjenu i moguća poboljšanja algoritama. Peta cjelina prolazi kroz teoriju, primjenu i implementaciju jednostavnih i naprednih čestičnih sustava. Analiziraju se svojstva i parametri, kao i interakciju čestica.

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Upute za korištenje makronaredbi gml2dwg i gml2dgn SVEUČILIŠTE U ZAGREBU - GEODETSKI FAKULTET UNIVERSITY OF ZAGREB - FACULTY OF GEODESY Zavod za primijenjenu geodeziju; Katedra za upravljanje prostornim informacijama Institute of Applied Geodesy; Chair

More information

Port Community System

Port Community System Port Community System Konferencija o jedinstvenom pomorskom sučelju i digitalizaciji u pomorskom prometu 17. Siječanj 2018. godine, Zagreb Darko Plećaš Voditelj Odsjeka IS-a 1 Sadržaj Razvoj lokalnog PCS

More information

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. 1) Kod pravilnih glagola, prosto prošlo vreme se gradi tako

More information

SAS On Demand. Video: Upute za registraciju:

SAS On Demand. Video:  Upute za registraciju: SAS On Demand Video: http://www.sas.com/apps/webnet/video-sharing.html?bcid=3794695462001 Upute za registraciju: 1. Registracija na stranici: https://odamid.oda.sas.com/sasodaregistration/index.html U

More information

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije Biznis scenario: U školi postoje četiri sekcije sportska, dramska, likovna i novinarska. Svaka sekcija ima nekoliko aktuelnih projekata. Likovna ima četiri projekta. Za projekte Pikaso, Rubens i Rembrant

More information

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević GUI Layout Manager-i Bojan Tomić Branislav Vidojević Layout Manager-i ContentPane Centralni deo prozora Na njega se dodaju ostale komponente (dugmići, polja za unos...) To je objekat klase javax.swing.jpanel

More information

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings Eduroam O Eduroam servisu Eduroam - educational roaming je besplatan servis za pristup Internetu. Svojim korisnicima omogućava bezbedan, brz i jednostavan pristup Internetu širom sveta, bez potrebe za

More information

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri. Potprogrami su delovi programa. Često se delovi koda ponavljaju u okviru nekog programa. Logično je da se ta grupa komandi izdvoji u potprogram, i da se po želji poziva u okviru programa tamo gde je potrebno.

More information

1. Instalacija programske podrške

1. Instalacija programske podrške U ovom dokumentu opisana je instalacija PBZ USB PKI uređaja na računala korisnika PBZCOM@NET internetskog bankarstva. Uputa je podijeljena na sljedeće cjeline: 1. Instalacija programske podrške 2. Promjena

More information

Tutorijal za Štefice za upload slika na forum.

Tutorijal za Štefice za upload slika na forum. Tutorijal za Štefice za upload slika na forum. Postoje dvije jednostavne metode za upload slika na forum. Prva metoda: Otvoriti nova tema ili odgovori ili citiraj već prema želji. U donjem dijelu obrasca

More information

Podešavanje za eduroam ios

Podešavanje za eduroam ios Copyright by AMRES Ovo uputstvo se odnosi na Apple mobilne uređaje: ipad, iphone, ipod Touch. Konfiguracija podrazumeva podešavanja koja se vrše na računaru i podešavanja na mobilnom uređaju. Podešavanja

More information

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI Za pomoć oko izdavanja sertifikata na Windows 10 operativnom sistemu možete se obratiti na e-mejl adresu esupport@eurobank.rs ili pozivom na telefonski broj

More information

Svojstva olovke x (0,0)

Svojstva olovke x (0,0) Kornjačina grafika O modulu turtle Sadrži funkcije za crtanje Izvođenjem naredbi otvara se grafički prozor veličine 600x600 piksela Olovka (pokazivač) je postavljena u središtu prozora i usmjerena udesno

More information

BENCHMARKING HOSTELA

BENCHMARKING HOSTELA BENCHMARKING HOSTELA IZVJEŠTAJ ZA SVIBANJ. BENCHMARKING HOSTELA 1. DEFINIRANJE UZORKA Tablica 1. Struktura uzorka 1 BROJ HOSTELA BROJ KREVETA Ukupno 1016 643 1971 Regije Istra 2 227 Kvarner 4 5 245 991

More information

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA KOŽA I TEKSTIL ALU FELGE CJENIK APLIKACIJE CERAMIC PRO PROIZVODA Radovi prije aplikacije: Prije nanošenja Ceramic Pro premaza površina vozila na koju se nanosi mora bi dovedena u korektno stanje. Proces

More information

Windows Easy Transfer

Windows Easy Transfer čet, 2014-04-17 12:21 - Goran Šljivić U članku o skorom isteku Windows XP podrške [1] koja prestaje 8. travnja 2014. spomenuli smo PCmover Express i PCmover Professional kao rješenja za preseljenje korisničkih

More information

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB. 9.72 8.24 6.75 6.55 6.13 po 9.30 7.89 5.86 10.48 8.89 7.30 7.06 6.61 11.51 9.75 8.00 7.75 7.25 po 0.38 10.21 8.66 7.11 6.89 6.44 11.40 9.66 9.73 7.69 7.19 12.43 1 8.38 7.83 po 0.55 0.48 0.37 11.76 9.98

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka 25. novembar 2011. godine 7. čas SQL skalarne funkcije, operatori ANY (SOME) i ALL 1. Za svakog studenta izdvojiti ime i prezime i broj različitih ispita koje je pao (ako

More information

3D GRAFIKA I ANIMACIJA

3D GRAFIKA I ANIMACIJA 1 3D GRAFIKA I ANIMACIJA Uvod u Flash CS3 Šta će se raditi? 2 Upoznavanje interfejsa Osnovne osobine Definisanje osnovnih entiteta Rad sa bojama Rad sa linijama Definisanje i podešavanje ispuna Pregled

More information

Programiranje za internet zimski semestar 2013/2014. Java kroz primjere (skripta je u fazi izradi)

Programiranje za internet zimski semestar 2013/2014. Java kroz primjere (skripta je u fazi izradi) Programiranje za internet zimski semestar 2013/2014 Java kroz primjere (skripta je u fazi izradi) Zadatak broj 1 Nacrtati kocku. (Zanimljiv teži problem za razmišljanje: Nacrtat kocku čije će dimenzije

More information

PROJEKTNI PRORAČUN 1

PROJEKTNI PRORAČUN 1 PROJEKTNI PRORAČUN 1 Programski period 2014. 2020. Kategorije troškova Pojednostavlj ene opcije troškova (flat rate, lump sum) Radni paketi Pripremni troškovi, troškovi zatvaranja projekta Stope financiranja

More information

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik) JEDINSTVENI PORTAL POREZNE UPRAVE Priručnik za instalaciju Google Chrome dodatka (Opera preglednik) V1 OPERA PREGLEDNIK Opera preglednik s verzijom 32 na dalje ima tehnološke promjene zbog kojih nije moguće

More information

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. Idejno rješenje: Dubrovnik 2020. Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. vizualni identitet kandidature dubrovnika za europsku prijestolnicu kulture 2020. visual

More information

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS - Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS 1. Pokrenite Adobe Photoshop CS i otvorite novi dokument sa komandom File / New 2. Otvoriće se dijalog

More information

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports. IZVJEŠTAJI U MICROSOFT ACCESS-u (eng. reports) su dijelovi baze podataka koji omogućavaju definiranje i opisivanje načina ispisa podataka iz baze podataka na papir (ili PDF dokument). Način izrade identičan

More information

Otpremanje video snimka na YouTube

Otpremanje video snimka na YouTube Otpremanje video snimka na YouTube Korak br. 1 priprema snimka za otpremanje Da biste mogli da otpremite video snimak na YouTube, potrebno je da imate kreiran nalog na gmailu i da video snimak bude u nekom

More information

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a NIS PETROL Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a Beograd, 2018. Copyright Belit Sadržaj Disable... 2 Komentar na PHP kod... 4 Prava pristupa... 6

More information

Mindomo online aplikacija za izradu umnih mapa

Mindomo online aplikacija za izradu umnih mapa Mindomo online aplikacija za izradu umnih mapa Mindomo je online aplikacija za izradu umnih mapa (vrsta dijagrama specifične forme koji prikazuje ideje ili razmišljanja na svojevrstan način) koja omogućuje

More information

Nejednakosti s faktorijelima

Nejednakosti s faktorijelima Osječki matematički list 7007, 8 87 8 Nejedakosti s faktorijelima Ilija Ilišević Sažetak Opisae su tehike kako se mogu dokazati ejedakosti koje sadrže faktorijele Spomeute tehike su ilustrirae a izu zaimljivih

More information

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. SEMINARSKI RAD U OKVIRU PREDMETA "Računalna forenzika" 2016/2017. GIF FORMAT (.

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. SEMINARSKI RAD U OKVIRU PREDMETA Računalna forenzika 2016/2017. GIF FORMAT (. SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINARSKI RAD U OKVIRU PREDMETA "Računalna forenzika" 2016/2017 GIF FORMAT (.gif) Renato-Zaneto Lukež Zagreb, siječanj 2017. Sadržaj 1. Uvod...

More information

Office 365, upute za korištenje elektroničke pošte

Office 365, upute za korištenje elektroničke pošte Office 365, upute za korištenje elektroničke pošte Naša ustanova koristi uslugu elektroničke pošte u oblaku, u sklopu usluge Office 365. To znači da elektronička pošta više nije pohranjena na našem serveru

More information

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd, AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje Marko Eremija Sastanak administratora, Beograd, 12.12.2013. Sadržaj eduroam - uvod AMRES eduroam statistika Novine u okviru eduroam

More information

int[] brojilo; // polje cjelih brojeva double[] vrijednosti; // polje realnih brojeva

int[] brojilo; // polje cjelih brojeva double[] vrijednosti; // polje realnih brojeva Polja Polje (eng. array) Polje je imenovani uređeni skup indeksiranih vrijednosti istog tipa (niz, lista, matrica, tablica) Kod deklaracije, iza naziva tipa dolaze uglate zagrade: int[] brojilo; // polje

More information

Slagalica init screen Prikaz atributi 1.1. Jednostavna slagalica

Slagalica init screen Prikaz atributi 1.1. Jednostavna slagalica 1. Pristup programiranju kod kojeg radimo s objektima koji međusobno komuniciraju zovemo objektno usmjereno programiranje. Svuda oko nas nalaze se objekti: računalo, mobitel, vozilo, knjiga, neki geometrijski

More information

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU KONFIGURACIJA MODEMA ZyXEL Prestige 660RU Sadržaj Funkcionalnost lampica... 3 Priključci na stražnjoj strani modema... 4 Proces konfiguracije... 5 Vraćanje modema na tvorničke postavke... 5 Konfiguracija

More information

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum:

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum: Programiranje Nastava: prof.dr.sc. Dražena Gašpar Datum: 21.03.2017. 1 Pripremiti za sljedeće predavanje Sljedeće predavanje: 21.03.2017. Napraviti program koji koristi sve tipove podataka, osnovne operatore

More information

Direktan link ka kursu:

Direktan link ka kursu: Alat Alice može da se preuzme sa sledeće adrese: www.alice.org Kratka video uputstva posvećena alatu Alice: https://youtu.be/eq120m-_4ua https://youtu.be/tkbucu71lfk Kurs (engleski) posvećen uvodu u Java

More information

MASKE U MICROSOFT ACCESS-u

MASKE U MICROSOFT ACCESS-u MASKE U MICROSOFT ACCESS-u Maske (Forms) ili obrasci su objekti baze podataka u Accessu koji služe za unošenje, brisanje i mijenjanje podataka u tablicama ili upitima koji imaju ljepše korisničko sučelje

More information

za STB GO4TV in alliance with GSS media

za STB GO4TV in alliance with GSS media za STB Dugme za uključivanje i isključivanje STB uređaja Browser Glavni meni Osnovni meni Vrsta liste kanala / omiljeni kanali / kraći meni / organizacija kanala / ponovno pokretanje uređaja / ponovno

More information

Uvod u MS Word. Nova znanja. Novi pojmovi

Uvod u MS Word. Nova znanja. Novi pojmovi Uvod u MS Word Na početku učenja novog programa najbolje ga je pokrenuti i malo prošetati po njemu. Pogledati osnovni izgled prozora, proanalizirati što sadrži, otvarati izbornike i pogledati koje naredbe

More information

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE CJENOVNIK KABLOVSKA TV Za zasnivanje pretplatničkog odnosa za korištenje usluga kablovske televizije potrebno je da je tehnički izvodljivo (mogude) priključenje na mrežu Kablovskih televizija HS i HKBnet

More information

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije ROBERT ŠAJINA RAZVOJ 2D JAVA IGRE U LIBGDX I OVERLAP2D OKRUŽENJU Završni rad Pula, rujan, 2017. godine Sveučilište Jurja

More information

Bušilice nove generacije. ImpactDrill

Bušilice nove generacije. ImpactDrill NOVITET Bušilice nove generacije ImpactDrill Nove udarne bušilice od Bosch-a EasyImpact 550 EasyImpact 570 UniversalImpact 700 UniversalImpact 800 AdvancedImpact 900 Dostupna od 01.05.2017 2 Logika iza

More information

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Marijana Glavica Dobrica Pavlinušić http://bit.ly/ffzg-eprints Definicija

More information

Upotreba selektora. June 04

Upotreba selektora. June 04 Upotreba selektora programa KRONOS 1 Kronos sistem - razina 1 Podešavanje vremena LAMPEGGIANTI 1. Kada je pećnica uključena prvi put, ili u slučaju kvara ili prekida u napajanju, simbol SATA i odgovarajuća

More information

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT TRAJANJE AKCIJE 16.01.2019-28.02.2019 ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT Akcija sa poklonima Digitally signed by pki, pki, BOSCH, EMEA, BOSCH, EMEA, R, A, radivoje.stevanovic R, A, 2019.01.15 11:41:02

More information

STRUKTURNO KABLIRANJE

STRUKTURNO KABLIRANJE STRUKTURNO KABLIRANJE Sistematski pristup kabliranju Kreiranje hijerarhijski organizirane kabelske infrastrukture Za strukturno kabliranje potrebno je ispuniti: Generalnost ožičenja Zasidenost radnog područja

More information

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 3 DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode - Parametri - Povratne vrednosti - Dodela

More information

DETEKCIJA OBJEKTA UZ POMOĆ WEB KAMERE I OPENCV-A

DETEKCIJA OBJEKTA UZ POMOĆ WEB KAMERE I OPENCV-A SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA OSIJEK Preddiplomski sveučilišni studij računarstva DETEKCIJA OBJEKTA UZ POMOĆ WEB KAMERE

More information

Advertising on the Web

Advertising on the Web Advertising on the Web On-line algoritmi Off-line algoritam: ulazni podaci su dostupni na početku, algoritam može pristupati podacima u bilo kom redosljedu, na kraju se saopštava rezultat obrade On-line

More information

Uticaj parametara PID regulatora i vremenskog kašnjenja na odziv i amplitudno-faznu karakteristiku sistema Simulink

Uticaj parametara PID regulatora i vremenskog kašnjenja na odziv i amplitudno-faznu karakteristiku sistema Simulink LV6 Uticaj parametara PID regulatora i vremenskog kašnjenja na odziv i amplitudno-faznu karakteristiku sistema Simulink U automatizaciji objekta često koristimo upravljanje sa negativnom povratnom vezom

More information

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY Softverski sistem Survey za geodeziju, digitalnu topografiju i projektovanje u niskogradnji instalira se na sledeći način: 1. Instalirati grafičko okruženje pod

More information

IZRADA RAČUNALNE IGRE KORISTEĆI GAMEMAKER:STUDIO

IZRADA RAČUNALNE IGRE KORISTEĆI GAMEMAKER:STUDIO SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU ELEKTROTEHNIČKI FAKULTET OSIJEK Sveučilišni studij IZRADA RAČUNALNE IGRE KORISTEĆI GAMEMAKER:STUDIO Završni rad Luka Omrčen Osijek, 2016 SADRŽAJ 1. UVOD...

More information

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C INFOTEH-JAHORINA Vol. 10, Ref. E-I-15, p. 461-465, March 2011. Implementacija sparsnih matrica upotrebom listi u programskom jeziku C Đulaga Hadžić, Ministarstvo obrazovanja, nauke, kulture i sporta Tuzlanskog

More information

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o.

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. Šta je potrebno za ispravan rad programa? Da bi program FINBOLT 2007 ispravno i kvalitetno izvršavao zadaću koja je postavljena pred njega

More information

Mogudnosti za prilagođavanje

Mogudnosti za prilagođavanje Mogudnosti za prilagođavanje Shaun Martin World Wildlife Fund, Inc. 2012 All rights reserved. Mogudnosti za prilagođavanje Za koje ste primere aktivnosti prilagođavanja čuli, pročitali, ili iskusili? Mogudnosti

More information

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze Trening: Obzor 2020. - financijsko izvještavanje i osnovne ugovorne obveze Ana Ključarić, Obzor 2020. nacionalna osoba za kontakt za financijska pitanja PROGRAM DOGAĐANJA (9:30-15:00) 9:30 10:00 Registracija

More information

Naredba je uputa računalu za obavljanje određene operacije.

Naredba je uputa računalu za obavljanje određene operacije. OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene operacije. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Postupak pisanja programa zovemo programiranje. Programski

More information

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION VFR AIP Srbija / Crna Gora ENR 1.4 1 ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION 1. KLASIFIKACIJA VAZDUŠNOG PROSTORA

More information

ECONOMIC EVALUATION OF TOBACCO VARIETIES OF TOBACCO TYPE PRILEP EKONOMSKO OCJENIVANJE SORTE DUHANA TIPA PRILEP

ECONOMIC EVALUATION OF TOBACCO VARIETIES OF TOBACCO TYPE PRILEP EKONOMSKO OCJENIVANJE SORTE DUHANA TIPA PRILEP ECONOMIC EVALUATION OF TOBACCO VARIETIES OF TOBACCO TYPE PRILEP EKONOMSKO OCJENIVANJE SORTE DUHANA TIPA PRILEP M. Mitreski, A. Korubin-Aleksoska, J. Trajkoski, R. Mavroski ABSTRACT In general every agricultural

More information

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE 3309 Pursuant to Article 1021 paragraph 3 subparagraph 5 of the Maritime Code ("Official Gazette" No. 181/04 and 76/07) the Minister of the Sea, Transport

More information

STRUČNA PRAKSA B-PRO TEMA 13

STRUČNA PRAKSA B-PRO TEMA 13 MAŠINSKI FAKULTET U BEOGRADU Katedra za proizvodno mašinstvo STRUČNA PRAKSA B-PRO TEMA 13 MONTAŽA I SISTEM KVALITETA MONTAŽA Kratak opis montže i ispitivanja gotovog proizvoda. Dati izgled i sadržaj tehnološkog

More information

Sadržaj. Tekst Fontovi Boje Pozadine Grafika Animacija Pravopis Savjeti za izlaganje prezentacije

Sadržaj. Tekst Fontovi Boje Pozadine Grafika Animacija Pravopis Savjeti za izlaganje prezentacije Sadržaj Tekst Fontovi Boje Pozadine Grafika Animacija Pravopis Savjeti za izlaganje prezentacije Tekst 1 Izbjegavati preveliku količinu riječi jer vodi do pretjerano dugog teksta koji nije samo odbojan

More information

Primjer 3 Prikaz i interpretacija rezultata

Primjer 3 Prikaz i interpretacija rezultata Primjer 3 Prikaz i interpretacija rezultata - uđite u task Postprocessing - odaberite naredbu Results - odaberite prikaz Von Misesovih naprezanja: - odaberite iz popisa stavku 2 - B.C. 1.STRESS_2 i pomoću

More information

Pravljenje Screenshota. 1. Korak

Pravljenje Screenshota. 1. Korak Prvo i osnovno, da biste uspesno odradili ovaj tutorijal, morate imati instaliran GOM Player. Instalacija je vrlo jednostavna, i ovaj player u sebi sadrzi sve neophodne kodeke za pustanje video zapisa,

More information

PROCEDURALNO GENERIRANJE 3D SVIJETA U UNITY3D

PROCEDURALNO GENERIRANJE 3D SVIJETA U UNITY3D SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU ELEKTROTEHNIČKI FAKULTET Sveučilišni studij PROCEDURALNO GENERIRANJE 3D SVIJETA U UNITY3D Završni rad Vedran Brazdil Osijek, 2016. SADRŽAJ 1. UVOD... 1 1.1.

More information

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

STABLA ODLUČIVANJA. Jelena Jovanovic.   Web: STABLA ODLUČIVANJA Jelena Jovanovic Email: jeljov@gmail.com Web: http://jelenajovanovic.net 2 Zahvalnica: Ovi slajdovi su bazirani na materijalima pripremljenim za kurs Applied Modern Statistical Learning

More information

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine UNIVERZITETUBEOGRADU RUDARSKOGEOLOŠKIFAKULTET DEPARTMANZAHIDROGEOLOGIJU ZBORNIKRADOVA ZLATIBOR 1720.maj2012.godine XIVSRPSKISIMPOZIJUMOHIDROGEOLOGIJI ZBORNIKRADOVA IZDAVA: ZAIZDAVAA: TEHNIKIUREDNICI: TIRAŽ:

More information

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA DNEVNA KARTA DAILY TICKET 35 BAM / 3h / person RADNO VRIJEME OPENING HOURS 08:00-21:00 Besplatno za djecu do 6 godina

More information

Klasterizacija. NIKOLA MILIKIĆ URL:

Klasterizacija. NIKOLA MILIKIĆ   URL: Klasterizacija NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: http://nikola.milikic.info Klasterizacija Klasterizacija (eng. Clustering) spada u grupu tehnika nenadgledanog učenja i omogućava grupisanje

More information

RAZVOJ IPHONE APLIKACIJA POMOĆU PROGRAMSKOG JEZIKA SWIFT

RAZVOJ IPHONE APLIKACIJA POMOĆU PROGRAMSKOG JEZIKA SWIFT Sveučilište u Zagrebu Prirodoslovno-matematički fakultet Matematički odsjek Vanja Vuković RAZVOJ IPHONE APLIKACIJA POMOĆU PROGRAMSKOG JEZIKA SWIFT Diplomski rad Zagreb, rujan 2015. Ovaj diplomski rad obranjen

More information

CRNA GORA

CRNA GORA HOTEL PARK 4* POLOŽAJ: uz more u Boki kotorskoj, 12 km od Herceg-Novog. SADRŽAJI: 252 sobe, recepcija, bar, restoran, besplatno parkiralište, unutarnji i vanjski bazen s terasom za sunčanje, fitnes i SPA

More information

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Struktura indeksa: B-stablo.   ls/swd/btree/btree.html Struktura indeksa: B-stablo http://cis.stvincent.edu/html/tutoria ls/swd/btree/btree.html Uvod ISAM (Index-Sequential Access Method, IBM sredina 60-tih godina 20. veka) Nedostaci: sekvencijalno pretraživanje

More information

Struktura i organizacija baza podataka

Struktura i organizacija baza podataka Fakultet tehničkih nauka, DRA, Novi Sad Predmet: Struktura i organizacija baza podataka Dr Slavica Aleksić, Milanka Bjelica, Nikola Obrenović Primer radnik({mbr, Ime, Prz, Sef, Plt, God, Pre}, {Mbr}),

More information

Izrada 3D računalne igre

Izrada 3D računalne igre Završni rad br. 463/MM/2015 Izrada 3D računalne igre Hrvoje Stipan, 3717/601 Varaždin, rujan 2015. godine Odjel za Multimediju, oblikovanje i primjenu Završni rad br. 463/MM/2015 Izrada 3D računalne igre

More information

- Vežba 3 - UVOD U FLASH ANIMACIJA FRAME-BY-FRAME SHAPE TWEEN MOTION TWEEN

- Vežba 3 - UVOD U FLASH ANIMACIJA FRAME-BY-FRAME SHAPE TWEEN MOTION TWEEN - Vežba 3 - UVOD U FLASH ANIMACIJA FRAME-BY-FRAME SHAPE TWEEN MOTION TWEEN UVOD U FLASH Dizajneri Web strana najčešće koriste slike da bi privukli pažnju posetilaca Web lokacija. Priznaćete da slika može

More information

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ DIZAJN TRENINGA Model trening procesa FAZA DIZAJNA CILJEVI TRENINGA Vrste ciljeva treninga 1. Ciljevi učesnika u treningu 2. Ciljevi učenja Opisuju željene

More information

Iskustva video konferencija u školskim projektima

Iskustva video konferencija u školskim projektima Medicinska škola Ante Kuzmanića Zadar www.medskolazd.hr Iskustva video konferencija u školskim projektima Edin Kadić, profesor mentor Ante-Kuzmanic@medskolazd.hr Kreiranje ideje 2003. Administracija Učionice

More information

Korak X1 X2 X3 F O U R T W START {0,1}

Korak X1 X2 X3 F O U R T W START {0,1} 1) (8) Formulisati Traveling Salesman Problem (TSP) kao problem traženja. 2) (23) Dato je prostor stanja sa slike, sa početnim stanjem A i završnim stanjem Q. Broj na grani označava cijenu operatora, a

More information

PROCEDURALNO GENERIRANJE GRAFIČKIH OBJEKATA

PROCEDURALNO GENERIRANJE GRAFIČKIH OBJEKATA SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 689 PROCEDURALNO GENERIRANJE GRAFIČKIH OBJEKATA Marko Vrljičak Zagreb, lipanj 2014. Sadržaj Uvod... 2 1. Proceduralno generiranje

More information

Pokretanje (startovanje) programa Microsoft Word

Pokretanje (startovanje) programa Microsoft Word Šta je Microsoft Word? Microsoft Word je korisnički (aplikativni) program - tekst procesor, za unos, promenu, uređenje, skladištenje (čuvanje, arhiviranje) i štampanje dokumenta. Word je sastavni deo programskog

More information

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6. KOREKTAN PREVOD? - Reupotrebljiv softver? ( ne postoji prefiks RE u srpskom jeziku ) - Ponovo upotrebljiv softver? ( totalno bezveze ) - Upotrebljiv više puta? - Itd. PLAN RADA 1. Počnimo sa primerom!

More information

Statistička analiza algoritama za dinamičko upravljanje spremnikom

Statistička analiza algoritama za dinamičko upravljanje spremnikom SVEUČILIŠTE U ZAGREBU FAKULTET ELETROTEHNIKE I RAČUNARSTVA ZAVRŠNI ZADATAK br. 1716 Statistička analiza algoritama za dinamičko upravljanje spremnikom Nikola Sekulić Zagreb, lipanj 2011. Sadržaj: 1. Uvod...

More information

PE FORMAT (.EXE,.DLL)

PE FORMAT (.EXE,.DLL) SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA RAČUNALNA FORENZIKA PE FORMAT (.EXE,.DLL) Marko Veizović Zagreb, siječanj 2017. Sadržaj 1. Uvod... 1 2. PE format... 2 2.1. EXE i DLL datoteke...

More information

3. Obavljanje ulazno-izlaznih operacija, prekidni rad

3. Obavljanje ulazno-izlaznih operacija, prekidni rad 3. Obavljanje ulazno-izlaznih operacija, prekidni rad 3.1. Spajanje naprava u ra unalo Slika 3.1. Spajanje UI naprava na sabirnicu 3.2. Kori²tenje UI naprava radnim ekanjem Slika 3.2. Pristupni sklop UI

More information

Kooperativna meteorološka stanica za cestovni promet

Kooperativna meteorološka stanica za cestovni promet Kooperativna meteorološka stanica za cestovni promet Marko Gojić LED ELEKTRONIKA d.o.o. marko.gojic@led-elektronika.hr LED Elektronika d.o.o. Savska 102a, 10310 Ivanić Grad, Croatia tel: +385 1 4665 269

More information

OBLIKOVANJE WEB STRANICA Praktikum (laboratorijske vježbe) Haidi Božiković

OBLIKOVANJE WEB STRANICA Praktikum (laboratorijske vježbe) Haidi Božiković OBLIKOVANJE WEB STRANICA Praktikum (laboratorijske vježbe) Haidi Božiković SADRŽAJ 1 Obrada slika korištenjem programa GIMP... 3 1.1 Upoznavanje s okruženjem i alatima GIMP-a... 3 1.2 Rad s maskama...

More information

11 Analiza i dizajn informacionih sistema

11 Analiza i dizajn informacionih sistema 11 Analiza i dizajn informacionih sistema Informatika V.Prof.dr Kemal Hajdarević dipl.ing.el 25.4.2014 11:58:28 1 1. Kompjuter, Internet, i mrežne osnove 2. Kompjuterska industrija Informatika u stomatologiji

More information

INTEGRACIJA DODATNIH MOGUĆNOSTI U PROGRAMSKI SUSTAV MARKER

INTEGRACIJA DODATNIH MOGUĆNOSTI U PROGRAMSKI SUSTAV MARKER ZAVOD ZA ELEKTRONIKU, MIKROELEKTRONIKU, RAČUNALNE I INTELIGENTNE SUSTAVE FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SVEUČILIŠTE U ZAGREBU INTEGRACIJA DODATNIH MOGUĆNOSTI U PROGRAMSKI SUSTAV MARKER Damir Bučar,

More information

KRATKI PRIRUČNIK IZRADA MENTALNIH MAPA U PROGRAMU MS VISIO Bosiljka Jurjević

KRATKI PRIRUČNIK IZRADA MENTALNIH MAPA U PROGRAMU MS VISIO Bosiljka Jurjević KRATKI PRIRUČNIK IZRADA MENTALNIH MAPA U PROGRAMU MS VISIO 2007 Bosiljka Jurjević 3.11.2010. UKRATKO O MENTALNIM MAPAMA Mentalna mapa (mapa misli) je: - organizacijski alat za razmišljanje, - najjednostavniji

More information

Unity : Osnovni koncepti i razvoj 3D igre

Unity : Osnovni koncepti i razvoj 3D igre UNIVERZITET U NIŠU PRIRODNO-MATEMATIČKI FAKULTET DEPARTMAN ZA RAČUNARSKE NAUKE Unity : Osnovni koncepti i razvoj 3D igre MASTER RAD Mentor: dr Marko D. Petković Student: Miljan Mijić Niš, 2016. Šta je

More information

RANI BOOKING TURSKA LJETO 2017

RANI BOOKING TURSKA LJETO 2017 PUTNIČKA AGENCIJA FIBULA AIR TRAVEL AGENCY D.O.O. UL. FERHADIJA 24; 71000 SARAJEVO; BIH TEL:033/232523; 033/570700; E-MAIL: INFO@FIBULA.BA; FIBULA@BIH.NET.BA; WEB: WWW.FIBULA.BA SUDSKI REGISTAR: UF/I-1769/02,

More information

SAŽETAK. Ključne riječi: Animacija, After Effects, pokretna grafika, video

SAŽETAK. Ključne riječi: Animacija, After Effects, pokretna grafika, video SAŽETAK Video je danas jedan od najmoćnijih i najbrže rastućih medija. Njegova integracija u ostale medijske oblike raste iz dana u dan, a njegove su mogućnosti svakim danom sve veće. Tema ovog diplomskog

More information

KRATKI PRIRUČNIK IZRADA MENTALNIH MAPA U PROGRAMU MS VISIO Bosiljka Jurjević

KRATKI PRIRUČNIK IZRADA MENTALNIH MAPA U PROGRAMU MS VISIO Bosiljka Jurjević KRATKI PRIRUČNIK IZRADA MENTALNIH MAPA U PROGRAMU MS VISIO 2010 Bosiljka Jurjević 3.11.2010. UKRATKO O MENTALNIM MAPAMA Mentalna mapa (mapa misli) je: - organizacijski alat za razmišljanje, - najjednostavniji

More information

Primjeri pitanja iz 1. ili 2. skupine (za 2 ili 4 boda po pitanju) -

Primjeri pitanja iz 1. ili 2. skupine (za 2 ili 4 boda po pitanju) - Razvoj poslovnih aplikacija, EFO 1. Kolokvij pitanja Kolokvij će se sastojati od 12 pitanja, od toga će biti 3 skupine pitanja: 1. Skupina: 5 pitanja s zatvorenog tipa s ponuđenim odgovorima (svako pitanje

More information

RJEŠAVANJE BUGARSKOG SOLITERA

RJEŠAVANJE BUGARSKOG SOLITERA SVEUČILIŠTE U SPLITU PRIRODOSLOVNO MATEMATIČKI FAKULTET ZAVRŠNI RAD RJEŠAVANJE BUGARSKOG SOLITERA Bože Brečić Split, rujan 2015. Sadržaj 1. Uvod... 1 1.1. Povijest bugarskog solitera... 1 1.2. Slični

More information

Priprema podataka. NIKOLA MILIKIĆ URL:

Priprema podataka. NIKOLA MILIKIĆ   URL: Priprema podataka NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: http://nikola.milikic.info Normalizacija Normalizacija je svođenje vrednosti na neki opseg (obično 0-1) FishersIrisDataset.arff

More information

VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID

VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID SVEUČ ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5158 VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID Lovro Pejić Zagreb, lipanj 2017. Hvala svima koji su bili

More information

SVEUČILIŠTE U ZAGREBU FAKULTET PROMETNIH ZNANOSTI

SVEUČILIŠTE U ZAGREBU FAKULTET PROMETNIH ZNANOSTI SVEUČILIŠTE U ZAGREBU FAKULTET PROMETNIH ZNANOSTI Mario Ivković DEFINIRANJE BRZINE VOZILA U SUDARNOM PROCESU PRIMJENOM RAZLIČITIH METODA DIPLOMSKI RAD Zagreb, 2017. Sveučilište u Zagrebu Fakultet prometnih

More information

KABUPLAST, AGROPLAST, AGROSIL 2500

KABUPLAST, AGROPLAST, AGROSIL 2500 KABUPLAST, AGROPLAST, AGROSIL 2500 kabuplast - dvoslojne rebraste cijevi iz polietilena visoke gustoće (PEHD) za kabelsku zaštitu - proizvedene u skladu sa ÖVE/ÖNORM EN 61386-24:2011 - stijenka izvana

More information