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 6 ... Dalje > >>

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: [FreeBASIC] EliteTanks projekat08.03.2008. u 00:53 - pre 195 meseci
Ili, ako koristite neki irc klijent - server irc.elitesecurity.org
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.213.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat08.03.2008. u 02:11 - pre 195 meseci
Mislim da bi tema trebala da se preimenuje iz "[FreeBasic] EliteTanks projekat" u "[FreeBasic] EliteTanks projekt", nekako mi lepse zvuci...



[Ovu poruku je menjao Aleksandar Ružičić dana 06.04.2008. u 18:09 GMT+1]
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat08.03.2008. u 13:20 - pre 195 meseci
eo ja bi da se prikljucim ali ne znam koliko cu moci da pomognem :D
 
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 projekat08.03.2008. u 14:30 - pre 195 meseci
sta bi hteo da radis?
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat08.03.2008. u 16:25 - pre 195 meseci
pa jedino sto sam radio od ovoga je,sound sa bibliotekom bass ;)
 
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 projekat09.03.2008. u 15:45 - pre 195 meseci
ok, onda ti radi funkcije za zvuk!

evo otprilike sta je potrebno:
• mogucnost pustanja "background" muzike (potrebna je kontrola jacine zvuka, "auto repeat", nasumicno odabiranje numera iz liste koje moze da se iskljuci takko da se pesme pustaju redom u kom se nalaze u listi)
• funkcije za zvucne efekte, pri cemu treba jedna f-ja koja se zove (npr) PlayFX koja prima 4 parametra od koja su tri opciona:
Code:
Declare Sub PlayFX(effect As SoundEffects, x As Single = CENTER_X, y As Single = CENTER_Y, volume = -1)

• effect - id zvucnog effekta (SoundEffects je Enum koji sadrzi sve zvukove igre)
• x - x pozicija na ekranu, ovo koristi da podesis balance, tj ako je blize levoj ivici onda se glasnije cuje na levom zvucniku, odnosno na desnom ako je blize desnoj ivici
• y - y pozicija na ekranu, pogledaj na www.un4seen.com na forumu sam pre nekog vremena naisao na nacin kako da odredis koliko ima zvucnika, ako ima samo dva onda y parametar zanemarujes, ukoliko ima vise onda i y uzimas u obzir (ako je blize gornjoj ivici onda je jace na front zvucnicima, ako je blize donjoj onda na rear)
• sto se tice CENTER_X i CENTER_Y to ce biti vrednosti definisane u glavnom modulu (game.bas) a predstavljace koordinate centra ekrana (ovo ce se definisati u zavisnosti od velicine mape, tj dela mape koji je vidljiv na ekranu), takodje bice definisane i FRAME_WIDTH i FRAME_HEIGHT (koji oznacavaju velicinu frejma, tj dela mape koji je vidljiv)
• volume - jacina zvucnog efekta, ukoliko je -1 onda koristi promenljivu FX_VOLUME_LEVEL koja ce sadrzati jacinu zvucnih efekata koja je podesena u Options


dok testiras ti definisi ove konstante i promenljive koje sam naveo, da imas sa cime da radis, kasnije cemo sve to povezati i prebaciti te deklaracije u glavni modul.



e da, zaboravio sam da vam napomenam da ce svaki modul imati svoj namespace, cisto da se zasititmo od moguceg name-colisiona, dakle ukoliko je modul za zvuk naka bude Namespace Sound, ukoliko je AI Namespace AI i td...
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat09.03.2008. u 15:50 - pre 195 meseci
Dogovoreno
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.213.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat09.03.2008. u 20:01 - pre 195 meseci
Ej ljudi ja se izvinjavam, sto me nema... Malo sam zauzet, ali pogledam povremeno sta se desava. Slazem se skroz za koriscenje Namespace-a. Samo sam hteo da se dogovorimo nesto oko AI dela. Ako koristimo A star path find, onda ce se traziti najbolji put u matrici, tako da vam ja iz AI modula mogu dati samo koordinate neprijatelja u matrici, tako da ce mi se modul jako preplitati sa main modulom ili sa modulom za gfx. Pa sam hteo da pitam kada cemo i kako cemo raditi te module?

Inace trenutno sam zauzet nekim programom koji mora da se zavrsi za nekih 30-ak dana, tako da nemam bas puno vremena, pa se nadam da se ne ljutite sto cu malo kasniti za vama.

