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

[FreeBASIC] EliteTanks projekat

[es] :: Ostali programski jezici :: [FreeBASIC] EliteTanks projekat
(TOP topic, by Gojko Vujovic)
Strane: << < .. 7 8 9 10 11 12 13 14

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

markozelenovic
Kratovo

Član broj: 152567
Poruke: 231



Profil

icon Re: [FreeBASIC] EliteTanks projekat22.04.2008. u 14:57 - pre 193 meseci
Citat:
Aleksandar Ružičić
Developer, Haragei Creative Solutions
Beograd - Čačak

Moderator
Član broj: 26939
Poruke: 1534
*.dynamic.adsl.itsisp.net.
OS: Windows XP

Jabber: [email protected]
Sajt: krcko.haragei.org



Profil

Email

Privatna Poruka

Re: [FreeBASIC] EliteTanks projekat pre 14 dana i 18h

onda super, sacekaj 15-20 dana. tada ce igra biti verovatno gotova, pa ces moci da igras kolko 'oces
--------------------------------------------------------------------------------

jQuery addicted!

"History may not repeat itself, but it does rhyme a lot."
- Mark Twain
07.04.2008. u 21:54







Samo polako
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



+7 Profil

icon Re: [FreeBASIC] EliteTanks projekat22.04.2008. u 21:04 - pre 193 meseci
@markozelenovic Znas kako se kaze ... vreme je novac ... a ovo se radi za dzabe :)
Bez zezanja al Aleksandar je sastavio solidan kod do sad ... ima tu dosta posla , valjda ce jednom i da se zavrsi.
 
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 projekat23.04.2008. u 01:00 - pre 193 meseci
zavrsice se sigurno, al kad... to cemo videti :)
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
91.150.125.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat23.04.2008. u 01:35 - pre 193 meseci
@Marko Zelenovic

Ne vidim svrhu ovako opseznog quote-a, pa znamo mi svi da kliknemo na dugme profil, a uz to su verovatno svi upoznati sa Krckovim profilom, covek je 24/7 sa nama (moderator)...

Mislim da nam ovo samo ruzi temu!

A sto se ove poruke tice obrisacu je cim bude procitana.

@Krcko

Sto se tice vektorke kolizije, da li to znaci da cemo za svaki objekt/sprajt u igri morati da pravimo i region mozda bi bolje resenje bilo da se koristi krug/elipsa (kao sto se u 3D igrama koristi sfera), ali opet bi region bio brze resenje :)
 
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 projekat23.04.2008. u 01:50 - pre 193 meseci
Citat:
stefanpn: @Marko Zelenovic

Ne vidim svrhu ovako opseznog quote-a, pa znamo mi svi da kliknemo na dugme profil, a uz to su verovatno svi upoznati sa Krckovim profilom, covek je 24/7 sa nama (moderator)...

Mislim da nam ovo samo ruzi temu!

A sto se ove poruke tice obrisacu je cim bude procitana.


mislim da je to uradio da bi se video onaj deo "Re: [FreeBASIC] EliteTanks projekat pre 14 dana i 18h"

Citat:

@Krcko

Sto se tice vektorke kolizije, da li to znaci da cemo za svaki objekt/sprajt u igri morati da pravimo i region mozda bi bolje resenje bilo da se koristi krug/elipsa (kao sto se u 3D igrama koristi sfera), ali opet bi region bio brze resenje :)

pazi u Math modulu vec postoji metoda CreateFromCircle koji od kruga pravi poligon (ntougao) a kada dodjem do tog dela (kolizija/kreiranje poligona) uradicu i BitmapPack resource tip za ERC (trenutno je samo BitmapFOnt resource tip implementiran i trenutno radim na ucitavanju takvog resource-a i pravilnog renderovanja) koji ce imati mogucnost da na osnovu alpha kanala ili transparentne boje generise poligon za svaku sliku i sacuva tu informaciju u resource fajlu.

sto se tice ovih resursa koje pominjem pogledaj u ovom zipu /test/fonts/sample.erd tu je nesto malo objasnjeno, kada zavrsim ovo sa fontovima okacicu i reousrce omcpiler i loader za bitmapfont...
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



+7 Profil

icon Re: [FreeBASIC] EliteTanks projekat23.04.2008. u 02:03 - pre 193 meseci
Kojem zipu ? :)
 
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 projekat23.04.2008. u 02:07 - pre 193 meseci
ovom poslednjem sto sam okacio :)

