.[ ČeskéHry.cz ].
Magic The Gathering
Jdi na stránku 1, 2  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Inkubátor
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Gurthfin



Založen: 04. 08. 2011
Příspěvky: 5

PříspěvekZaslal: 5. srpen 2011, 00:13:11    Předmět: Magic The Gathering Odpovědět s citátem

Zdravim,
som tu novy...(len upozornujem, ze to so mnou bude asi blbe)

Uz dlho sa chystam/rozbehavam projekt Magic The Gathering. (Myslim, ze tato kartova hra by vacsine mala byt znama, preto dalej nebudem vysvetlovat. )V podstate prvy zaciatok bol na strednej, kde som na maturite odprezentoval tento projekt urobeni v C a OpenGL (hra bez schopnosti a kuziel, len boj a vyvolanie kreatur). Nanestastie som sa do grafiky vela nepustal, vacsinu urobil spoluziak a ja som prepisal len C-ckovu cast a umiestnenie kariet v OpenGL. (Aj tak to bolo len vytvorenie stvorca a nahranie donho textury). Po maturite som si povedal, ze MtG nejako sprovoznim. Presiel som na C++ a asi 3x som znovu zacal a zase skoncil s tymto projektom. Prvy raz kvoli absencii poznatkov nacitania zo suborov, druhy raz kvoli navrhu programu pre schopnosti a treti raz kvoli grafickemu oknu - to bolo naposledy, vtedy som skusal DarkGDK, co mi nevyslo. Teraz by som chcel zacat znova.


A preto moja otazka. V com by som mal zacat robit graficke okno? S programovanim v C++ si nejako poradim, ale s grafikou mam problemy. Uz pri prvom MtG s OpenGL som mal problem, ze cely kod (funkcie atd) som napisal do "void drawGlScene ()" (tusim tak nejako to bolo). V skole nas ucili len pisat do "int main()" , takze uz len toto mi sposobovalo v hlave galimatias (nehovoriac o to, ze program nemohol mat nijake cakanie na nacitanie, alebo ze sa hlavna funkcia stale opakovala, takze kazda zmena hodnoty premennej musela byt peclivo osetrovana). Uz vtedy som sa s grafikou nepohodol a to sa opakovalo s DarkGDK (hlavne kvoli absencii nejakeho poriadneho tutorialu).

Tak prosim poradte mi, na aku graf. kniznicu/program sa mam zamerat a nejaku jednoduchu teoriu okolo toho, ako sa pise program spolu s grafikou, aby som mal aku taku predstavu od niekoho, kto uz nieco urobil, alebo sa v tychto veciach vyzna lepsie ako ja.

Dakujem.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 462
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 5. srpen 2011, 02:23:58    Předmět: Odpovědět s citátem

Grafickou knihovnu můžeš klidně použít OpenGL. Já spíše vidím problém v organizaci projektu, psát vše do main nebo DrawGLScene (fuj ... NeHe) je prasárna! Zkus vše strukturovat trošku více logicky.

Projekt by měl být logicky dělený, např. grafické hlavičky a zdrojáky si hoď do složky gfx, herní do game a samotné okno do window ... vše pak volej elegantně z mainu. (a jsou lidé co napíšou i na toto dělení fuj, každému dle jeho gusta ... resp. dle gusta project leadera).
_________________
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 5. srpen 2011, 08:57:19    Předmět: Odpovědět s citátem

Spíše doporučuji používat třídy než hromady funkcí a rozbít projekt na malé části.. rozhodně nepsat všechno do jedné funkce Exclamation

Jinak Otte doporučuje OpenGL... já jsem zase zastáncem DirectX Smile Nicméně je s ním asi více práce než s OpenGL.. hlavně v začátcích je relativně složité (naštěstí to vyvažuje dle mého názoru perfektní dokumentace a hromady samplů)
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
FrantaTomanu



Založen: 06. 01. 2011
Příspěvky: 9
Bydliště: Praha

PříspěvekZaslal: 5. srpen 2011, 09:58:27    Předmět: Odpovědět s citátem

Nuže, klidně bych se nebál použití OpenGL, GLUT. Každopádně aplikace je třeba řádně rozdělit a trochu se naučit hlouběji C++. OOP ti pomůže Smile.

http://sokoban3d.frantatoman.cz

