• Apgrejdovali smo forum na XenForo 2.1.1, ukoliko imate predloga vezanih za izgled ili funkcionalnost foruma, ili ukoliko naletite na neki problem, javite nam OVDE

    DEFINISALI SMO PRAVILA FORUMA. Pročitajte ih, pojaviće se automatski kada krenete da čitate nešto!

XNA Programiranje Igara | Tutorijal #02 | Prvi program

Uni

PCAXE Addicted
Učlanjen(a)
31.08.2018.
Poruka
2.469
Rezultat reagovanja
984
Moja konfiguracija
PC / Laptop Name:
Lenovo ThinkPad X250 - i5 5300U/8GB/256GB EVO 860/6 Cell
Mice & keyboard:
Bloody V7M & Stock Thinkpad X250 Keyboard
OS & Browser:
Windows 10 + Microsoft Edge | ArcoLinux + i3 + Mozilla Firefox Quantum
Pre svega da vam se zahvalim što ste podržali prethodni tutorijal u velikoj meri (nije nešto, ali odazvali ste se više nego na GIMP :japonosan:). Ukoliko ste propustili prethodni tutorijal, pozivam vas da pogledate, a svaki u seriji ovih možete pronaći unosom sledećih reči, bez navodnika : "#xna-gwid" u polje "Pretraga...".

Šta ćemo danas obraditi?
Danas, cilj je da obradimo par osnova C# programskog jezika. Konkretno, objasniću metode, biblioteke, klase, atribute, ispisivanje teksta i pokretanje i stvaranje novog projekta. Ako ste spremni, 'ajde da pocnemo!

Kreiranje prvog programa
Sada kad imamo alat, započnimo pravo programiranje.

Pre svega, pokrenite Visual Studio. Nakon toga, kliknimo na File, zatim postavimo strelicu kursora preko polja New, i na samom kraju kliknimo Project. Novi ekran će se prikazati, a mi ćemo odabrati u meniju Recent, polje Visual C#. Ovde će imati nekoliko tipova aplikacije, ali za sada smo zainteresovani samo i isključivo za "Console App (.NET Framework)". Imenujte vaš projekat, u polju "Name" kako god vi želite, a polje "Solution" će automatski zadržati to ime. Takođe, odaberite lokaciju u kojoj želite da sačuvate vaš projekat. Ovo može biti bilo šta, opet po vašem izboru. Za kraj pritisnite "OK" i kreiranje je završeno.

Sada se verovatno pitate koja je razlika izmedju rešenja (solution) i projekta (project). Rešenje predstavlja skup više projekata, povezanih u jednu celinu. Recimo Control Panel predstavlja deo Windows-a, kao i File Explorer, pa su oni povezani u jednu celinu. U ovom primeru, Windows bi bio rešenje, a File Explorer i Control Panel projekti.

Sada ćemo malo protumačiti sav zbunjujući kod koji vidimo na ekranu, sličan citatu ispod.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ImeProjekta
{
-----class Program
-----{
--------static void Main(string[] args)
--------{
--------}
-----}
}
Prvo što nam upada u oko, jeste više linija koje počinju ključnom reči "using". Ključne reči u C#-u su jedinstvene, magične reči koje ne možemo koristiti van konteksta njihove namene. Kada program vidi reč using, to signalizira da je neko već napisao gomilu koda, koji nam pomaže i olakšava stvaranje naše aplikacije. U ovom kodu sadrže se nove komande, poput komandi za ispisivanje teksta.

Prethodno pomenute gomile koda, radi lakšeg snalaženja i bolje organizacije, grupisane su u biblioteke (.dll fajlove tj. namespace) kao što System ili System.Linq. Da bismo naš kod vezali za ceo projekat, a zatim i rešenje, stvaramo svoju biblioteku nazvanu po imenu projekta. Primetićete da koristimo Pascal Case za ovo ;)

Klase (Class) su takodje ključni deo C# i celog OOP sistema. U klasama definišemo objekte, sada je to ceo program ali kasnije ćemo definisati mnogo više. Sav kod koji će program iskoristiti mora biti vezan za glavnu klasu, u ovom slučaju je to klasa Program.