btw evo komentar sa pocetka sample.erd fajla:
Code:

''
''
''  EliteResource Descriptor (ERD) file
''
''
''  About ERD files:
''
''
''  EliteResource Compiler (ERC) is used to parse ERD files and produce binary resource files which are
''  then loaded and used by EliteGameEngine.
''
''  ERD files can be used to describe any supported resource type. And those currently are:
''
''    * BitmapFont resources - for building EBF files (fonts used in EliteGameEngine)
''    * UITheme resources - for "themming" EliteUI elements (EUI files)
''    * BitmapPack resources - for making image packs (EBP files)
''    * AnimatedBitmap resources - for building EAB files (animations used in EliteGameEngine)
''    * Movie resources - for making EMV files (advanced animations with or without bundled audio)
''
''  Each ERD file (for all types of resources) starts with Describe keyword, with Describe statement we say to
''  ERC which type of resource we're describing and it will load specified parser which will translate our
''  resource descriptor file into binary resource file.
''
''  Definitions in ERD file are contained in "sections", which begin with Section "<NameOfSection>" and ends with
''  End Section statement.
''
''  As you may noticed, you use '' symbol for line comments, but note: it's two chars '' and not just '
''
''  -------------------------------------


eto da se vidi na cemu trenutno radim i sta planiram :)
 
Odgovor na temu

Lachie Dazdarian
Dean Janjic
Daj skini mi se!
Hrvatska

Član broj: 177885
Poruke: 16
77.237.110.*

Sajt: lachie.phatcode.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat23.04.2008. u 18:22 - pre 193 meseci
Nije mi jasno zašto tvrdiš da je pixel perfect kolizija spora kad sam ti pokazao već jednu za FB u ASM kodu koja je sasvim dovoljno brza. Osim ako ne forsiraš situacije koje se nikad neće pojaviti u nekoj igri. Malo više vjere.
 
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 projekat24.04.2008. u 01:02 - pre 193 meseci
da, ona MySoft-ova funkcija sa ASM-om je stvarno brza, ali postoji jos brzi nacin ;)

elem vec sam u jednoj od predhodnih poruka rekao da cu verovatno ubaciti neku 2D Physics biblioteku a sve te biblioteke koriste poligone za opisivanje oblika nekog tela. jedna od prednosti tih biblioteka za fiziku je sto imaju mnogo brze i dobro optimizovane rutine za proveru kolizije dva tela (dva poligona, bilo konkavna bilo konveksna) a i u teoriji (sto se dokazalo i u praksi) je dokazano da je vector-based kolizija dosta brza od pixel-perfect kolizije.
Ja sav vec napomenuo da ce biti i pixel-perfect provere u EGE-u, to ce biti jedna od Collides rutina, pa ako bas hoces pixel-perfect mozes da koristis :)
samo sto je vector-based brze i bolje (moguce je skaliranje poligona tj oblika i njihova rotacija ako je to potrebno a da se pri tom ne izgube informacije o objektu)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



+7 Profil

icon Re: [FreeBASIC] EliteTanks projekat24.04.2008. u 15:17 - pre 193 meseci
Vidim da je tema prebacena ... koliko je to dobro za organizaciju foruma toliko i nije za ove redje koriscene jezike jer mislim da ce ovako teze da se primete nego na forumu koji je vise posecen. Al sad sta je tu je ...
 
Odgovor na temu

Lachie Dazdarian
Dean Janjic
Daj skini mi se!
Hrvatska

Član broj: 177885
Poruke: 16
212.15.184.*

Sajt: lachie.phatcode.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat24.04.2008. u 16:10 - pre 193 meseci
Dobro, držim te za riječ što se tiče ovih 2D physics biblioteka. Probaj naći neku multiplaformsku i ne hardware akceleriranu.
 
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 projekat24.04.2008. u 16:36 - pre 193 meseci
Citat:
Eurora3D Team: Vidim da je tema prebacena ... koliko je to dobro za organizaciju foruma toliko i nije za ove redje koriscene jezike jer mislim da ce ovako teze da se primete nego na forumu koji je vise posecen. Al sad sta je tu je ...