Tady najdeš zdrojáky mého projektu, co jsem nedávno dělal do školy, třeba tě trochu inspirují.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 5. srpen 2011, 14:40:56    Předmět: Odpovědět s citátem

Nehe stale zije Twisted Evil

1. "Teach yourself C++ in 21 days" - http://www.angelfire.com/art2/ebooks/teachyourselfcplusplusin21days.pdf

2. Neveril by som, ze take nieco niekedy napisem (nikdy nehovor nikdy)Smile, ale v tvojom pripade je uplne idealna stranka http://nehe.gamedev.net/

Zacni pekne od tutorialu 01 a zhruba okolo 05ky by si mal prist k tomu co uz teraz mas nakodene.

3. Potom si precitaj nieco o triedach v C++. Vykasli sa na polymorfizmus a dedicnost. Ignoruj Overriding.
Tebe bude v prvom kroku bohate stacit ak budes mat kod rozbity do tried, teda ze vsetky premenne a funkcie vztahujuce sa ke nejakemu logickemu segmentu hry budu pekne pokope v jednej triede.
Nezabudni premenne inicializovat v konstruktore.
Kedze s triedami robis uplne po prvy krat, tak by som doporucil ignorovat private sekciu triedy a vsetko nadrbat ako public a az bude vsetko bezat, potom zacat refaktoring a snazit sa oddelit private a public premenne a funkcie. To samo o sebe ti na dlhsiu dobu znepojazdni kod Smile

Uvidis, ako ti triedy ulahcia orientaciu, hladanie bugov a celkovo to zrychli vyvoj.

4. Az ked budes mat kod rozbity do tried, zacni triedy oddelovat do suborov. Vygoogluj si "C++ include guards", ze ako sa to presne robi.
Potom ti nastane problem, ako maju triedy medzi sebou komunikovat, ale toto tu teraz rozpisovat nebudem, lebo kym sa dostanes tam, budes mat kod dlhsiu dobu nepojazdny.

5. Konstantam (const int MaxEnemies = 137) sa zatial vyhni, kedze zatial detailne nerozumies tomu ako C++ kompiler funguje, tak ti extern bude robit zbytocne problemy pri linkovani.

6. Neskor, az bude kod znova pojazdny, mozes zacat nahradzovat vsetky #define konstantami v triedach - ci uz cez static, alebo constructor-initialization. No, asi by som doporucil ten static na zaciatok, syntax c-tor init by bola zrejme zbytocne matuca.

7. Vyser sa na C++/OGL kombo a prejdi rovno do C#/XNA a nic z vyssie uvedeneho nebudes musiet riesit, lebo Visualko to vsetko spravi za teba (este aj tie konstanty si pekne nadefinujes rovno v triede Smile ). A ako bonus odchytis vsetky memory leaky u seba uz pocas vyvoja (kedze .NET framework je tak proste nadizajnovany).
S C++/OGL sa natrapis jak hovado, potom to niekde uploadnes a zistis ze to nikomu nebezi Smile Najprv zistis, ze musis riesit debug/release.
Potom, ked konecne najdes zdroj mem leaku, tak po dalsom uploade to znova spadne niekde uplne inde Smile A tak dalej - toto ti treba ku stastiu Wink ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 5. srpen 2011, 14:54:46    Předmět: Odpovědět s citátem

Poznámka k NeHe: Starší verze přeložená do češtiny viz odkaz v horní liště na tomto fóru: http://nehe.ceske-hry.cz/
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 5. srpen 2011, 15:11:05    Předmět: Odpovědět s citátem

VladR napsal:
Nehe stale zije Twisted Evil
Kedze s triedami robis uplne po prvy krat, tak by som doporucil ignorovat private sekciu triedy a vsetko nadrbat ako public a az bude vsetko bezat, potom zacat refaktoring a snazit sa oddelit private a public premenne a funkcie. To samo o sebe ti na dlhsiu dobu znepojazdni kod Smile


Tak to rozhodně nedoporučuji Smile Akorát to přidělá neuvěřitelně práce .. lepší je si to rozmyslet a pak začít dělat než všechno nasekat public... Radši bych se nejdřív naučil C++ ovládat a pak v tom teprve dělat hru, jinak je to cesta do pekla... pokud netrváš na C++ tak vezmi to C# / XNA (popř. SlimDX, pokud chceš nějaká větší kouzla s DX10/11)
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 5. srpen 2011, 16:43:14    Předmět: Odpovědět s citátem

