Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
kidd.sadam
Založen: 11. 06. 2009 Příspěvky: 18
|
Zaslal: 10. červenec 2009, 18:06:44 Předmět: c++ 2d animace |
|
|
Zdravím,
jsem zde na foru nový. V dnešní době jsem pouze Java programátor (cca 1 a 1/2 roku praxe) a chtěl bych začít v C++ nějakou jednoduchou gamesku. Chtěl bych se naučit i třeba základy DirectX, atd..
Zajímalo by mě, v čem by bylo nejlepší (a nejjednodušší ale zároveň i "elegantní") udělat animaci postavy (panáčka) ve 2D. Napadlo mě použít obrázek typu *.gif, ale nevím, jestli by to šlo, a jestli by to taky bylo elegantní. Koukal jsem zde na foru, ale podobný thread jsem zatím nenašel. Tak by mě zajímalo, jaké jsou možnosti a výhody/nevýhody.
Díky moc,
kidd.sadam |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 10. červenec 2009, 18:17:47 Předmět: |
|
|
Pokud jde o uložení série obrázků, tak lepší než jeden gif je série očíslovaných png obrázků. Snáz se provádí změna jednoho snímku a není potřeba používat speciální software pro animaci gifů. Navíc je formát png otevřený a nezatížený nějakými licenčními problémy.
Z hlediska vykreslování 2D grafiky jsou dnešní běžné počítače sra*ky, a proto se spousta programátorů uchyluje ke zneužití 3D API i pro 2D grafiku. Tím se dá celkem zakrýt fakt, že CPU je slabý a k ničemu. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 10. červenec 2009, 18:40:47 Předmět: |
|
|
možná spíš bych doporučil OpenGL, alespoň základy v tom jsou jednoduché
(vykreslit nějaký obdélník s texturou)
a jak napsal frca, animace jsou spíš série obrázků, případně všechny pohyby máš v jednom obrázku vedle sebe a vždy vykreslíš jen část textury _________________
 |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 10. červenec 2009, 21:13:08 Předmět: |