Pa nije bilo uredu da teme o FreeBASIC-u idu u VB6 forum, jer im je jedino zajednicko to sto imaju zajednickog dalekog pretka (quick basic), bilo je dva predloga: da se napravi podforum u okviru VB6 foruma za ostale BASIC dijalekte, ali tako bi se narusilo pravilo da podforumi budu u vezi parent foruma tako sto predstavljaju deo tematike o kojoj se govori u parent forumu (sto sa fb i vb6 nije slucaj), drugi predlog (koji je na kraju i usvojen) je bio da se otvori novi forum za sve jezike koji nisu zastupljeni u ostalim forumima, s tim da se kada neki jezik dostigne popularnost otvori zaseban forum i da se sve teme o tom jeziku prebace u taj novootvoreni forum...


Citat:
Lachie Dazdarian: Dobro, držim te za riječ što se tiče ovih 2D physics biblioteka. Probaj naći neku multiplaformsku i ne hardware akceleriranu.


ok, videces da sam upravu :)


elem, evo dve izmedju koje se dvoumim:

Box2D Physics Engine
Chipmunk Game Dynamics (verovatno ce biti ova)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: [FreeBASIC] EliteTanks projekat24.04.2008. u 16:55 - pre 193 meseci
Boga mu, ovaj drugi izgleda odlicno. Prvi, doduse, nisam ni pogledao :)
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
91.150.125.*



+1 Profil

icon Re: [FreeBASIC] EliteTanks projekat24.04.2008. u 17:45 - pre 193 meseci
Unezverio sam se trazeci temu ... Nisam hteo da koristim pretragu, rekoh kakav sam maler bice da su je obrisali, pa sam reko ma mozda samo nije TOP pa je otisla negde jer nije dugo nista post-ovano. I trazim, pa rekoh da nije dodata sekcija FreeBASIC...

I onda olaksanje... Ostali programski jezici!

Ovaj ChipMunk ima lep video materijal, ali bih ti ja predlozio da implementiras onaj koji je jednostavniji (koji ces lakse uklopiti u projekt).

A ovo sto se moze jednostavno odraditi i u FB-u, olovke su obicni spriteovi, papir je window region, a trag se crta alpha-blendom (po mojoj proceni 200 ili ~80%), dok se linije "pamte" vektorski i brisu iz memorije kada napuste window region (mislim da je obican rectangle)... A tako efektivno prikazuje sta ovaj p. engine nudi...
 
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 projekat25.04.2008. u 09:57 - pre 193 meseci
@Shadowed: drugi je baziran na prvom ;)

@Stefan: pa mnogo mi je lakse implementirati ovaj ChipMunk iz razloga sto je on u C dok je box2d u C++u :)
 
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 projekat28.04.2008. u 23:34 - pre 193 meseci
evo danas sam bio malo dokon pa sam radio na ovom projektu, tj engine-u.

evo version historyja:
Code:

0.0.3.280408.d    - third draft version released
--------------
    + reorganized project's file/folder structure
    + implemented Animation type and easing effects
    + implemented screen transition effects
    + removed code for "dirty regions" technique

dakle ono sto je dodato su tranzicioni efekti (izmedju dva screen-a) i Animation tip koji se koristi za animacije bazirane na Easing efektima.

u arhivi koju sam okacio imate nov test folder (screen trans test) u kom imate nekoliko game screen-ova (4 zapravo) koji se smenjuju koristeci random odabrane tranzicione i easing efekte.

samo da napomenem da neki tranzicioni efekti daju lose rezultate kada se kombinuju sa nekim easing efektima (recimo zoomin/zoomout kada se kombinuju sa nekim veoma dinamicnim easing efektima kao sto su ElasInOut i BounceInOut mogu da zakoce program iz razloga sto su zoomin/zoomout neoptimizovani i mnogo spori efekti) a posto se i tranzicioni i easing efekat biraju random ovakve kombinacije su moguce...

i da, posto se Stefanu nije svidela grafika iz predhodnog test-a ovaj put sam se potrudio da izgledaju malo bolje, skinuo sam nekoliko brush-setova za photoshop, igrao se malo sa njima i 3 najbolje background slike sam izdvojio :)



p.s. trebace vam winrar da raspakujete arhivu (posto sam na dial-upu pa ne mogu da okacim ceo zip kod mene na server...)
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 projekat29.04.2008. u 10:43 - pre 193 meseci
Ako hocete mozete vi da dodajete nove tranzicione efekte, posto je to jednostavno. Evo npr kako se pravi jedan tranzicioni efekat:

1. prvo treba "osmisliti" efekat, tj kako ce da izgleda:
ja sam za ovaj primer odlucio da napravim jedan jednostavan efekat nalik na SlideIn i SlideOut efekte. naime, napomenuti efekti rade tako sto ili novi ekran (SlideIn) "ulece" na mesto starog i prekriva ga, ili stari (SlideOut) "izlece" i otkriva novi ekran. e sad, ovaj novi efekat, nazovimo ga Push, ce da izgleda tako da novi ekran "gura" stari (a ne samo da ga prekrije kao sto je slucaj sa SlideIn), dakle ukoliko je direction = FromLeft onda ce novi ekran da ulazi sa leve strane dok ce stari da izlazi sa desne. (ako vam ipak nije jasno kako sam zamislio efekat videcete kad ga dodate u EGE :p)

2. zatim treba dodati taj efekat u TransitionEffect enum, ova enumeracija se nalazi u /ege/engine.bi fajlu (21. linija trenutno), dakle dodajmo Push u ovaj enum (posle SlideOut, da ne bi morali da menjate kod u test projektu)

3. sada nam treba novi fajl push.bas koji cemo da smestimo u /ege/transitions/ folder, za pocetak u taj fajl moramo da stavimo "zastitu" od visestrukih #include-ovanja (ovo nije obavezno ali posto svi fajlovi postuju to pravilo onda ce i ovaj) i PushEffect namespace:
Code:

'
' -------------------------------------------------------------------------------------------------
'
'    This file is part of EliteGameEngine source distribution
'
' -------------------------------------------------------------------------------------------------
'
#Ifndef __EGE_TRANSITIONS_PUSH_BAS__
#Define __EGE_TRANSITIONS_PUSH_BAS__

    Namespace PushEffect


    End Namespace

#EndIf