[Ovu poruku je menjao Aleksandar Ružičić dana 06.04.2008. u 18:10 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 projekat09.03.2008. u 21:46 - pre 195 meseci
sada je bitno da se urade "moduli" koji rade samostalno, znaci ako uzmemo u obzir A* algoritam, potrebno je da se uradi funkcija koja prima 2 parametra, prvi je lokacija (uredjen skup [x,y]) na kojoj se igrac (ili neprijatelj) nalazi a drugi parametar je lokacija na koju treba da dodje, funkcija treba da vrati niz lokacija (znaci niz parova [x,y]) koji prestavljaja najefikasniji (ne i najbrzi, npr bolje je ako neprijatelj prodje ispod zbunja jer je na taj nacin teze uocljiv, nego da dodje najkracim mogucim putem) put kojim igrac treba da se krece.

e sad, u pravu si da ai zavisi dosta od ostlih modula, pre svega od modula za ucitavanje mape, zato je potrebna jedna funkcija koja ce inicijalizovati AI modul tako sto ce toj funkciji biti prosledjen pointer na matricu koja predstavlja trenutno ucitanu mapu. Posto ti radis i AI i MAP module mozes odma da ih povezes tako sto ces u MAP modulu u funkciji LoadMap ili kako si je vec nazvao po uspesnom ucitavanju mape pozivati f-ju AI.Initialize(VarPtr(mapdata)) (gde je mapdata matrica koja predstavlja mapu)

i potreban nam je jedan "common" modul, tj modul koji ce sadrzati zajednicke definicije tipova, kao sto su:
Code:

Type Point
   X    As Single
   Y    As Single
End Type

Type MapPosition
   Row  As Integer
   Col   As Integer
End Type

Type Field
   Position   As MapPosition
   Base       As MapFieldType
   Cover      As MapFieldType
End Type


gde Point predstavlja lokaciju na ekranu u koordinatama x,y (koje su floating-point) a koristice se pozicioniranje elementa na mapi (necemo pomerati "polje-po-polje" nego ce prelazi sa polja na polje biti "glatki" tj u zavisnosti od brzine ce se menjati x i y koordinate), MapPosition predstavlja lokaciju na mapi (odredjujem o kom redu i o kojoj koloni se radi), a Field predstavlja jedno polje na mapi i Base predstavlja onaj "donji deo" polja o kom sam pre govorio, a Cover je onaj "gornji" deo (svako polje se crta sledecim redom: prvo se nacrta Base slicica, pa onda sprajt neki ukoliko se nalazi na tom polju, znaci tenkic, neki bonus, metak itd, pa tek onda preko Cover slicica koja ce uglavnom biti providna tako da se vidi sta je ispod)

bice jos zajednickih tipova (i ovi su dati samo kao primer, naravno da se nazivi tipova i propertija mogu menjati) ali ovi su sada potrebni za MAP i AI module pa ih ovde navodim, ti Stefane napravi poseban fajl (declarations.bas ili nesto slicno) u koji ces da smestis ove tipove, mozes i da im dodas neke propertije ako ti zatrebaju, kao sto rekoh ovo navodim samo kao primer


sto se tice vremena ni ja ga nemam bas nesto mnogo (zato nije ni navodjen nikakav vremenski rok, i nece ga ni biti) i trenutno nisam u bg-u pa me zato nema na netu (ovde sam na dial-upu...) a i nisam stigao nista konkretno da odradim sto se ovog projekta tice od tak sam dosao kuci, ali od utorka sam ponovo u beogradu pa cu nastaviti da radim
 
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 projekat12.03.2008. u 16:15 - pre 195 meseci
evo meni bilo malo dosadno pa sam uradio mainmenu screen...


Prikačeni fajlovi
 
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 projekat12.03.2008. u 16:25 - pre 195 meseci
Stefane, sto se tice ELITEMAP formata, imam jos jednu ideju:

format ima 32 bita rezervisana za flegove od kojih smo 5 vec iskoristili - prva cetiri bita (nibble) su rezervisana za tileset index, 5 bit predstavlja prisustvo komentara.

predlazem da 6 bit predstavlja Extended Format Flag, tj ako je ovaj bit 0 (sto je default) onda su polja (DATA sekcija) ozacena sa 8bita (1 bajt), a ukoliko je ovaj bit podesen (tj ako je 1) onda su polja oznacena sa 16bita (2 bajta jedno polje).

EliteTanks ce koristiti 8bita, ali mozda kasnije ovaj engine iskoristimo za drugi projekat (sto i planiram...) koji ce zahtevati vise od 128 razlicitih slicica u jednom tilesetu (recimp neki rpg)...
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat12.03.2008. u 17:16 - pre 195 meseci
vidim ja da se freebasic-u pishe lepa buducnost ;)
 
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 projekat12.03.2008. u 19:07 - pre 195 meseci
evo ja pocinjem upravo da pisem kompajler za EliteScript jezik, a evo i gramatike jezika, pa ko razume BNF notaciju neka iznese primedbe/sugestije ako ima...
Code:

