Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[FreeBASIC] EliteTanks projekat

[es] :: Ostali programski jezici :: [FreeBASIC] EliteTanks projekat
(TOP topic, by Gojko Vujovic)
Strane: 1 2 3 4 5 ... Dalje > >>

[ Pregleda: 67589 | Odgovora: 267 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon [FreeBASIC] EliteTanks projekat07.03.2008. u 14:52 - pre 195 meseci
Pozdrav svima,

ova tema je namenjena projektu pod nazivom EliteTanks (to mi palo napamet, ako imate boljih ideja recite, pa da menjamo naziv) a tema projekta je izrada igre po uzoru na "tenkice" koje smo svi mi igrali nekad davno dok smo jos bili deca :)

elem, cilj projekta je da malo promovisemo FreeBasic na EliteSecurity forumima i da napravimo nesto korisno, da naucimo nesto novo iz toga i pre svega da se dobro zabavimo :D

ova igra moze da se napise bukvalno u jednom modulu (.bas-u) i nema potebe za nekim preteranim AI-em a pogotovu ne za scripting podrskom, ali mi cemo bas sve to da ubacimo u ovu igru, jer kao sto rekoh hocemo da naucimo nesto iz ovoga, a ne da "sto pre zavrsimo"...

inace, "engine" igre cemo kasnije izolovati, malo ga doterati i iskoristiti za neke kasnije poduhvate. a engine (neka "codename" bude EliteGameEngine) treba da bude sastavljen od sledecih delova/modula:

• GFX module - deo zaduzen za iscrtavanje na ekran, trebao bi da koristi double buffering tehniku i da ima neke objekte tipa sprite, animated stripe, layer i sl (dovoljno je proslediti objekat Draw funkciji i on ce biti nacrtan na trenutnoj poziciji, frejmu i slicno)
• SOUND module - za muziku i zvucne efekte, ja sam za to da se koristi BASS biblioteka (em je poznajem, em je free, em je super :D)
• AI module - za pocetak nek bude samo implementiran A* path finding algoritam (to nam jedino treba za EliteTanks)
• MAP module - za rad sa mapama - ucitavanje, generisanje minimape, kontrolisanje skrolovanja i slicno
• SCRIPTING module - podrska za skriptovanje, jezik treba da bude typeless, sa basic sintaksom i podrskom za objekte
• NET module - podrska za igranje preko mreze - ovo cemo kasnije da radimo, cisto da se zna da je u planu...

"pomocni" alati koji su potrebni:
• Map editor
• Script compiler (bolje je da skripte budu kompilovane nego interpretirane - brzina ucitavanja i izvrsavanja je bitna u ovom slucaju)

Sto se tice grafike za pocetak cemo da koristimo sprajtove iz SpriteLib GPL-a, a kasnije mozemo da uradimo i nesto nase (za pocetak nam je grafika najmanji problem...)


Projektu moze da se pridruzi ko god hoce, jedini uslovi su da taj neko dovoljno poznaje FreeBasic (koji je lako nauciti ukoliko imate nekog iskustva u qbasic-u, c-u, vb-u tj u bilo kom jeziku...) i da ozbiljno hoce da se ukljuci u rad na projektu.

za sada su ukljuceni sledeci clanovi (u zagradi je navedeno za sta je ko zaduzen):
stefanpn (AI,MAP Editor)
krcko (SCRIPTING, GFX)
Aleksandar Vasic (SOUND)

ukoliko ste zainteresovani da se prikljucite projektu mozete se za to obratiti u ovoj temi, samo navedite sta zelite i mozete da uradite.

sav source cemo objavljivati ovde na es-u, i delimicno ce se diskusija voditi u ovoj temi, ali ce uglavnom svi dogovri ici preko irc-a (#freebasic @ irc.elitesecurity.org) ili msn-a




[Ovu poruku je menjao Aleksandar Ružičić dana 13.03.2008. u 23:55 GMT+1]
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 15:18 - pre 195 meseci
Mozda nije lose da prvo sto pre zavrsite (naravno, da radi kako treba) pa da onda dodajete sve i svasta. Korisno po moral.

My 2c
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 15:57 - pre 195 meseci
pa pitanje je koliko ko ima slobodnog vremena i volje da trosi isto na programiranje, ja ga imam stvarno malo (fax, pos'o, studentski zivot :D) ali cu svo slobodno vreme uloziti u ovaj projekat pa kad bude gotov bice...

iz tih razloga nikakav timelimit nije i nece biti postavljan, jednostavno "kad bude gotovo bice" :)


mada to za podizanje morala je na mestu :)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