VladR napsal:

4. Az ked budes mat kod rozbity do tried, zacni triedy oddelovat do suborov. Vygoogluj si "C++ include guards", ze ako sa to presne robi.
Potom ti nastane problem, ako maju triedy medzi sebou komunikovat, ale toto tu teraz rozpisovat nebudem, lebo kym sa dostanes tam, budes mat kod dlhsiu dobu nepojazdny.

s ostatnymi bodmi aj suhlasim ale toto by som neodkladal. a mastil pekne jednu triedu na jeden subor. ono to vobec nie je tazke robit to tak priamo odzaciatku.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 5. srpen 2011, 18:43:53    Předmět: Odpovědět s citátem

Nic nie je tazke ak to uz vies.

Preco mu potom rovno neodporucite, aby si precital nejaku knihu od Alexandrescu o generickom programovani a potom to napisal pomocou templatov ?

Nech si rovno utriedi, kde pouzije Singelton pattern, kde pouzije Adapter. Observer, Composite, ci Strategy Pattern ?

Nech ma dopredu rozmyslene, kde pouzije public inheritance a odovodnene vynimky private inheritance (s dopredu stanovenymi spublikovanymi metodami).

Samozrejme, k tomu uz sa hodia STL standardne sekvencne/asociativne kontajnery a nech nezabudne na <algorithm> kniznicu operujucu na iteratoroch.
Nestadardne STL kontajnery by som ale nevylucoval takisto.

S pointermi radsej nech ani nerobi a rovno skoci na <auto_ptr>, ze ?

Pravdaze, bolo by mrhanie casom sa babrat v takychto prachsprostych zakladoch C++, takze radsej nech si pred navrhom vyskusa aktualny release Boostu, nech vie, ci sa uchylit len k STL kontajnerom, alebo ci mu nepomoze znalost o Boost::dynamic_bitset, boost::array, boost::multi_array. Nezavrhoval by som ani boost::tuple a boost::tribool sa casto tiez hodi.

Pri praci s filesystemom nech zacne s boost::filesystem, vsak ?

Pravdaze, bolo by zverstvo navrhovat engine bez toho, aby podporoval multithreading (uz by som nechal na koderovi, nech si zvazi ci pojde do OpenMP, pthreads, boost::Thread, ci inu alternativu).



A inak ste kompletni Question Exclamation Question
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Gurthfin



Založen: 04. 08. 2011
Příspěvky: 5

PříspěvekZaslal: 5. srpen 2011, 19:21:48    Předmět: Odpovědět s citátem

s tym, ze C++ nejako zvladnem som myslel uz to, ze sa v C++ ako tak vyznam... system OOP viem, ale nemam odskusany. Navrhnut triedu, zakladnu pracu s konstruktormi zvladam v pohode (2x som precital Mistrovstvi v C++, a ked si niecim nie som isty, tak v tej knihe hladam vzor). Pouzit viac suborov tiez ako tak viem, ale prekvapilo ma pouzit na kazdu triedu zvlast subor...
Osobne si myslim, ze ak by bola hra len o cislach, dokazal by som ju ako tak naprogramovat, len komu by sa to chcelo hrat v commande a namiesto karticiek by videl len cisla...

Najvacsi problem mi robi pochopenie toho, ako logicku cast (kuzla, boj, vykladanie) spojit s grafikou. Kde tam je hlavna cast programu (nieco ako main() ), ako osetrit jednotlive premenne (nemozem si len tak dat hocikam do grafickeho kodu i++ z logiky, lebo pri kazdom refreshy by sa i++ vykonalo)...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Deluxe



Založen: 31. 07. 2007
Příspěvky: 235
Bydliště: Oslavany

PříspěvekZaslal: 5. srpen 2011, 19:58:12    Předmět: Odpovědět s citátem

Vetsinou se toto resi tak, ze logiku hry pocitas jen jednou kazdych X snimku. Kde X si spocitas tak aby aby byla doba mezi updaty logiky porad stejna.
viz treba tady: http://gafferongames.com/game-physics/fix-your-timestep/
No a ve vysledku pak kreslis X snimku to stejny, nebo interpolujes mezi dvema poslednimy kroky simulace logiky (kde to jde).
Kazdopadne by logika a jeji stav mnel byt oddelenej od grafiky. Asi by to mnelo fungovat tak, ze pri vykreslovani mrknes na stav entity, kterou kreslis a podle toho ji vykreslis.