za svaki efekat su potrebne tri funkcije: Init (ovde inicijalizujemo parametre potrebne za nas efekat), onFrame (ovo se poziva na svaki game frame, i ovde je uglavnom isti kod za sve efekte) i onPaint (ovde iscrtavamo trenutni frejm), evo tih fja ("praznih", odma' cemo da ih popunimo):
Code:

 Sub Init(easing As Effect.Easing, duration As Single)

 End Sub

 Function onFrame(fElapsed As Single) As Elite.Boolean

 End Function

 Sub onPaint(dest As Bitmap)

 End Sub
 

(naravno ovo ubacite unutar PushEffect namespace-a)

sada sledi implementacija Init f-je, kao sto sam rekao tu inicijalizujemo potrebne parametre, e sad, posto svaki efekat koristi easing efekte onda nam treba i Animation objekat (ovaj objekat sluzi za easing-driven animacije, tj postavite pocetnu vrednost, krajnju vrednost i duzinu trajanja efekta (u sekundama) i na osnovu izabranog easing efekta cete u tih n sekundi doci sa pocetne vrednosti na krajnju - Animation objekat moze istovremeno da "animira" vise od 1 vrednosti - broj tih vrednosti se prosledjuje konstruktoru prilikom kreiranja objekta) dakle, dodajte sledecu deklaraciju pre ove tri f-je (a unutar namespace-a):
Code:

 Dim Shared As Effect.Animation Pointer anim
 

(deklarisana je kao Pointer da bi mogli da koristimo New/Delete)
Sada sledi kompletna onInit f-ja:
Code:

Sub Init(easing As Effect.Easing, duration As Single)

    anim = New Effect.Animation(4)

    anim->StartValue(1) = 0
    anim->StartValue(2) = 0
    anim->StartValue(3) = 0
    anim->StartValue(4) = 0

    anim->EndValue(1) = 0
    anim->EndValue(2) = 0
    anim->EndValue(3) = 0
    anim->EndValue(4) = 0

    Select Case direction

        Case FromLeft
            anim->StartValue(1) = -CDbl(newBitmap.Width)
            anim->EndValue(3) = CDbl(newBitmap.Width)

        Case FromRight
            anim->StartValue(1) = CDbl(newBitmap.Width)
            anim->EndValue(3) = -CDbl(newBitmap.Width)

        Case FromTop
            anim->StartValue(2) = -CDbl(newBitmap.Height)
            anim->EndValue(4) = CDbl(newBitmap.Height)

        Case FromBottom
            anim->StartValue(2) = CDbl(newBitmap.Height)
            anim->EndValue(4) = -CDbl(newBitmap.Height)

        Case FromTopLeft
            anim->StartValue(1) = -CDbl(newBitmap.Width)
            anim->StartValue(2) = -CDbl(newBitmap.Height)
            anim->EndValue(3) = CDbl(newBitmap.Width)
            anim->EndValue(4) = CDbl(newBitmap.Height)

        Case FromTopRight
            anim->StartValue(1) = CDbl(newBitmap.Width)
            anim->StartValue(2) = -CDbl(newBitmap.Height)
            anim->EndValue(3) = -CDbl(newBitmap.Width)
            anim->EndValue(4) = CDbl(newBitmap.Height)

        Case FromBottomLeft
            anim->StartValue(1) = -CDbl(newBitmap.Width)
            anim->StartValue(2) = CDbl(newBitmap.Height)
            anim->EndValue(3) = CDbl(newBitmap.Width)
            anim->EndValue(4) = -CDbl(newBitmap.Height)

        Case FromBottomRight
            anim->StartValue(1) = CDbl(newBitmap.Width)
            anim->StartValue(2) = CDbl(newBitmap.Height)
            anim->EndValue(3) = -CDbl(newBitmap.Width)
            anim->EndValue(4) = -CDbl(newBitmap.Height)

    End Select

    anim->Play duration, easing

End Sub
 

ok mozda izgleda da je komplikovano ali nije, ovo je samo dodeljivanje pocetnih i rajnjih pozicija oba ekrana. Znaci kao sto ste videli prvo kreiramo Animation objekat i prilikom kreiranja navedemo koliko parametara zelimo da animiramo (1 je podrazumevan, tj ako se samo jedan parametar menja onda nemorate da navodite New Animation(1) vec moze samo New Animation), za ovj Push efekat 4 parametra nam se menjaju to su (X,Y) koordinate novog ekrana (1. i 2. parametar) i (X,Y) koordinate starog ekrana (3. i 4. parametar) i u zavisnosti od direction promenljive (koja je deklarisana u /ege/transitions.bas) podesavamo pocetne i krajnje vrednosti ova 4 parametra. pored direction promenljive (koja je tipa TransitionDirection) postoje jos dve promenljive koje su nam na raspolaganju (i koje moramo da koristimo) to su newBitmap i oldBitmap (obe tipa Bitmap) koje su "screenshotovi" novog, odnosno starog ekrana (njih koristimo za iscrtavanje, to je ocigledno). i na kraju, kada smo podesili parametre animacije sa anim->Play duration, easing pokrecemo animaciju.

Sada sledi kod za onFrame f-ju (ovo je isto za sve efekte u 99% slucajeva):
Code:

Function onFrame(fElapsed As Single) As Elite.Boolean

    Repaint

    If anim->TargetReached Then

        Delete anim

        Return Elite.True

    EndIf

    Return Elite.False

End Function
 

Dakle, na svaki frejm prvo pozivamo Repaint cime obavestavamo Engine da je napravljena promena i da treba podici onPaint dogadjaj, zatim proveravamo da li je animacija zavrsena i ukoliko jeste brisemo anim objekat i vracamo True, a ukoliko nije vracamo False sto znaci da nastavljamo sa izvrsavanjem efekta.

I na kraju nam je ostala onPaint f-ja, ona izlgeda ovako:
Code:

Sub onPaint(dest As Bitmap)

    Line dest.Handle, (0, 0) - Step (newBitmap.Width, newBitmap.Height), Color.Black, BF

    newBitmap.DrawTo dest, anim->Value(1), anim->Value(2), , , , , fbPSet
    oldBitmap.DrawTo dest, anim->Value(3), anim->Value(4), , , , , fbPSet

End Sub
 

kao sto vidite veoma je jednostavna, crtamo newBitmap na koordinatama koje odgovaraju prva dva parametra animacije, a oldBitmap na koordinatama koje odgovaraju 3. i 4. parametru animacije. a Line sluzi da "ocistimo" ekran pre crtanja newBitmap i oldBitmap slika (poslednji parametar, BF, znaci "box filled", tj da nam ne crta dijagonalnu liniju nego pravougaonik). i jos jedna vazna napomena, default metod za iscrtavanje (mislim na DrawTo fju) je fbAlpha ali za tranzicione efekte moramo da koristimo fbPSet iz dva razloga: brze je, i (sto je jos vaznije) fbAlpha moze da izazove neke cudne efekte ponekad (kada se koristi za tranzicione efekte)

4. kada je push.bas gotov ostalo je da "povezemo" taj efekat sa MakeTransition funkcijom, prvo treba da #include-ujemo fajl, u /ege/transitions/transitions.bas fajlu dodajte #Include "push.bas" odma posle ostalih #include linija (to je 33. linija trenutno), zatim (u istom fajlu) u MakeTransition f-ji primecujete Select Case, sada kao poslednji Case dodajte ovo:
Code:

Case Push
    PushEffect.Init easing, duration
    TransFrameProc = ProcPtr(PushEffect.onFrame)
    TransPaintProc = ProcPtr(PushEffect.onPaint)

i to je to, kompajlirajte test projekat (screen trans test), pokrenite exe i dobicete "push" efekat (verovatno ne odmah posto je nasumicno biranje efekata)

jednostavno, zar ne? :)