+7 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 16:43 - pre 195 meseci
Mislim da bi bilo dobro da ste odredili i IDE u kom ce da se radi. Recimo mene najvise nervira kad skinem neki kod i moram da ga prebacujem na IDE koje imam. Ja sam skinuo pre neki dan FbEdit IDE i mislim da je dobro (pogotovo za GUI programe) ...
Ovo da FreeBasic moze da se nauci za 2 dana ... neverujem. Ja recimo programiram profesionalno u VB6 i C++ zadnjih 5 godina a assembler znam skoro od kad sam bio mali , pa nebi mogao nista posebno da uradim u FreeBasicu za 2 dana (neke stvari koje radim u VB verovatno ni za 2 meseca).
Tu je stvar koliko ko ima iskustva u necemu (i uradjenog ili skupljenog koda)
Pa nebi bilo lose da stavite ovde neki kompleksniji kod koji demonstrira npr koriscenje spoljnjih dll fajlova (nisu sve API fn ubacene u FreeBasic) i kako se to linkuje.
Npr sta ako neko hoce da koristi neki svoj dll napisan u c jeziku i slicno.
Ne pisem ovo zbog sebe ... (iako ne znam mogao bi to da pronadjem brzo) ... al neko ko bi hteo da ucestvuje treba da ima bar neku osnovnu predstavu o FreeBasic jeziku , pogotovo sto pominjes koriscenje spoljnih biblioteka ...
Predlog
Razmislite da kompajlujete igru i kao dll sa jednom glavnom funkcijom kojoj bi se preneo hWnd glavnog prozora.
Ako napravite to obecavam da cu da vam napravim plug-in i ActiveX (u c++) za browsere pod windowsom da bi moglo da se igra i u browseru.
Pozdrav
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 17:01 - pre 195 meseci
pa ako imas programersko iskustva, i ako znas da razmisljas na "programerski nacin" onda ne bi trebao da imas problema da naucis novi jezik, jer nista novo ti ne ucis osim nove sintaxe, tu je gomila primera koja ti pomaze da se snadjes u novoj sintaksi a tu je i manual :) od cijeg kvaliteta zavisi koliko brzo neko moze da nauci taj jezik, recimo PHP manual je odlicno uradjen i meni je trebalo 4-5 dana da se snadjem u php-u i napisem prvu vecu aplikaciju u istom. nista novo ja tu nisam naucio osim php sintaxe, razmisljam isto i kao da resavam problem u vb-u, c-u ili pascalu (naravno svaki jezik je za nesto specifican i nudi ti laki nacin da uradis odredjeni posao od ostalih, ali sve sto znas da napises u jednom jeziku znas i u bilo kom drugom, samo da se malo izvezbas u novoj sintaksi...)

sto se tice koriscenja dll-ova imas primera u /examples/ a i u dokumentaciji


e da, i sto se tice IDE-a koristimo FBEdit, mislio sam da se to podrazumeva :)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



+7 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 17:38 - pre 195 meseci

Hvala ... sad si me prosvetlio
Ja sam postavljao pitanja kao sto bi to radio pocetnik ... i zbog njih.
Ja sam ucio (mislim) 5 programskih jezika do sad (asm,c++,vb,java,i c) i znam kako to ide.
Posle ucenja sintakse dolazi bolan i mucan period ucenja na greskama i upoznavanja IDE i kompajlera (i njegovih mana i vrlina).
Za neke stvari treba da se nauci i instalira jos ++ Npr ti si za PHP instalirao npr Apache (verovatno i mySQL) i citao njihovu dokumentaciju ucio da pravis baze i tabele itd. Slicno je i ko hoce da programira za MS SQL Server ...
Inace nije mi bila namera da obeshrabrujem ljude .... jedino mislim da se nesto bolje sagleda ako se gleda iz vise uglova , pa samim tim su i vece sanse da se uradi. FreeBasic je ozbiljan jezik ...
FbEdit i ja mislim da je najbolje FreeBasic IDE http://www.radasm.com/fbedit/
Imam i njegovo RadAsm za assemblere.
A cime debugujes , ovaj njihov debuger je komplikovan ...
Pozdrav Sale

 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 17:44 - pre 195 meseci
sto se tice formata MAP fajlova, moje predlog je sledeci:

