Nightwalker

Ostatní jazyky Pascal Nightwalker

Informace | Screenshoty | Bytosti | Nedostatky | Stáhnout

Tuto hru jsem napsal jako rocnikovou praci v Pascalu a nize si muzete stahnout i jeji kompletni zdrojovy kod. Jedna se o klasickou platformovou hru podobnou napriklad supermariu. Obsahuje strileni, nepratele, leveleditor, hudbu na pozadi (XMIDI ), pruchod mezi lokacemi a konecne doublebuffering.

 

Popis a vyznam zakladnich jednotek ( unit ) :


Keypres2 - zajistuje praci s klavesnici
Narozdil od jednotky CRT dokaze vnimat nekolik stisknutych klaves najednou, bez pouziti bufferu. S funkci readkey by byla tato hra v podstate nehratelna.

VGA256 - VGA grafika
Je to unita z baliku SVGA4 pro praci v grafickem rezimu 320x200x256 barev. Je temer KOMPLETNE CELA v asembleru, takze o rychlosti neni pochyb. Podporuje nejruznejsi funkce, ktere prosto prevalcuji pomalou vestavenou BGI grafiku.

SVGA - SVGA grafika
Podobna jednotka jako VGA256, ale umoznuje praci ve vyssich rozlisenich v rezimu SVGA.

Midpak - prehrava na pozadi XMI soubory
Soucast baliku Plus System Pro od ruskeho nadsence Vadima Bodrova. Unita umoznuje prehravani XMI souboru na pozadi na SoundBlasteru, Adlibu a spouste dalsich zvukovych zarizenich ( dokonce i Covox ).

 

Popis a vyznam dalsich jednotek (unit) :


Dialogs - Prace s dialogy
Tuto jednotku jsem napsal, abych mohl snaze udelat roomeditor. Umoznuje vykreslovat nejruznejsi dialogy a okna.

Engine - zakladni inicializace
Unita pro zkontrolovani systemu, jestli je kompatibilni se zvukovym nastavenim a zapnuti Handleru jednotky KeyPress2.

Files - prace se soubory
Umi zjistit, jestli existuje soubor a ma par funkci na cteni dat ze souboru ROM.

Mouse - prace s mysi v roomeditoru
Zajistuje praci s mysi v rezimu SVGA.

VgaMouse - prace s mysi ve hre
Zajistuje praci s mysi v rezimu VGA ( mod 13h ).

Tinyfont - Tenky font
Jelikoz v modu 13h je vse velike, napsal jsem si tuto jednotku, abych mohl psat mensim pismem...

 

Format rom souboru