<Script> ::= <OptNL> <ScriptId> <Globals>

<ScriptId> ::= 'script' StringLiteral 'class' StringLiteral <NL>

<NL> ::= NewLine <NL>
 | NewLine

<OptNL> ::= <NL>
    |

<Globals> ::= <GlobalScope> <NL> <Globals>
      | <GlobalScope>
      |

<GlobalScope> ::= <Declarations> <NL>
      | <EventHandler> <NL>
      | <Function> <NL>


<EventHandler> ::= 'handler' Identifier '.' Identifier <OptParamList> <NL> <Statements> 'end' 'handler'

<Function> ::= 'function' Identifier <OptParamList> <NL> <Statements> 'end' 'function'

<OptParamList> ::= '(' <ParamList> ')'
       | '(' ')'
       |

<Declarations> ::= 'var' <InitList>

<InitList> ::= <DeclListItem> ',' <InitList>
       | <DeclListItem>

<DeclListItem> ::= Identifier '=' <Expression>
       | Identifier

<ParamList> ::= <ParamlListItem> ',' <ParamList>
    | <ParamListItem>

<ParamListItem> ::= Identifier
        | 'ref' Identifier


<Statements> ::= <Statement> <NL> <Statements>
     |

<Statement> ::= <Declarations>
    | <IfStatement>
    | <ForStatement>
    | <LoopStatement>
    | <SelectStatement>
    | <FunctionCall>
    | <RaiseEvent>
    | <Assignment>
    | <ReturnExpression>
    | <Expression>
    | 'exit' 'handler'
    | 'exit' 'function'
    | 'exit' 'do'
    | 'exit' 'loop'
    | 'exit' 'for'
    | 'continue'
    | 'lock' <QualifiedId>
    | 'unlock' <QualifiedId>
    

<IfStatement> ::= 'if' <Expression> 'then' <NL> <Statements> <ElseBlocks> 'end' 'if'

<ElseBlocks> ::= 'else' <NL> <Statements>
     | 'elseif' <Expression> 'then' <NL>    <Statements> <ElseBlocks>
     |

<ForStatement> ::= 'for' <OptVar> Identifier '=' <Expression> 'to' <Expression> <OptStep> <NL> <Statements> 'next'
       | 'foreach' <OptVar> Identifier 'in' <Expression> <NL> <Statements> 'next'

<OptVar> ::= 'var'
     |

<OptStep> ::= 'step' <Expression>
      |

<LoopStatement> ::= 'do' <NL> <Statements> <Condition> <Expression>
        | <Condition> <Expression> 'do' <NL> <Statements> 'loop'

<Condition> ::= 'until'
    | 'while'

<SelectStatement> ::= 'select' 'case' <Expression> <NL> <CaseStatement> <CaseBlocks> 'end' 'select'

<CaseStatement> ::= 'case' <OptIs> <Expression> <NL> <Statements>

<CaseBlocks> ::= <CaseStatement> <CaseBlocks>
     | 'case' 'else' <NL> <Statements>
     |

<OptIs> ::= 'is' <CompareOp>
    |

<FunctionCall> ::= 'call' <QualifiedId> <OptArgList>
       | <QualifiedId> <OptArgList>
       | <QualifiedId> <ExpList>

<RaiseEvent> ::= 'raise' <QualifiedId> <OptArgList>
     | 'raise' <QualifiedId> <ExpList>

<ArgList> ::= '(' <ExpList> ')'
      | '(' ')'

<OptArgList> ::= <ArgList>
     |

<ExpList> ::= <Expression> ',' <ExpList>
      | <Expression>


<QualifiedId> ::= <QualifiedIdPart> '.' <QualifiedId>
      | <QualifiedIdPart>

<QualifiedIdPart> ::= Identifier <OptIndex>
          | Identifier <ArgList> <OptIndex>

<OptIndex> ::= '[' <Expression> ']'
       |

<Assignment> ::= <QualifiedId> <OptIndex> '=' <Expression>

<ReturnExpression> ::= 'return' <Expression>
           | 'return'


<Expression> ::= 'Iif' '(' <OrExp> ',' <Expression> ',' <Expression> ')'
     | <OrExp>

<OrExp> ::= <OrExp> 'Or' <XorExp>
    | <XorExp>

<XorExp> ::= <XorExp> 'Xor' <AndExp>
     | <AndExp>

<AndExp> ::= <AndExp> 'And' <CmpExp>
     | <CmpExp>

<CompareOp> ::=  '<' | '>' | '<=' | '>=' | '=<' | '=>' | '<>' | '='