|
|
frca napsal: |
Pokud jde o uložení série obrázků, tak lepší než jeden gif je série očíslovaných png obrázků. Snáz se provádí změna jednoho snímku a není potřeba používat speciální software pro animaci gifů. Navíc je formát png otevřený a nezatížený nějakými licenčními problémy. |
GIF je od roku 2005 kompletně free tzn. není zatížen licenčními problémy a dá se snadno načíst a uložit jako posloupnost obrázků. Knihovna FreeImage má podporu pro GIF tuším také od roku 2005. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 11. červenec 2009, 11:00:51 Předmět: |
|
|
Uff, len OpenGL nie. To ho zavedie do pointeroveho pekla by NeHe, a to v dnesnej dobe skutocne nema za potreby.
salam: mas nejaky konkretny dovod preco chces ist do C++, alebo iba kvoli DX ? DX mas obsiahnuty v XNA a to kedze bezi primarne pod C#, je k Jave podstatne blizsie. A je to uzivatelsky privetivejsie ako cisty, starsi DX.
Nehovoriac o tom, ze je primarne podporovane MS a su nan updaty. Cim netvrdim, ze DX11 nie je podporovane, ale HW naroky su niekde uplne inde (okrem inych dovodov).
Plus mas ako bonus XBOX platformu
Pozri napr. http://creators.xna.com/en-US/ |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 11. červenec 2009, 13:39:56 Předmět: |
|
|
Hlavní nevýhoda DX11 je, že je to Vista/Se7en only. DX11 podporuje vše od DX9-hardware pomocí tzv. feature levels. Kdyby to bylo i pro WinXP, byla by to jasná volba na všechno.
OpenGL je taky fajn, je dnes někde na úrovni DX10.1, řekl bych. Jede všude (no, skoro...) a pokud je člověk schopný a trpělivý, veškeré problémy (týkající se např. NeHe tutoriálů) dokáže vyřešit. Že s tím má někdo problémy na fórech ještě neznamená, že je to špatně - každý si tím přece musí projít.
C++ bych taky nezatracoval. Sice tam člověk ze začátku dost často padá na hubu, ale to je potřeba, aby se to naučil - z dlouhodobého hlediska se to vyplatí. Určitě je důvod se ho učit a to nejenom kvůli hrám, má docela velké uplatnění. Přejít z C++ na jiný jazyk je mnohem jednodušší než přejít z jiného jazyka na C++ (pokud bereme v potaz procedurální jazyky). A nezapomenout na RAII, což je věc, kterou v .NETu nebo v Javě jen tak neuděláte, a umožňuje si elegantně pohlídat jak memory leak, tak resource leak, který už garbage collector nepohlídá. Jazyk C++0x* pak přispívá ke zlepšení celkové čitelnosti kódu a eliminuje některé nedostatky C++, což z něj dělá ještě silnější nástroj.
* i když on to asi bude spíš C++1x
Pokud se chce autor vlákna oprostit od jazyků závislých na garbage collectoru, C++ je dobrá volba. A jestli výběr 3D API padne na D3D nebo OpenGL, už je celkem jedno... _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 11. červenec 2009, 15:28:48 Předmět: |
|
|
Eosie
Ty tu vytahujes veci, ktore vie zo 100 nahodne vybranych C++ programatorov - kolko ? 5-10 ?
C++0x je monstrum, a to sa neda len tak skrotit za par vikendov...
Moja pointa spociva v tom, ze ja proste neverim, ze clovek, ktory sa opyta na fore, ci ist do C++,sa dostane tak daleko. Ak by ten "drajv" mal, tak to uz davno robi a len priebezne si nechava vysvetlovat koncepty jazyka, ktore mu nie su jasne (a ze ich v C++ mozno najst).
No a hlavne, potrebuje k tomu nejake poriadne knihy, mega davku trpezlivosti a jasny dlhodoby ciel (povedzme, ze chce ist robit financne derivaty do Londyna za 100.000 GBP rocne ) |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 11. červenec 2009, 15:41:19 Předmět: |
|
|
kidd: Ja osobne za najvacsi problem povazujem to, ze sa budes nepriamo ucit C++ z tutorialov a vygooglovanych linkov ohladom grafiky.
Aj ked odhliadneme od NeHeho, ktory ma v svojich C++ tutorialoch k C++ urcite dalej ako ty s Javou, mas nenormalne kvantum tutorialov a PDFiek, ktore su pisane v PureC style a vobec sa tam C++ (o C++0x nehovoriac) nevyuziva. Kazdy len pouziva bohapusty blud, ze kvoli jednoduchosti (ich myslenia) to de-classuje na purec styl, co je nieco za co by som vesal do prievanu za nasolene gule ...
Proste je to v style, radsej nech to zbastli kazdy debil, ako to napisat poriadne.
Keby si sem prisiel s 2 rokmi praxe v C++ a genericke programovanie ti bolo ako tvoje druhe ja, a Alexandrescu/Miller by boli tvojim citanim na dobru noc, tak OK - iba sa zasmejes pri citani tych tutorialov, ale oni ta ovplyvnia (ci uz priamo alebo nepriamo) a vysledny kod bude vykazovat neodstranitelne znamky krochtania... |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 11. červenec 2009, 17:30:43 Předmět: |
|
|
Nasolené koule? Chrochtání? Dneska boduješ.
C# 3.0/4.0 je taky monstrum, sice o pár let mladší, ale má našlápnuto na to stát se nejkomplikovanějím jazykem po C++ - s každou verzí Visual Studia vychází nová verze C#.
Jinak já se učil C++ v podstatě z builderu a z NeHe tutoriálů a dalo se to přežít. Nějakou nohou se vykročit přece musí. Ty špatný návyky se v průběhu let dají napravit, člověk si v tom musí vymáchat rypák, aby pochopil, co je na tom vlastně špatně a čemu se má vyhnout (a doplňovat to dobrou literaturou).
Ale máš samozřejmě pravdu i s tím, že je dobrý se naučit hned na začátku ten správný postup, jenomže to není tak lehký u někoho, kdo nemá takový rozhled, že je schopný napoprvé sáhnout po kvalitní literatuře...
Minimálně první rok ten kód bude vykazovat známky i horších věcí než jen chrochtání.
PS: Na dobrou noc mám radši D. Eberlyho...  _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
kidd.sadam
Založen: 11. 06. 2009 Příspěvky: 18
|
Zaslal: 13. červenec 2009, 13:02:28 Předmět: |
|
|
THX frca a Houp za vecny příspěvek diky za radu!
OpenGL bude pro mě asi jasná volba
Jinak jsem zde pánové chtěl řešit, jak jednoduše rozpohybovat postavičku, a ne kvalitu NeHe tutoriálů a verzí C++
Nicméně na NeHe tutoriály se rozhodně podívám, a myslím, že jsem si sehnal i kvalitní literaturu co se týče C++
Ale to do tohoto threadu nepatří  |
|
Návrat nahoru |
|
 |
Hardwire
Založen: 04. 09. 2007 Příspěvky: 117
|
Zaslal: 13. červenec 2009, 17:08:58 Předmět: |
|
|
Trochu advanced metoda je pouzit skeletonovou animace... rozdelit si postavicku na kusy, ktery spojis kloubama. Jednotlivy kusy muzou bejt sprity (klidne animovany ala GIF). V animatoru pak definujes pro urcity casy (feyframy) konfigurace kloubu a ve hre mezi nima interpolujes. Tenhle pristup pouziva napr. Aquaria (http://www.bit-blot.com/aquaria/). Kdyz si pustis editor, muzes se tam dostat nejak i do editace animaci Naijy.
Dalsi moznej pristup je popsat objekt jako potexturovanej mesh (ale 2D mesh), slozenej treba jen z trojuhelniku, a do keyframu pak ukladat pozice vsech jeho bodu. Ve hre bys pak interpoloval pozice mezi jednotlivejma keyframama.
Vim, ze jsi psal "nejjednodussi", a tohle na implementaci nejjednodussi urcite neni, ale z hlediska dlouhodobejsiho vyvoje to muze bejt efektivnejsi, nez chrlit tuny spritovejch animaci. |
|
Návrat nahoru |
|
 |
|