binarni fajl u little endian formatu cija struktura izgleda ovako (uglaste zagrade prestavljaju 1 byte, viticaste vise bajtova a "normalne" prestavljaju zero terminated wide string tip):
Code:

{HEADER}{DATA}

gde je {HEADER}:
[E][L][I][T][E][M][A][P] {VERSION:32b} (map name) {WIDTH:16b} {HEIGHT:16b} {HASH:32b} {FLAGS:32b}

a {DATA} niz bajtova:
[0,0][0,1]...[0,WIDTH-1][1,0][1,1]...[1,WIDTH-1]...[HEIGHT-1,WIDTH-1]



objasnjenje:

VERSION - 32bitni unsigned integer koji predstavlja verziju ELITEMAP formata (verovatno necemo menjati format, ali za svaki slucaj)
map name - naziv mape (wide string kao sto sam rekao, u LE 16bit Unicode formatu)
WIDTH - 16bitni unsigned integer koji predstavlja sirinu mape
HEIGHT - 16bitni unsigned integer koji predstavlja visinu mape
HASH- 32bitni unsigned integer koji predstavlja hash vrednost mape (tj DATA byte niza) - ovo cemo koristiti kasnije kad bude bio implementiran online sistem igranja (za sada moze da bude 0 dok ne odlucimo koji hash algoritam da koristimo)
FLAGS - 32bitni unsigned integer koji predstavlja razne flegove, recimo jedan bajt moze biti rezervisan za tileset index (koji set slicica se koristi u mapi) i slicno...

jel ima neko primedbi, sugestija?

ako ne, onda stefane zasuci rukave i pocni :)
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 17:46 - pre 195 meseci
Citat:
Eurora3D Team:A cime debugujes , ovaj njihov debuger je komplikovan ...

pa i nije komplikovan nesto mnogo :)
to je ustvari GDB (GNU Debugger) a Insight je samo GUI za GDB... snadjes se brzo :)

 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.213.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 17:57 - pre 195 meseci
Predlazem da se u map datoteku doda i neki komentar o datoteci

Code:

{HEADER}{DATA}

gde je {HEADER}:
[E][L][I][T][E][M][A][P] {VERSION:32b} (map name) {WIDTH:16b} {HEIGHT:16b} {HASH:32b} {FLAGS:32b}

a {DATA} niz bajtova:
[0,0][0,1]...[0,WIDTH-1][1,0][1,1]...[1,WIDTH-1]...[HEIGHT-1,WIDTH-1]
{COMMENT}


Evo i ovde originalnih tenkica, ako neko nije video tamo: Tenkovi i emulator

Mozda je ova tema vise za GameDev.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 18:14 - pre 195 meseci
moze i comment da se doda, s tim sto to treba da bude opciono, moze npr jedan bit u FLAGS integeru da znaci ima komentara/nema komentara, a ako ima komentara onda on treba da bude izmedju {HEADER} i {DATA}, nekako mi nije dobra ideja da bilo sta ide posle DATA...

znaci od 32 flega iskoristili smo do sad 5, prva 4 formiraju tileset index, a peti oznacava prisustvo komentara.


sto se tice komentara da je tema za GameDev, verovatno si u pravu, ali ipak mislim da je bolje da bude ovde, bar dok je ne zavrsimo, a kasnije moze da se prebaci u GameDev, jer jedan od razloga sto ovo radimo je da priblizimo FreeBasic onima koji jos nisu culi za njega, a to cemo najbolje da uradimo (tj uticacemo na najveci broj ljudi) ovde jer su na GameDevu-u uglavnom C\C++ programeri...

[Ovu poruku je menjao Aleksandar Ružičić dana 07.03.2008. u 19:44 GMT+1]
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 19:14 - pre 195 meseci
evo, konacno sam ispodesavao FBEdit kako mi odgovara i pocecu da radim na kompajleru za FBScript, tacnije prvo cu da napisem TokGen - alat za generisanje leksickih parsera...

evo moje VS-like teme za FBEdit:
Code:

[Themes]
.
.
.
6=Visual Studio,8388608,255,0,0,0,0,0,0,0,0,268435584,128,8388608,8404992,8421376,0,0,0,16777215,0,10485760,16777215,37781504,64,0,16777215,16777215,15329769,16777215,15132390,0,0,16777215,0,16777215,0,12644592,0,12644592,0,4194432


samo sto sam ja sve tokene ubacio u C0, C1, C10 i C11 grupe, pa mi sad [Edit] izgleda ovako:
Code:

EditFont=-15,0,Courier New
LnrFont=-12,0,Courier New
EditOpt=4,0,0,1,0,1,4,1,0,1,1,1,1,0,0,1,1,1,1,1
CodeFiles=.bas.bi.
CaseConvert=CWPp
CustColors=12644592,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Colors=8388608,255,0,0,0,0,0,0,0,0,268435584,128,8388608,8404992,8421376,0,0,0,0
C0="abs Abs access Access acos alias Alias allocate And Any append Append as As asc Asc asin asm atan2 atn Atn base Base Basic beep Beep bin bin$ Bin$ binary Binary bit bitreset bitset bload BLoad bsave BSave byref ByRef byval ByVal call Call callocate Calls Case Cast CByt cbyte CCur cdbl CDbl cdecl Cdecl chain Chain chdir ChDir ChDrive Chr chr$ Chr$ cint CInt circle clear Clear clng CLng clngint close Close cls Cls color Color Com command command$ Command$ common Common CompileLine CompileLine$ condbroadcast condcreate conddestroy condsignal condwait Const Constructor continue cos Cos cshort csign csng CSng csrlin CsrLin cubyte cuint culngint cunsg curdir CurDir$ cushort Cvb Cvc cvd Cvd cvi Cvi cvl Cvl cvs Cvs data Data date date$ Date$ deallocate Declare Def defbyte DefCur DefDbl defined DefInt DefLng defshort DefSng DefStr defubyte defuint defushort Destructor dim Dim dir dir$ Dir$ DisableBOPT DisableFold DisableIncDec DisablePeriodMsg DisableShifts DisableTest DisableTrim do Do draw dylibfree dylibload dylibsymbol dynamic Else ElseIf End EndIf enum environ Environ environ$ Environ$ eof Eof eqv Eqv erase Erase ErDev ErDev$ Erl err Err error Error Error$ escape Event exec exepath exit Exit exp Exp explicit Explicit export extern False Field FileAttr Files Fix fix flip For for Fortran Fre fre FreeFile freefile Function Get get getkey getmouse Go GoSub gosub GoTo goto hex Hex$ hex$ hibyte hiword If iif Imp imp InKey$ inkey$ Inp inp Input input Input$ input$ Instr instr Int int IoCtl IoCtl$ Is is Key Kill kill LBound lbound lcase LCase$ lcase$ left Left$ left$ Len len Let let Lib lib Line line LineNumber List lobyte Loc loc Local local Locate locate Lock lock Lof lof Log log Loop loop loword LPos LPrint LSet lset ltrim LTrim$ ltrim$ mid mid$ Mkb$ Mkc$ mkd Mkd$ mkd$ MkDir mkdir mki Mki$ mki$ mkl Mkl$ mkl$ mklongint mks Mks$ mks$ mkshort Mod mod multikey mutexcreate mutexdestroy mutexlock mutexunlock Name name Namespace Next next Not Null oct Oct$ oct$ Off Offset On on once Open open Operator Option option Or Out out Output output overload paint palette Pascal pascal pcopy Peek peek PeekByte PeekCurr peeki PeekLong peeks PeekWord Pen Play pmap point Pointer Poke poke PokeByte PokeCurr pokei PokeLong pokes PokeWord Pos pos Preserve preserve preset Print private procptr Property pset public Put put Random random Randomize randomize Read read reallocate ReDim redim Rem Reset reset Restore restore Resume resume resume Return return rgb right Right$ right$ RmDir rmdir Rnd rnd Rol Ror RSet rset rtrim RTrim$ rtrim$ Run run Sadd sadd Scope Screen screen screencopy screeninfo screenlock screenptr screenres screenset screenunlock Seek seek Seg Seg$ Select setenviron SetMem Sgn sgn Shared shared Shell shell Shl Shr Signal Sin sin sizeof Sleep sleep Sound space Space$ space$ Spc spc Sqr sqr Sseg Ssegadd Stack Static static Stdcall stdcall Step step Stick Stop stop Str Str$ str$ strcat strchr strcmp strcpy Strig String$ string$ strlen strncat strncmp strncpy strptr strrchr strstr Sub swap Syscall system Tab tab Tan tan Test TestNot Then threadcreate threadwait time Time$ time$ Timer timer To to trim Trim$ trim$ True Type UBound ubound ucase UCase$ ucase$ union unlock Until until Using using va_arg va_first va_next Val val val64 valint Var VarPtr varptr VarPtr$ VarSeg view wait wend while width WinCon window windowtitle WinGui with write Xor "
C1="#define #else #elseif #endif #endmacro #error #if #ifdef #ifndef #inclib #include #libpath #line #macro #pragma #print #undef "
C2=""
C3=""
C4=""
C5=""
C6=""
C7=""
C8=""
C9=""
C10="#define #include ACCELERATORS ALT AUTOCHECKBOX AUTORADIOBUTTON BEGIN BITMAP BLOCK CAPTION CLASS COMBOBOX CONTROL CURSOR DIALOGEX DISCARDABLE EDITTEXT END EXSTYLE FALSE FILEOS FILETYPE FILEVERSION FONT GROUPBOX ICON LISTBOX LTEXT MENU MENUITEM NOINVERT NULL POPUP PRODUCTVERSION PUSHBUTTON SEPARATOR SHIFT STRINGTABLE STYLE TRUE VALUE VERSIONINFO VIRTKEY "
C11="__DATE__ __FB_BIGENDIAN__ __FB_DEBUG__ __FB_DOS__ __FB_ERR__ __FB_LANG__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__ __FB_MT__ __FB_OPTION_BYVAL__ __FB_OPTION_DYNAMIC__ __FB_OPTION_ESCAPE__ __FB_OPTION_EXPLICIT__ __FB_OPTION_PRIVATE__ __FB_OUT_DLL__ __FB_OUT_EXE__ __FB_OUT_LIB__ __FB_OUT_OBJ__ __FB_SIGNATURE__ __FB_VER_MAJOR__ __FB_VER_MINOR__ __FB_VER_PATCH__ __FB_VERSION__ __FB_WIN32__ __FILE__ __File_Nq__ __FUNCTION__ __Function_Nq__ __LINE__ __PATH__ __TIME__ "
C12=""
C13=""
C14=""
C15=""
C16=""
C17=""
C18=""
C19=""

 
Odgovor na temu

steve585
Stevan Stanić
Project Manager
Zagreb

Član broj: 131815
Poruke: 281
*.xnet.hr.



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 20:14 - pre 195 meseci
Rado bih se ukljucio, ali nikad do sada nisam radio sa Free Basic-om. Instalirao sam, FreeBasicEditor, pa cu pokusaati skontati o cemu se radi.
steve585
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



+7 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 20:19 - pre 195 meseci
Code:

2=Black Night,16744448,16744448,16744448,8421440,16711680,33521664,16744448,16744448,16744448,33521664,285179904,16744448,4227327,16711680,16711680,16711680,65535,65535,0,12632256,10485760,16777215,8454143,16777215,255,4868682,15420,3158064,12632256,8421504,8388608,8421504,15263976,0,15329769,0,12644592,0,12644592,0,4194432

Ovako cuvas oci :) ... jos ako imas TFT ...
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 20:52 - pre 195 meseci
ma koje oci, one su odavno otisle u aut (vec godinu dana nosim -0.5 dioptriju), imam TFT ali ipak navika je navika :)

@steve585: ako ti se svidi freebasic (verujem da hoce) mozes se prikljuciti kad hoces, uvek ce imati nesto da se radi (ako ne u ovom onda nekom drugom projektu)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 21:20 - pre 195 meseci
Cek malo, sta prestavlja ono u data delu map fajla? Obelezavas svaki pixel da li je teren ili ne? Ili samo navods koji jeste?

Trebalo bi odluciti da li je teren konveksan ili ne, odnosno da li moze postojati deo koji se "nadnosi" na ostatak. Kod tenkova obicno nije tako, vec u tom slucaju "zemlja" padne dole. Ako hocete tako, onda teren mozete jednostavno definisati visinama na svakoj koloni piksela.

Nadam se da je ikom jasno sta sam hteo da kazem, skroz sam zakomplikovao a mrzelo me crtati.. :)
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.213.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 22:20 - pre 195 meseci
Mmm... Nije ovo teren vec mapa(ovo je 2D aplikacija) tako da nema visine...
Mapa je u stvari matrica u koju su upisane vrednosti koje oznacavaju sta se nalazi na poljima od 32x32 pixela.
Znaci nesto kao ovo:
Code:

 _______________________
| E1|   |   |   |   | E2|
|___|___|___|___|___|___|
| P | P |   | P | P | P |
|___|___|___|___|___|___|
| P | P |   |   |   |   |
|___|___|___|___|___|___|
| c |   |   | P | P |   |
|_z_|___|___|___|___|___|
|   |   |   | P |   |   |
|___|___|___|___|___|___|
| P |   | P | P |   | P |
|___|___|___|___|___|___|
|   |   |   |   |   |   |
|___|___|___|___|___|___|
|   | T | O |   |   |   |
|___|___|___|___|___|___|

Gde je
T = tenk
P = prepreka
O = ptica
E1 = neprijatelj 1
E2 = neprijatelj 2
C = pesak
Z = zbun
S' tim sto cemo mi to P(prepreka) predstaviti kao 1 ili 2 ili 3 ili ... u zavisnosti od toga koja je prepreka u pitanju.

EDIT: Ruza me je prosvetlio, tako da sad imamo za svako polje po dva bajta, da mozemo imati delove koji se "nadnose".

[Ovu poruku je menjao stefanpn dana 07.03.2008. u 23:53 GMT+1]

[Ovu poruku je menjao stefanpn dana 07.03.2008. u 23:54 GMT+1]
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 22:24 - pre 195 meseci
ja mislim da sam razumeo sta si hteo da kazes :)

i u originalnim tenkicima ima "konveksnih" delova, tj imas kao onu "kamuflazu" koja predstavlja zbun, i mozes da prodjes ispod njega (tenkic se nalazi ispod tog zbuna, koji je mestimicno providan pa lepo vidis da je tenkic ispod)
ja sam i to imao u vidu, i to se uklapa u ovaj format map fajla.

sto se tice DATA sekcije, to je niz bajtova koji predstavljaju polja, a ne pixele (polje ce biti mozda 30x30px ili nesto slicno, videcemo). i svaki taj bajt ustvari sadrzi dve vrednosti (2 nibble-a), prva 4bita predstavljaju index "donjeg" elementa a druga 4bita predstavljaju index "gornjeg" elementa (koji naravno moze biti izostavljen). i kada se crta frejm prvo se iscrtaju sva polja ali crta se samo donji element, onda se iscrtaju svi sprajtovi i na kraju se za svako polje iscrta gornji element (naravno ovo ce biti optimizovano, jer nema potrebe da se drugi put radi ceo For .. Next, najverovatnije ce se kad se ucitava mapa kreirati i pomocni niz koji ce sadrzati indexe onih polja koja imaju podesene elemente - tako mi je nekako najlogicnije)

e sad, ova podela bajta na dva dela od 4bita ogranicava broj mogucih elemenata koji je u ovom slucaju 2^4 = 16 za donji element i 15 za gornji (kada su druga cetiri bita = 0 onda nema gornjeg elementa)...

mozda je bolje da za donji element rezervisemo 7 bitova, pri cemu je MSB rezervisan kao fleg koji oznacava pristustvo/odusustvo gornjeg elementa, e sad ukoliko nema gornjeg elementa (prvi bit = 0) onda sledecih 7 bitova (tacnije ceo taj bajt) predstavljaju index elementa (time dobijamo 2^7 = 128 razlicitih elemenata), a ukoliko je msb podesen onda je trenutni bajt pracen sa jos jednim bajtom koji predstavlja index (ovog puta 255 razlicitih vrednosti) gornjeg elementa.
ovo jeste bolje sto se tice broja mogucih slicica (iako je za tenkice sasvim dovoljno 16 razlicitih elemenata) ali je malo teze za ucitavanje (ne moze jednostavno da se ucita sve u byte niz), mada uz For petlju ni ovo nije tesko ucitati...

neka stefan odluci :)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 22:25 - pre 195 meseci
OK, onda sam ja pogresno skontao o cemu se radi u igri :)
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 22:36 - pre 195 meseci
nije stvar samo u ovoj konkretnoj igri, hocemo da napravimo nesto sto se kasnije moze primenljivati i na druge tipove igara...
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.213.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat07.03.2008. u 23:01 - pre 195 meseci
Informacija za sve posetioce: chat o freebasic-u i ovoj temi na http://www.elitesecurity.org/chat na kanalu #freebasic



[Ovu poruku je menjao stefanpn dana 08.03.2008. u 00:45 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Ostali programski jezici :: [FreeBASIC] EliteTanks projekat
(TOP topic, by Gojko Vujovic)
Strane: 1 2 3 4 5 ... Dalje > >>

[ Pregleda: 67589 | Odgovora: 267 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.