Ja bych si asi reprezentoval herni objekty jako tridy, kazda by mnela metodu Simulate(step_time); a Render(); a pak bych Simulate voval v pravidelnych intervalech a Render, kazdej snimek.

Jina moznost (a lepsi) by byla, ze by herni objekt nekreslil sam sebe, ale jen by obsahoval informace potrebny ke kresleni a mnel by jsi pak tridu ktera by obsahovala pole vsech objektu a starala se o jejich vykresleni.

Tak nejak jak bych na to pro zacatek sel ja, ale snad se k tomu vyjadri i nekdo zkusenejsi.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 5. srpen 2011, 22:56:02    Předmět: Odpovědět s citátem

Gurthfin napsal:
s tym, ze C++ nejako zvladnem som myslel uz to, ze sa v C++ ako tak vyznam... system OOP viem, ale nemam odskusany. Navrhnut triedu, zakladnu pracu s konstruktormi zvladam v pohode (2x som precital Mistrovstvi v C++, a ked si niecim nie som isty, tak v tej knihe hladam vzor). Pouzit viac suborov tiez ako tak viem, ale prekvapilo ma pouzit na kazdu triedu zvlast subor...
Osobne si myslim, ze ak by bola hra len o cislach, dokazal by som ju ako tak naprogramovat, len komu by sa to chcelo hrat v commande a namiesto karticiek by videl len cisla...

Najvacsi problem mi robi pochopenie toho, ako logicku cast (kuzla, boj, vykladanie) spojit s grafikou. Kde tam je hlavna cast programu (nieco ako main() ), ako osetrit jednotlive premenne (nemozem si len tak dat hocikam do grafickeho kodu i++ z logiky, lebo pri kazdom refreshy by sa i++ vykonalo)...
S pouzitim separe suboru na kazdu triedu osobne nesuhlasim, lebo to by mal potom clovek stovky suborov a v tom je uz celkom problem sa orientovat. Ale zrejme je to individualne. Mna osobne by iritovalo, ak by zoznam suborov v projekte mal viac ako 20-30 suborov. Pokial ma subor pod 5.000 riadkov, je v pohode a rychlo orientovatelny.

Pocas chodu hry sa ti kazdy frame zavola DrawGLScene (). Tu, ako uz vies - prebieha samotny rendering 3d sceny.
Rovnako musis mat v kode metodu, ktora ti spracovava input a hernu logiku. Netusim, ako sa v tvojom kode vola, ale je ziaduce, aby si hernu logiku oddelil od renderingu.

Pravda, nic sa nestane, ak to budes mat spolu, ale toto by nemal byt problem oddelit - to nijako nesuvisi s C++ ako takym. Dostanes lepsi vykon, ak to bude oddelene a kod je prehladnejsi, ak osobitne riesis logiku a osobitne rendering (kedze su to dva - spolu temer nijako nesuvisiace - procesy).

Ak budes chciet zapracovat animaciu - musis zakomponovat koncept timerov - teda ukonu, ktory trva nejaky cas - sprav si triedu, kde budes mat premenne TimeStart, TimeLength, TimeEnd. TimeStart inicializujes na aktualny cas, ak hrac povedzme klikne na kartu. TimeLength si nastavis napr. na 3 sekundy a TimeEnd=TimeStart+TimeEnd.
To, ze tento proces zacal, si nastav napr. nejakym bool flagom : Active = true, alebo nieco podobne.

Potom kazdy frame budes kontrolovat, ci uz si dosiahol TimeEnd a umerne podla uplynuteho casu (CurrentTime - TimeStart) / TimeLength posunies koordinaty hracovej karty.
Az dosiahnes TimeEnd, flag Active nastav na false, takze sa uz dany usek nebude spracovavat kazdy bozi frame.

Pocas renderingu si len zoberies poziciu karty (ktoru preratavas kazdy jeden frame), nastavis matice a vyrenderujes 3d objekt (ci uz cez VBO, alebo glvertex3f je teraz fuk).