Metode ili funkcije (methods) jesu blokovi koda čiji je zadatak da izvrše određenu radnju. Primetićete da postoji još par reči ispred naziva Main, kao i iza njega, a to su atributi metode. Programi koji su pisani u C# se pokreću putem Main metode, tipa "void", pa su svi ovi atributi potrebni i određuju polaznu tačku, te ih nemojte menjati.

Još jedna stvar koju ste primetili, jesu vitičaste zagrade, obične zagrade, kao i simbol tačka-zapeta. Ovo jesu interpunkcijski znakovi koje program tumači na drugačiji način od nas. Kod ne raspoznaje nove redove i različite funkcije, kao čovek. Sav kod mora biti ograničen jedan od drugog. Svaku liniju koda moramo ograničiti znakom tačka-zapeta [ ; ]. Ovo znači da možemo pisati jednu liniju koda u više redova, sve dokle ne stavimo znak tačka-zapeta.
Kod funkcija, klasa i biblioteka je ovo drugačije. One se ograničavaju parom vitičastih zagrada, jer ih čine blokovi koda. Svaki blok koda započećemo otvorenom vitičastom zagradom (velikom zagradom) [ { ], a završiti zatvorenom vitičastom zagradom [ } ]. Svi atributi koji bliže određuju klasu, funkciju ili biblioteku sadrže se u običnim zagradama, mada o tome ćemo više govoriti kasnije.

Pokretanje programa, davanje instrukcija
Sada kada imamo svoj prvi program kreiran, još uvek ne znamo šta on radi. Da bismo pokrenuli program, pritisnućemo dugme Start koje izgleda kao zelena strelica usmerena udesno. Ne vidite ništa? Pokušajte još par puta.
Primetićete da je program pokrenuo crni prozor, sličan Command Prompt prozoru. Ovaj alat zasad deluje da ne radi ništa, ali zapravo je podešeno toliko puno stvari, poput automatskog zatvaranja, bolje pozadine, boje teksta, veličine prozora i slično, samo što je sve to uređeno u jednom od imenskih prostora.

Program ne izgleda zanimljivo, zar ne? Hajde da uradimo nešto!
U metodi Main, dodajte sledeće :
Console.WriteLine("Android VS iOS");
Sada pokrenimo ovaj program, pritiskom na dugme Start. Primećujete sličan prozor kao i prošli put, mada ako pogledate pažljivo, ispisan je tekst "Android VS iOS", bez navodnika. Sada ćemo protumačiti ovaj kod.

Console jeste klasa koja je deo biblioteke System. Ona sadrži veliki broj atributa i metoda, pa putem njih možemo ispisati tekst, zameniti boju kozole, promeniti boju teksta, odrediti veličinu prozora i obaviti mnoge druge akcije.

U ovom primeru, koristimo metodu WriteLine koja ispisuje tekst u novom redu. Slična po nazivu, jeste metoda Write. Metoda Write za razliku od WriteLine ispisuje tekst u istoj liniji. Možemo videti da obe imaju atribute. Konkretno atribut koji koristimo jeste rečenica, karakter ili reč. U C# jeziku, svaka reč, slovo ili rečenica navodi se pod znacima navoda, u suprotnom program neće funkcionisati očekivano.

I dalje, ne možemo videti rezultat programa kako treba. Da bismo ovo popravili, dodajte sledeću liniju na kraj metode Main.
Console.ReadKey();
Ova linija čeka za unos korisnika, konkretno bilo koja tipka na tastaturi je dovoljna. Nakon izvršenog koda, program se automatski zatvara, te ćemo ovako praktično omogućiti zatvaranje alata pritiskom bilo kojeg tastera. Postoji još jedna slična metoda, metoda ReadLine, ali ova čeka pritisak tipke Enter, te reaguje samo na njega.

Šta dalje?
Ovo je bio još jedan malo dosadniji tutorijal, većinski teoretskog karaktera. Sada ste u stanju da kreirate čuveni "Hello World!" alat, koji ispisuje tekst na ekranu, ali i čeka na korisnički unos. Možda nije perfektan, ali znate više nego 95% ljudi koji koriste računar danas ;)
Očekujte još jedan tutorijal danas, pošto sam limitiran brojem reči po postu na forumu :)

Evo da vam dam neki prost domaći, da vidimo da li možete da ga uradite samostalno :
Ispisati 3 činjenice o C# programskom jeziku u 3 zasebna reda, zatim upitati korisnika da pritisne bilo koje dugme da bi čuo još. Nakon korisničkog unosa, ispisat još dve činjenice o C#-u u istom redu, razdvojenih zapetom. Upitati korisnika za unos putem pritiska tipke Enter, završiti program.

Prekopirati sav kod i ostaviti ga u komentaru u vidu citata :)
Srećno vam kucanje! ;)

Inače, neće vam dati forum da u citat unesete razmake gledano sleva u Visual Studio alatu, npr :

[prazan prostor]class Program

već, će izgledati kao :

class Program

Zato dodajte crtice umesto razmaka, čitkije je. Ili koristite PasteBin (hteo sam i ja, ali sam mislio ovako ce biti bolje) :)
 
Poslednja izmena:

zemun

PCAXE Member
Učlanjen(a)
07.02.2012.
Poruka
373
Rezultat reagovanja
246
Moja konfiguracija
Ajde uradi screenshot gde ovo da upisemo. Dobijam greske kada kliknem na Start, nesto nisam uradio kako treba. :)


Послато са SM-G965F уз помоћ Тапатока
 

Uni

PCAXE Addicted
Učlanjen(a)
31.08.2018.
Poruka
2.469
Rezultat reagovanja
984
Moja konfiguracija
PC / Laptop Name:
Lenovo ThinkPad X250 - i5 5300U/8GB/256GB EVO 860/6 Cell
Mice & keyboard:
Bloody V7M & Stock Thinkpad X250 Keyboard
OS & Browser:
Windows 10 + Microsoft Edge | ArcoLinux + i3 + Mozilla Firefox Quantum
Evo izvoli :)
AndroidVSiOS.png
Sve linije dodajes redom kojim treba da se izvrse, na primer prvo zelis da ispise tekst, a tek posle da se zatvori, zato prvo dodajemo kod za ispisivanje teksta a posle za zatvaranje. Necemo citati knjigu iz sredine, nego od prve do poslenje strane ;)

Znaci ne dodajemo u atribute, nego u blok (viticaste zagrade) ;)
 

zemun

PCAXE Member
Učlanjen(a)
07.02.2012.
Poruka
373
Rezultat reagovanja
246
Moja konfiguracija
Eeeee to je vec nesto, sad je bolje :) mislim da bi trebao prvih par dana da ubacujes screenshot jer smo tek pocetnici :) za mene ovo je nesto potpuno novo :) tako da bi dosta pomogao screenshot gde upisati i kako treba da izgleda, naravno da je tebi to sve prosto ali sa strane pocetnika ovo su spanska sela. :)

Послато са SM-G965F уз помоћ Тапатока
 

Uni

PCAXE Addicted
Učlanjen(a)
31.08.2018.
Poruka
2.469
Rezultat reagovanja
984
Moja konfiguracija
PC / Laptop Name:
Lenovo ThinkPad X250 - i5 5300U/8GB/256GB EVO 860/6 Cell
Mice & keyboard:
Bloody V7M & Stock Thinkpad X250 Keyboard
OS & Browser:
Windows 10 + Microsoft Edge | ArcoLinux + i3 + Mozilla Firefox Quantum
Ma nista, ubacivacu, trebao mi je neki odgovor da znam kako cemo da radimo. Radim vec na novom. Meni je bilo dosta tesko da razumem mnogo stvari iz knjiga jer su preskakali teme, tipa napise mi : Point (4,7) u Console aplikaciji, a Point je namenjen za vizuelno programiranje jer ga odredjuju X i Y koordinate, pa zamisljam u glavi sta i kako. Zato sad pokusavam vama da objasnim sve sto se pominje u kodu, npr. sta je metoda, a sta klasa, cemu sluzi ovaj using i tutorijali deluju kao da nista novo ne naucis, a u stvari stices znanje koje ce ti trebati za tipa 10 lekcija. ;)
 
Vrh