dakle ako je neko od vas dokon i ima ideju za neki efekat neka prati ova 4 koraka i ako dobije nesto zanimljivo nek okaci ovde taj *.bas fajl da ubacim u projekat

i jos nesto, posto se efekti biraju random (u ovom test projektu) kada testirate nov tranzicioni efekat mozete izmeniti kod u /screen trans test/main.bas u f-ji ShowScreen (linija 81) u ovaj:
Code:

Sub ShowScreen(scr As Engine.GameScreenHandle)

    Dim transEffect  As Engine.TransitionEffect = Engine.Push ' ovde taj vas efekat
    Dim transDir      As Engine.TransitionDirection = Math.Random(Engine.FromLeft, Engine.FromBottomRight)
    Dim easingEffect As Effect.Easing = Math.Random(Effect.Linear, Effect.CubicInOut)

    Engine.Show scr, transEffect, transDir, easingEffect, 2

End Sub

to ce rezultovati u pozivanju samo tog efekta dok ce se pravac i easing efekti birati nasumicno...
 
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 projekat29.04.2008. u 12:32 - pre 193 meseci
uh, konacno sam nasao 'de je bug zbog koga je aplikacija znala da pukne iz cista mira. ukoliko ste skinuli prosli zip (tj rar iz 3 dela) i ako ste pokrenuli screen trans test vrlo je moguce da vam je program "pucao" iz cista mira (ovo se manifestuje onim "don't send" prozorom :D) e napokon sam uspeo da nadjem sta je uzrok tome (neki destructori su se pozivali vise od jednom pa je nevalidan pointer prosledjivan deallocate fji, al opet ovo se nije svaki put desavalo iz razloga sto memorija koja je oslobodjena nije uvek bivala ponovo dodeljena nekom drugom pointeru) i popravljeno je. mislim da sam nasao sve "deallocate-releated" bugove (nekih 25 min sam uspesno testirao onaj screen trans test bez ijednog pucanja, a onda mi dosadilo da pritiskam space :D)

evo kacim uz poruku 0.0.4 verziju (bugfix + neki filteri dodati) ali samo source, bez slika (njih uzmite iz predhodne arhive, one rar iz 3 dela) i bez exe fajlova.
i kacim fajlove potrebne za kompajlovanje (fbpng lib i include fajl) za slucaj da neko nema... (samo raspakujte fbpng.zip u /${FreeBASIC}/ folder)
Prikačeni fajlovi
 
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 projekat30.04.2008. u 11:50 - pre 193 meseci
Meni je ova prva verzija pukla iz prve ;)

Ali ovaj drugi radi ko sat, medjutim jede procesor, na celeron 2,4 ne spada ispod 45% i to kad miruje, a kada menja sliku onda je oko 60%
 
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 projekat30.04.2008. u 13:48 - pre 193 meseci
kao sto rekoh vise puta ako hocete nesto da optimizujete radite to slobodno, ja cu najmanje paznje obracati na optimizaciju koda sve dok radi kako treba :)

elem, kod za renderovanje fontova je skoro kompletan i ja mislim da ce sledeca verzija (sa fontovima) biti 0.1.b (beta) sto znaci da je engine spreman za izradu igre. Stefan moze da pocne da radi na kodu za ucitavanje nivoa i za pronalazenje najkraceg puta, kad on to zavrsi valjda cu ja zavrsiti kompajler i vm i da sastavljamo igru :)
 
Odgovor na temu

[es] :: Ostali programski jezici :: [FreeBASIC] EliteTanks projekat
(TOP topic, by Gojko Vujovic)
Strane: << < .. 7 8 9 10 11 12 13 14

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

Postavi temu Odgovori

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