Tiez bv bolo dobre si vsetky taketo herne procesy dopredu niekde spisat, aby si na kazdy jeden nevyrabal triedu od zaciatku. To ale pride az casom - ak si doteraz este ziadne triedy nenavrhoval, asi tazko prides s nejakou hierarchiou tried - to je jasne.

Ale zacat sa niekde musi, a vzdy je lepsie refaktorovat funkcny kod, ako nemat ziaden funkcny kod...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 5. srpen 2011, 23:07:07    Předmět: Odpovědět s citátem

Jo a toto tu este spomenute nebolo, ale nez zacnes cokolvek animovat, najdi si na NeHe tutorial, ktory ti vykresli text na obrazovku a pred tym, nez vobec zacnes animaciu riesit, spojazdni to u seba v kode, aby si si mohol vypisovat debug informaciu priamo na obrazovku - nejakou jednoduchou funkciou - napr. DrawText (ScreenXP,ScreenYP, float Value).

Ono sa totiz _dost_ debilne debuguju procesy, ktore trvaju len par framov, ale pol sekundy, lebo debugger zapnes za tu dobu len raz a pri druhom priechode tym istym breakpointom uz proces davno skoncil.

Iste, slo by to aj cez logovanie do suboru, ale to zase prinasa ine problemy (ak zabudnes flsuhnut file po kazdom zapise) a nie je to bohvieako interaktivne.

Skratka, vypis kritickych premennych (napr. aktualna pozicia objektu, percento casu stravene od zaciatku animacie a vobec hodnoty TimeStart/TimeEnd/TimeLength) realtime na obrazovku je absolutne nevyhnutny, ak nechces polku casu len hutat, ze preco to zrazu prestalo ist, ked to doteraz islo.
Vsetky debug vypisy si daj do jednej metody a jednoduchym bool flagom zlinkovanym na nejaku klavesu budes urcovat ci sa to vypisuje alebo nie.

Bez vyssie uvedeneho zabijes uplne zbytocne kopec casu hutanim, ze preco nejaky proces bezi/nebezi.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
FrantaTomanu



Založen: 06. 01. 2011
Příspěvky: 9
Bydliště: Praha

PříspěvekZaslal: 6. srpen 2011, 00:01:07    Předmět: Odpovědět s citátem

VladR napsal:
Gurthfin napsal:
s tym, ze C++ nejako zvladnem som myslel uz to, ze sa v C++ ako tak vyznam... system OOP viem, ale nemam odskusany. Navrhnut triedu, zakladnu pracu s konstruktormi zvladam v pohode (2x som precital Mistrovstvi v C++, a ked si niecim nie som isty, tak v tej knihe hladam vzor). Pouzit viac suborov tiez ako tak viem, ale prekvapilo ma pouzit na kazdu triedu zvlast subor...
Osobne si myslim, ze ak by bola hra len o cislach, dokazal by som ju ako tak naprogramovat, len komu by sa to chcelo hrat v commande a namiesto karticiek by videl len cisla...

Najvacsi problem mi robi pochopenie toho, ako logicku cast (kuzla, boj, vykladanie) spojit s grafikou. Kde tam je hlavna cast programu (nieco ako main() ), ako osetrit jednotlive premenne (nemozem si len tak dat hocikam do grafickeho kodu i++ z logiky, lebo pri kazdom refreshy by sa i++ vykonalo)...
S pouzitim separe suboru na kazdu triedu osobne nesuhlasim, lebo to by mal potom clovek stovky suborov a v tom je uz celkom problem sa orientovat. Ale zrejme je to individualne. Mna osobne by iritovalo, ak by zoznam suborov v projekte mal viac ako 20-30 suborov. Pokial ma subor pod 5.000 riadkov, je v pohode a rychlo orientovatelny.

Pocas chodu hry sa ti kazdy frame zavola DrawGLScene (). Tu, ako uz vies - prebieha samotny rendering 3d sceny.
Rovnako musis mat v kode metodu, ktora ti spracovava input a hernu logiku. Netusim, ako sa v tvojom kode vola, ale je ziaduce, aby si hernu logiku oddelil od renderingu.