Soubory *.rom v adresari Backs jsou jednotlive mistnosti ve hre a obsahuji udaje o pozadi, pocasi, terenu, vlozenych objektech a prilehlych mistnostech. Napsal jsem pro jejich vytvareni a upravovani sice editor ( roomedit ), ale ten neumi vse a tak sem radsi prikladam kompletni popis techto souboru. Jako prvni jsou udaje o terenu. Teren je vlastne dvourozmerne pole o velikosti 25 x 19 ( nightwalker vyuziva pouze 16 x 10 ), kde jsou zapsany jednotlive kosticky ( tiles ), ze kterych je potom mistnost ( room ) slozena. Toto pole je tedy zapsano v prvnich 19-ti radcich. Kazda polozka pole ("kosticka") ma 4 znaky. Prvni 3 znaky jsou jmeno obrazku bez pripony ve slozce tiles ( napr. 001 ), pokud je jmeno 000, polozka je prazdna. Posledni 4. znak urcuje charakter "kosticky" :
0 - pozadi ( je za hrdinou a da se pres ni chodit a propadnout )
1 - zed ( neda se pres ni jit, propadnout ani vyskocit na ni, kdyz hrdina stoji pod ni )
Na 20. radku je ulozena UPLNA ( zase ne absolutni ;-) ) cesta k souboru s pozadim ( musi to byt PCX 320x200x256 barev ). V nasledujicich ctyrech radcich jsou ulozeny nazvy prilehlych mistnosti. Pokud tam mistnost neni, radka je prazdna ( bez mezer !! ) :
21. radek - mistnost nahore
22. radek - mistnost dole
23. radek - mistnost vlevo
24. radek - mistnost pravo
Na dalsich 10-ti radcich jsou ulozeny informace o "objektech", ktere jsou v mistnosti. Jejich maximalni pocet je tedy 10. Objekt je vlastne slozka ve slozce objects, ktera obsahuje tyto soubory :
lxx.pcx - leve faze objektu ( pokud ma objekt 2 faze pohybu, budou to soubory l00.pcx a l01.pcx )
rxx.pcx - prave faze objektu ( pokud ma objekt 2 faze pohybu, budou to soubory r00.pcx a r01.pcx )
l99.pcx - leva zmrzla faze objektu ( zoobrazi se, kdyz ma objekt inteligenci vetsi nez 0 a kdyz je hrdinou zmrazen )
r99.pcx - prava zmrzla faze objektu ( zoobrazi se, kdyz ma objekt inteligenci vetsi nez 0 a kdyz je hrdinou zmrazen )
Kazdy objekt ma 9 parametru, ktere jsou oddeleny carkami ( carka musi byt i za poslednim parametrem !!! ), a vse je malymi pismeny. Prvni parametr je jmeno objektu. Pokud objekt neni vyuzit, je jeho jmeno "none". Potom nasleduji souradnice x a y. Ted to nejdulezitejsi - inteligence. No ja to nazyvam inteligence, ale ono je to vlastne jen, jak se ma dany objekt pohybovat. Hodnoty :
0 - objekt se nepohybuje ( je pouzit jen obrazek s nazvem l00.pcx )
1 - objekt se pohybuje doleva a doprava ( jsou pouzity obrazky lxx.pcx a rxx.pcx )
2 - objekt se pohybuje nahoru a dolu ( jsou pouzity obrazky lxx.pcx - nahoru a rxx.pcx - dolu )

Dalsim atributem je rychlost ( speed ), je to o kolik pixelu se ma objekt posunout kazdy krok ( step - je dano speed of step ). Pak nasleduje imagespeed, to je, za kolik kroku se ma prepnout na dalsi fazi ( jak rychle se stridaji jednotlive obrazky, kdyz se objekt pohybuje ). Dalsi atribut je pocet fazi ( maxphase ). Kdyz ma objekt soubory l00.pcx a l01.pcx, maxphase musi byt 2. Nasledujici dva atributy jsem nazval xy1 a xy2. Kdyz bude inteligence objektu 1 , xy1 100 a xy2 200, bude se objekt pohybovat doleva, nez dosahne souradnice 100, potom se otoci a jde k druhe hranici 200. To se stale opakuje. Na poslednim radku je udaj o pocasi. Pokud ma prset, je tam "rain", jinak tam muze byt cokoli. K verzi 0.5 je to vse. Pro ukazku prikladam strukturu souboru 01.rom.

01.rom ( 2.mistnost s demonem )
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000002100210021002100210021000000000000000000000000000000000000
0000000000000000000000000000000000210021001000100010001000110011000000000000000000000000000000000000
0000000000000000000000000021002100100010001000100010001000110011000000000000000000000000000000000000
0021002100210021002100210010001000100010001000100010001000110011000000000000000000000000000000000000
0011001100110010001000100010001000100010001000100010001000110011000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Backs\moon.pcx


00
10
daemon,243,64,1,2,2,2,207,273,
tree02,154,39,0,0,0,1,20231,2188,
tree02,122,58,0,0,0,1,20231,2188,
none,0,0,0,0,0,0,0,0,
none,0,0,0,0,0,0,0,0,
none,0,0,0,0,0,0,0,0,
none,0,0,0,0,0,0,0,0,
none,0,0,0,0,0,0,0,0,
none,0,0,0,0,0,0,0,0,
none,0,0,0,0,0,0,0,0,
rain

 

Temné bytosti



 

 

 

 
Unknown daemon Fishbone Darkangel Firemaster

 


 

 

 
Ghost Hellworm just Lord

 

<

Chyby a nedostatky


Hra ma nekolik nedostatku. Hlavnim je kolisani rychlosti. Jelikoz jsem nestihl pouzit jednotku pro obsluhovani preruseni, pouzivam proceduru delay z vestavene jednotky CRT. Ta ma ale obcas jine intervaly nez ma mit. Pokud tedy hra po spusteni pobezi moc rychle, je treba ji ukoncit a spustit znovu.

