Ki használ még DirectDraw-t?
Ki, hát én, nem is tudom miért, de mégis, mert mindennek oka
van. Ennek kb. az, hogy mindig ki akartam próbálni, milyen egy játékot hardver
támogatás nélkül megírni. Na ja, de aki ismeri a DD-t, az tudja, hogy ha 2d-s
is, de használja a hardveres-blit lehetőségét (ami nem más mint egy bitmap
részének a képernyőre másolása nagy sebességgel). Az a helyzet, hogy a DD-t,
csak felületként használtam, manapság nem nagyon vicces (szerintem) VESA-val
vagy LFB-vel csinálni (DukeNukem3D pl ezt használta), nem is volt kedvem a hlsl
cuccok után valami ilyesmivel fecsérelni az olcsó időmet, ezért esett a
választás erre. Nagyon régi technológia ez, Win95-n már volt, szóval a
támogatása manapság eléggé elterjedt :).
De akkor miért is szoftveres a cucc? - Azért mert nem csinálok mást, mint a DD-t
backbuffer-ét lock-olom, ezzel kapok egy memóriaterületet, ahová rajzolgathatok
kedvemre, majd egy húzással az egész kinn terem a képernyőn, ezzel a technikával
nem is vibrál a kép. Ennek a sebessége max a monitor képváltásával egyezik meg,
vagy lehet kevesebb is. (DD mindenképpen várja a VSync-et, mondjuk ablakban nem
próbáltam, de ott a lehetőségek sokkal korlátozottabbak a D3D-vel szemben.)
Így minden pixelt a progi rak ki, fellengzősködhetnék a 'motor' emlegetésével,
de ez inkább egy csomó for-ciklust jelent. A sebesség nem is rossz, az én 3000
AMD64 -emen kb 3* tele tud rajzolni egy 1024*768*(32bit) képernyőt (75 fps-el), a sebesség végül is
csak a processzor és a RAM sebességétől függ.
(ez kb 708 megabyte/sec (32 bit/szín, és 75 hz a freq., - 24 bitet nem szerette
a DD - ami nem rossz egy nem asm
cucctól szvsz. - itt megjegyzem, ha nem a paint-et használom grafikára sokkal
szebb lehetne az eredmény, de örültem, hogy azzal lett valamilyen.)
Egyáltalán nem használtam assembly-t, mert régen csináltam, ezért én most nem
babráltam vele.
Egy régi kis játékötletemet valósítottam meg, még Commodore64-re találtam ki.
Alapvetően egy sima ugrálós játék, de a főhősnek van egy erős mágnese, amit
eldobhat valahova, majd azt bekapcsolva a mágnesen téren lebeghet (kb mint egy
rúdugrás - vagy inkább mostanába' a rocket-jump;).
Na ez ebbe is benne van, csak több ilyen mágnes is lehet, mondjuk ezek csak
taszítanak. A játék többi része klasszikus vonalakat és C64-esen sötét
háttereket követ (szerk: végül is a taszítós rész nem került bele.)
A játék apropója a
http://www.Jatekfejlesztes.hu megrendezett verseny volt, ami tulajdonképpen
megadta a kezdőlökést a munkának, ezzel nevezek vele, meglátjuk leszek-e
legalább utsó, mert erős a mezőny XD. (szerk: tényleg majdnem utolsó lett XD)
Amúgy ez a felület kiváló helyszíne lehetne bármilyen szoftveres
3d-s engine számára, mert nem kell a hardver-kompatibilitással, megszakításokkal
stb. foglalkozni. Jó platform lehet(ne) buta iskolai grafika beadandóknak is,
ajánlom mindeninek, aki szereti, vagy kényszerítve van ilyesmire :)
A játék linkje
Na, meg itt egy kis progi az alapokról, afféle csontváz, csak a directdraw-t
kapcsolja be egy képpel, fps-t a log.txt-be teszi -nincs kiíró fv-je.
(VC6-ban követtem el)
Füleki Péter 2007 Október.
Email. pjotrfu kukac freemail pont hu.