<CmpExp> ::= <CmpExp> <CompareOp> <ShiftExp>
     | <ShiftExp>

<ShiftExp> ::= <ShiftExp> 'Shl' <AddExp>
       | <ShiftExp> 'Shr' <AddExp>
       | <AddExp>

<AddExp> ::= <AddExp> '+' <MulExp>
     | <AddExp> '-' <MulExp>
     | <MulExp>

<MulExp> ::= <MulOp> '*' <UnaryOp>
     | <MulOp> '\' <UnaryOp>
     | <MulOp> '/' <UnaryOp>
     | <MulOp> 'Mod' <UnaryOp>
     | <UnaryOp>

<UnaryOp> ::= 'ref' <UnaryOp>
      | '-' <UnaryOp>
      | '+' <UnaryOp>
      | 'Not' <UnaryOp>
      | <PrimaryExp>

<PrimaryExp> ::= <QualifiedId>
     | StringLiteral
     | IntLiteral
     | RealLiteral
     | BinLiteral
     | HexLiteral
     | OctLiteral
     | 'true'
     | 'false'
     | 'null'


{String Chars}  = {Printable} - ["]
{Hex Digit}     = {Digit} + [abcdef]
{Oct Digit}     = [01234567]
{Bin Digit}     = [01]

{WS}            = {Whitespace} - {CR} - {LF}
{Id Head}       = {Letter} + [_]
{Id Chars}      = {Id Head} + {Digit}


NewLine        = {CR}{LF}? | ':'
Whitespace     = {WS}+ ( '_' {WS}* ( {CR}{LF}? | ':' ) )?

ID             = {Id Head}{Id Chars}*

StringLiteral  = '"' ( {String Chars} | '""' )* '"'

IntLiteral     = {Digit}+
HexLiteral     = '&H' {Hex Digit}+
OctLiteral     = '&O' {Oct Literal}+
BinLiteral     = '&B' {Bin Literal}+

RealLiteral    = {Digit}* '.' {Digit}+ ( 'E' [+-]? {Digit}+ )?
           | {Digit}+ 'E' [+-]? {Digit}+







[Ovu poruku je menjao Aleksandar Ružičić dana 12.03.2008. u 20:36 GMT+1]
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.233.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat12.03.2008. u 22:29 - pre 195 meseci
Evo cisto nesto malo za pocetak...

Zapravo nista, samo sam dodao kursor na sliku i napravio izvrsnu verziju :(

Ali ovaj projekt smo i zapoceli da bi FreeBASIC priblizili onima koji i nisu bas puno upoznati sa njim... Tako da mislim da im treba neki ovako prost primer... HELLO WORLD sa dve slike... :)
Prikačeni fajlovi
 
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 projekat12.03.2008. u 22:54 - pre 195 meseci
heh, izgleda malo mracno, moracu da posvetlim grafiku malo :)

ali lep primer, mada si trebao da koristis double buffering, posto se na mojoj jadnoj grafickoj pojavljuje mouse trail :)
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.233.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat13.03.2008. u 00:20 - pre 195 meseci
Koristio sam double buffer. Trail pojavljuje zato sto sam tako ja postavio... Nema brisanja ekrana, nego se pozadinska slika crta sa alfablendingom(50%) preko postojeceg ekrana.
 
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 projekat13.03.2008. u 00:58 - pre 195 meseci
pa cim crtas sa alphablendingom onda to nije double buffering :)

double buffering ti je kad sve crtas u memoriji (ne direktno na ekran) pa onda prekopiras (bez blendinga, jer je to zahtevna operacija) to na ekran...


sad ovih dana cu ja uraditi GFX modul sa funkcijama za crtanje lejera i sprajtova pa cemo da uradimo ove screenove... a ti kad zavrsis Map Editor onda cemo da crtamo texture za mape (iskoristicemo ono sto ima u SpriteLib-u, al cemo dosta prepraviti i dodati nase teksture)...
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.233.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat13.03.2008. u 01:01 - pre 195 meseci
Pogledaj kod...

Ja ovde imam dve stranice u memoriji. Pa dok se na jednoj "crta". Druga je prikazana, pa se onda uradi FLIP, pa se crta na drugoj a prva je prikazana i tako u krug... To se valjda zove Double Buffer?
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat13.03.2008. u 09:42 - pre 195 meseci
valjalo bi da bude malo svetlije,e i meni se javlja trail,cak mi i slika malo, kako da kazem, vibrira :D
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
79.101.233.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat13.03.2008. u 11:39 - pre 195 meseci
To se desava samo kada program radi na 16 bpp, problem je sa alpha blend-om... Ispravice se.
 
Odgovor na temu

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

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

Postavi temu Odgovori

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