Nedostatky co se tyce hry jsou, ze neplati gravitace ( postava skace po uhloprickach ) a pada a skace konstantni rychlosti. Ve vode neplati gravitace, takze voda se chova jako vzduch. Nestihl jsem predelat postavicku, takze je trochu kostickovana. Hra si nepamatuje nejakym externim souborem, kam by se zapisovaly ). Roomedit neni sobestacny, to znamena, ze paky, klice, dvere a napoje se musi naprogramovat ve zdrojaku hry. Slo by to napravit nejakym editorem objektu, ale myslim, ze to dnes, v dobe existence vyvojovych nastroju jako je Gamemaker nebo o neco slozitejsi Delphi nema smysl.

 

Skicy


Skica Lorda

Skica Firemaster

 



Galerie


 

Stáhnout

Staženo 1132x (1.34 MB)
Aplikace je včetně zdrojových kódů v jazyce Pascal

 

  Aktivity (1)

Hru pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 


Miniatura
Všechny články v sekci
Pascal

 

 

Komentáře
Zobrazit starší komentáře (9)

Avatar
Mircosoft
Neregistrovaný
Avatar
Mircosoft:

Tedy dobra. Tak mi posli mejlem nejake blizsi specifikace, jako treba kolik a jak velkych a slozitych map, kolik do nich dat potvor, tajnych dveri, hlavolamu (jestli to pujde) atd. a jak priblizne by ten pribeh mohl vypadat (dobrodruh vyrazi prozkoumat jeskyni || probudil ses ve vezeni || casoprostorova trhlina || zabij strasliveho zleho fujtajbla || me je to jedno, neco uz vymysli ]:> ).
P.S.: v sekci blog by se docela hezky vyjimal nejaky shoutboard nebo neco podobneho, aby si mohli navstevnici taky zanadavat ;) .

 
Odpovědět 24.6.2005 15:09
Avatar
Laaca
Neregistrovaný
Avatar
Laaca:

Hele, tvůj Moonwalker mi stáhnout nejde a nejde. Nemoh bys mi to poslat na mail?

 
Odpovědět 5.9.2005 18:41
Avatar
sdraco
Tým ITnetwork
Avatar
sdraco:

Jo, klidne ho poslu, ale stahnes ho uplne v pohode s nejakou Operou nebo tak . . . zkus to s necim jinym nez IE a kdyztak mi napis na sdraco@gmail.com
Jo a neber to moc vazne, nemel jsem cas a bylo to do skoly Spis mrkni na Cheese mouse v GameMakeru.
Tak jsem to hodil na http://sdr.ic.cz/…htwalker.zip, to uz ti musi chodit . . .

Odpovědět 6.9.2005 12:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
michachal98
Neregistrovaný
Avatar
michachal98:

pls nedal by si mi tu kombináciu páčiek u tej brány s pílou PLS PLS PLS PLS PLS PLS PLS PLS PLS PLS PLS PLS PLS PLS PLS.:):):)

 
Odpovědět 3.9.2010 12:47
Avatar
sdraco
Tým ITnetwork
Avatar
sdraco:

Nahoru, dolů, dolů, nahoru tuším (nebo obráceně) :) Pilová je snad všechny dolů.

Odpovědět 3.9.2010 21:44
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
michachal98
Neregistrovaný
Avatar
michachal98:

veryy DIIIIIIIIIIII­IIIIIIIIIIIKY­YYYYYYYYYYY:D:D:D

 
Odpovědět 4.9.2010 7:51
Avatar
Darkmagic
Redaktor
Avatar
Darkmagic:

mě to nefunguje :(

Odpovědět 5.2.2012 18:38
Nejhorší je, když myslíš, že víš
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Darkmagic
David Čápka:

Ano, musí se to virtualizovat, je to pro DOS a je problém to již spustit. Dal jsem pryč navrhovat :) Projekt jsme s davosem z části předělali do GameMakeru, odkaz je ve Fóru v sekci Inkubátor.

Odpovědět 5.2.2012 18:49
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Neaktivní uživatel:

jak to mam udelat? :O
Kde to mam spustit

Odpovědět 2.9.2013 18:56
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:

dobre uz jde :D

Odpovědět 2.9.2013 18:59
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 19. Zobrazit vše