Space Hero v C# .NET

C# .NET Windows Forms Zdrojákoviště Space Hero v C# .NET

Na začátku hry máte k dispozici pět životů a v každém levelu musíte zničit všechny nepřátele. K tomuto vám můžou pomoci prvky jako zvýšení rychlosti lodi, lepší střela, štít atd. Hra obsahuje také dva bonusové a tři Boss levely.

Ovládání

Hra se ovládádá pomocí šipek a mezerníkem se střílí.

  • S - vypíná/zapíná hudbu
  • S - vypíná/zapíná efekty
  • P - pauza
  • Ctrl + H - schová spodní menu

Tvorba

Při tvorbě této hry jsem se nechal inspirovat Space Invaders, ale prvky které mně osobně nevyhovovaly jsem vypustil nebo upravil a nějaké vlastní jsem přidal :) Hru jsem vytvořil za necelé 3 měsíce a myslím, že jsem se dost naučil, což byl hlavní záměr :)

Závěr

Určitě to není žádná pecka, ale dlouhé chvíle určitě zažene :D Doufám, že se vám bude alespoň trochu líbit :)

Zdrojové kódy jsou přiloženy.


Galerie

Hra byla vytvořena v roce 2014.

 

Stáhnout

Staženo 184x (14.5 MB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

  Aktivity (1)

Hru pro vás napsal Gramli
Avatar
Autor se věnuje hlavně jazyku C#

Jak se ti líbí článek?
Celkem (2 hlasů) :
4.54.54.54.54.5


 



 

 

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

Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

GDI je dost rychlé, spíše tam máš nějakou chybu nebo máš vysoký interval na timeru.

Odpovědět 17.5.2014 16:03
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
Gramli
Redaktor
Avatar
Odpovídá na David Čápka
Gramli:

Hlavní timer ze kterého se volá Invalidate() má interval 75ms. To není ideální, ale když jsem dal větší interval, zdálo se mi, že plynulost vykreslování není ideální.

Odpovědět 17.5.2014 16:10
Kdo to říká ten to je...
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Gramli
Jan Vargovský:

Hru jsem neviděl, ale

1 / 75*10−3 = 13,3 fps

což teda není moc :)

 
Odpovědět  +1 17.5.2014 16:20
Avatar
Gramli
Redaktor
Avatar
Odpovídá na Jan Vargovský
Gramli:

To ne, ale při intervalu 75ms běží hra pěkně, na ideální hodnotu (30fps) by to chtělo 33ms, což už je podle mě zbytečnost.

Odpovědět 17.5.2014 16:27
Kdo to říká ten to je...
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Gramli
David Čápka:

30 FPS určitě není zbytečnost, počítači je to úplně jedno a hráč to vidí plynule. Tvou hru jsem zkoušel a na timeru bych určitě ubral, protože pohyb nebyl plynulý.

Odpovědět  +1 17.5.2014 16:38
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
Gramli
Redaktor
Avatar
Odpovídá na David Čápka
Gramli:

Máte oba pravdu :D Za celou dobu co jsem na tom dělal, mě to nenapadlo :D Ovšem když snížím razantně interval, budu muset upravit posuny nepratel a hrace, ale určitě to upravím, protože je to rozhodně lepší.

Odpovědět  +1 17.5.2014 17:04
Kdo to říká ten to je...
Avatar
Odpovídá na Gramli
Luboš Běhounek (Satik):

To není ten správný postup :)

Správný postup by byl posouvat objekty v závislosti na jejich rychlosti a době trvání posledního snímku.

Např. pokud se má nepřítel posunovat o 50 pixelů za sekundu a poslední snímek trval 0.043 sekund, tak by jsi ho nyní měl posunout o 50 * 0.043 = 2.15 pixelů.

Když teď někomu ta hra poběží méně fps než zamýšlíš (pomalý PC), tak s tvým přístupem se mu zpomalí celá hra :)

Odpovědět  +2 18.5.2014 14:22
:)
Avatar
Gramli
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Gramli:

Co myslíš tím "poslední snímek trval"? Jak se dostanu k tomu číslu?

Odpovědět 18.5.2014 14:52
Kdo to říká ten to je...
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Gramli
Theodor Johnson:

Použij Stopwatch, vždy si ve snímku získáš hodnotu (od minulého) a resetuješ a v dalším snímku to samé

Odpovědět  +1 18.5.2014 14:56
Přecházím na "Cross-Platform Development"
Avatar
Odpovídá na Gramli
Luboš Běhounek (Satik):

Musíš si nějak spočítat, jak dlouho ti trvalo vykreslení a vypočítání minulého snímku - třeba přes zmíněné StopWatch.

Odpovědět 19.5.2014 0:37
:)
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 13. Zobrazit vše