Pravda, nic sa nestane, ak to budes mat spolu, ale toto by nemal byt problem oddelit - to nijako nesuvisi s C++ ako takym. Dostanes lepsi vykon, ak to bude oddelene a kod je prehladnejsi, ak osobitne riesis logiku a osobitne rendering (kedze su to dva - spolu temer nijako nesuvisiace - procesy).

Ak budes chciet zapracovat animaciu - musis zakomponovat koncept timerov - teda ukonu, ktory trva nejaky cas - sprav si triedu, kde budes mat premenne TimeStart, TimeLength, TimeEnd. TimeStart inicializujes na aktualny cas, ak hrac povedzme klikne na kartu. TimeLength si nastavis napr. na 3 sekundy a TimeEnd=TimeStart+TimeEnd.
To, ze tento proces zacal, si nastav napr. nejakym bool flagom : Active = true, alebo nieco podobne.

Potom kazdy frame budes kontrolovat, ci uz si dosiahol TimeEnd a umerne podla uplynuteho casu (CurrentTime - TimeStart) / TimeLength posunies koordinaty hracovej karty.
Az dosiahnes TimeEnd, flag Active nastav na false, takze sa uz dany usek nebude spracovavat kazdy bozi frame.

Pocas renderingu si len zoberies poziciu karty (ktoru preratavas kazdy jeden frame), nastavis matice a vyrenderujes 3d objekt (ci uz cez VBO, alebo glvertex3f je teraz fuk).


Tiez bv bolo dobre si vsetky taketo herne procesy dopredu niekde spisat, aby si na kazdy jeden nevyrabal triedu od zaciatku. To ale pride az casom - ak si doteraz este ziadne triedy nenavrhoval, asi tazko prides s nejakou hierarchiou tried - to je jasne.

Ale zacat sa niekde musi, a vzdy je lepsie refaktorovat funkcny kod, ako nemat ziaden funkcny kod...


Co se týče těch souborů (co třída, to soubor), tak v tom zas tak velký problém nevidím, ale jak říkáš, je to dosti individuální. Já osobně vždy raději použiju nějaké IDE (netbeans, eclipse, ...), které mi poskytne rychlejší orientaci. Já v posledním projektu měl těch souborů doopravdy šíleně a kdybych používal některý klasický editor, tak bych se doopravdy po***l. Ale je pravda, že po IDE jsem sáhnul v době, kdy jsem měl těch souborů hodně a nebavilo mě v tom hledat.

Na druhou stranu mít méně souborů, ale za to více řádků, to také není zrovna ideál.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Gurthfin



Založen: 04. 08. 2011
Příspěvky: 5

PříspěvekZaslal: 6. srpen 2011, 02:28:00    Předmět: Odpovědět s citátem

VladR napsal:

Rovnako musis mat v kode metodu, ktora ti spracovava input a hernu logiku. Netusim, ako sa v tvojom kode vola, ale je ziaduce, aby si hernu logiku oddelil od renderingu.

Pravda, nic sa nestane, ak to budes mat spolu, ale toto by nemal byt problem oddelit - to nijako nesuvisi s C++ ako takym. Dostanes lepsi vykon, ak to bude oddelene a kod je prehladnejsi, ak osobitne riesis logiku a osobitne rendering (kedze su to dva - spolu temer nijako nesuvisiace - procesy).


Pokat, pockat, pockat... a teraz pomaly a jasne. Toto je to, na co hladam odpoved. ...
Ono, ako sa to da oddelit? Stale sa budem pohybovat v drawGlScene akoby to bol main, alebo si vytvorim vlastny Logic_main a v nom budem volat drawGlScene ako normalnu funkciu a ostatne bude logika, popripade nejaky iny main, kde budem volat drawGlScene a Logic_main?

Pri hladani starych veci som nasiel aj predchadzajuci neuspesny projekt, ktory som pokladal za obet formatovania. Je to pokus o zacatie programu, vela veci je rozpisanych s rozhodne to nefunguje, ale aspon aby ste mali predstavu, ako na tom som.


kód:
http://endofeternity.wgz.cz/file/17780386


a tiez som si spomenul na OpenGL a vcelku nepeknu vec a to rozlisenie. Viem, ze prvy projekt som robil na rozlisenie 2,0f. S tym sa velmi zle pracovalo. Tak sa chcem spytat, ci sa da pracovat aj s normalnym rozlisenim, ako ho poznam z prace s PC.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Inkubátor Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna