Omezenost PHP uz mi zacala poradne lezt krkem, tak jsem se na vanoce vrhl na cecko :)
Tohle je muj uplne prvni vyplod s vyjimkou konzolovych Hello World a par prazdnych oken ve WinApi. Proces tvorby byl asi takovy, ze jsem si projel oba serialy o C++, serial o WinApi a prvni tri lekce z SDL. A s tim (a s dokumentaci) jsem si vystacil, vzdyt
co chtit vic nez vykreslovani pixelu, ze :)
Ve hre mysi ridite cerveneho hada a mate za ukol drzet se co nejblize zelenemu - pocitacovemu - hadovi. A podle toho, co hrajete za mod se vam pocitaji body. Celkove receno - ci bliz se souperi drzite, tim vic mate. Mody jsou k dispozici dva - timed, kde mate 120 vterin na to, aby jste nasbirali co nevice bodu, a survival, kde zacinate s 10000 body a mate za ukol pomoci sbirani co nejvetsiho mnozstvi bodu prezit co nejdele nez vam samy od sebe klesnou na 0. Btw, jestli to budete hrat, tak postnete high score - muj rekord je 60541 bodu na timed a 113 sekund na survival.
Cele je to psane ve MSVC++ 2005 a jedine dve knihovny, ktere jsem (krome math.h a time.h) pouzil jsou SDL a SDL_ttf. Kod ma celkem zhruba 600 radek a je prilozen ke hre. Byl bych hrozne moc rad, kdyby se mi na nej nekdo jen tak zbezne podival. je dukladne okomentovany, takze by to melo jit rychle.
Ja sam mam nesmirnou radost z toho, co se mi za nejake necele 3 dny povedlo udelat (to cecko jsem se zacal ucit nekdy 23. pozde vecer). A nejvic hrdy jsem na Ai pocitacoveho hada (ctete: generator nahodneho pohybu) - on se opravdu pohybuje presne tak jak jsem si na zacatku predstavoval - jezdi v celkem uhlednych krivkach, akorat obcas sekne nejakou prudkou zatacku, blafak nebo treba kratky cik-cak. A to cele maji na svedomi asi 4 radky kodu :D
Je tam take par veci, ktere se mi proste udelat nepodarilo - treba antialiasing te cary. Tam jsem naprosto vyhorel na skladani barev. Nebo taky mi nefunguje doplnovani nule pred skore - to aby bylo porad stejne dlouhe - v podobnych arkadach se to tak vetsinou dela. Patricna mista jsou v kodu vykomentovana a oznacena. Diky dopredu vsem, kdo mi poradi.
VERZE V PRILOZE JE ZASTARALA A NE MOC FUNKCNI - STAHUJTE TUTO http://programujte.com/storage/2007_12_31_15_18_44_SnakeChase_v0.3 (v0.3 - 31.12.2007) NEBO SI NAJDETE POSLEDNI VERZI V TOMTO VLAKNE
MIRROR (eDisk) - v0.3: http://www.edisk.cz/stahni/39274/2007_12_31_15_18_44_SnakeChase_v0.3.zip_606.88KB.html
Fórum › C / C++
Snake Chase - moje prvni C++ hra :)
A jeste obrazek. Na nalakani :P
Mely by. Ja sam mam XP SP2 a zkosuel jsem to i na jinym pocitaci, kde jsou win 2k. Zadne dalsi soubory by nemely byt potreba. Nemas treba 64 bit os?...i kdyz to melo fungovat i tak. Nebo...nepoustis to treba rovnou z toho zipu?
Jinak fakt nevim, zkusime jeste pockat jestli s tim bude mit problemy i nekdo dalsi.
nazdar, tak som si to stiahol aj ja a pri spusteni som dostal hlasku 'The system cannot execute the specified program.' Tak som nato pustil dependency wolkera a okrem hlasky 'This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).' som zistil ze program je zavisly na kniznici 'msvcr80D.dll'.
pre odstranenie zavislost, Runtime Library v Project->Property->C/C++->Code Generation nastav na 'Multi-threaded'
Tak jsem tam zkusil dat to multi-threaded a pri kompilovani mi to vypsalo tohle
------ Rebuild All started: Project: SDLtest, Configuration: Debug Win32 ------
Deleting intermediate and output files for project 'SDLtest', configuration 'Debug|Win32'
Compiling...
SDLTest.cpp
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(281) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(282) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(311) : warning C4996: 'sprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(327) : warning C4996: 'sprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(328) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(331) : warning C4313: 'sprintf' : '%i' in format string conflicts with argument 1 of type 'char *'
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(331) : warning C4996: 'sprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(325) : warning C4101: 'output' : unreferenced local variable
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(411) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(415) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(419) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(423) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(433) : warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(477) : warning C4244: '=' : conversion from 'const double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(484) : warning C4996: 'sprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(486) : warning C4996: 'sprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(502) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(507) : warning C4996: 'sprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(512) : warning C4996: 'sprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(524) : warning C4244: 'argument' : conversion from 'double' to 'Uint8', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(524) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(524) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(524) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(524) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(525) : warning C4244: 'argument' : conversion from 'double' to 'Uint8', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(525) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(525) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(525) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(525) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(620) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
c:\documents and settings\mzabsky\dokumenty\visual studio 2005\projects\sdltest\sdltest\sdltest.cpp(646) : warning C4715: 'SDL_main' : not all control paths return a value
Compiling manifest to resources...
Linking...
LINK : C:\Documents and Settings\mzabsky\Dokumenty\Visual Studio 2005\Projects\SDLtest\Debug\SDLtest.exe not found or not built by the last incremental link; performing full link
msvcrt.lib(MSVCR80.dll) : error LNK2005: _isspace already defined in LIBCMT.lib(_ctype.obj)
msvcrt.lib(MSVCR80.dll) : error LNK2005: ___iob_func already defined in LIBCMT.lib(_file.obj)
msvcrt.lib(MSVCR80.dll) : error LNK2005: _fclose already defined in LIBCMT.lib(fclose.obj)
msvcrt.lib(MSVCR80.dll) : error LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)
msvcrt.lib(MSVCR80.dll) : error LNK2005: _strrchr already defined in LIBCMT.lib(strrchr.obj)
LIBCMT.lib(crt0init.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
C:\Documents and Settings\mzabsky\Dokumenty\Visual Studio 2005\Projects\SDLtest\Debug\SDLtest.exe : fatal error LNK1169: one or more multiply defined symbols found
Build log was saved at "file://c:\Documents and Settings\mzabsky\Dokumenty\Visual Studio 2005\Projects\SDLtest\SDLtest\Debug\BuildLog.htm"
SDLtest - 6 error(s), 32 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Uplne ve spodni casti je 6 erroru. Vubec netusim co s tim mam delat, diky za pomoc
ked to kompilujete ako debug, tak namiesto 'Multi-threaded' (co je pre release) dajte 'Multi-threaded Debug' ale to asi tie chyby neodstrani
prestudujte si toto http://msdn2.microsoft.com/en-us/library/72zdcz6f(VS.71).aspx
Diky za pomoc. Sam jsem jeste pogoglil a nasle jsem tyhle dve veci
http://www.gamedev.net/community/forums/topic.asp?topic_id=400514
http://gpwiki.org/forums/viewtopic.php?t=6633&sid=c803613066e3b12a87b4cae8b980de6d
Z toho celkem jednoznacne vyplyva, ze se jedna o problem SDL vs. MSVC++ 2005 a staticke linkovani te dll. Zkusil jsem to alespon buildovat jako Mulithreaded DLL (bez debug) a pak jeste nekde v dalsich nastavenich zrusil, aby to tam zakompilovavalo debugovaci informace. Treba to pomuze.
Take jsem tam pribalil tu jednu chybejici knihovnu.
To CommanderZ : stale bez uspechu, skuste postupovat podla tohto tutorialu http://pgdc.purdue.org/sdltutorial/sdl_setup.html, este sa mrknite tu http://www.gamedev.net/community/forums/topic.asp?topic_id=211756 a http://www.gamedev.net/community/forums/topic.asp?topic_id=411825
Na tech lincich moc nic neni, nic co by konkretne resilo ten muj problem.
Podle toho co jsem zatim zjistil, tak se zda, ze ten problem je jen na kompech, kde nikdy VC++ 2005 nebylo. Mozna si zkus nainstalovat tenhle http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en balik. Dival jsem se do toho a zda se ze to obsahuje vseho vsudy jednu khiovnu msdia71.dll. Pokud by to pomohlo, tak by ji snad stacilo pribalit k te hre a bylo by to ok.
> ... ze ten problem je jen na kompech, kde nikdy VC++ 2005 nebylo...
samozrejme, ze problem je tam. pretoze vy linkujete program tak aby pouzival crt (c run-time) library dynamicky, co pre vs2005 znamena zavislost na 'msvcr80.dll', pre vs2008 zasa 'msvcr90.dll' a tak podobne. riesenim je zmenit 'Multi-threaded Dll' na 'Multi-threaded', pravdepodobne je problem v sdl, ktora nebola zostavena tak aby toto nastavenie brala v uvahu.
pokial chcete odstranit zavislost od crt (crt kniznica bude sucastou exaca), tak potom postupujte takto:
1) stiahnite si sdl zdrojove kody
2) postupujte podla navodu pre visual studio (VisualC.html) a skompiluje sdl, predtym vsak zmente v nastaveni SDL a SDLmain 'Multi-threaded DLL (/MD)' na 'Multi-threaded (/MT)' pre release verziu
3) vo vasom projekte tiez zmente 'Multi-threaded DLL (/MD)' na 'Multi-threaded (/MT)', tiez pre release verziu
k kompilacii SDL musite mat nainstalovane dxsdk
na ukazku vam posielam mnou skompilovane sdl v release verzii, bez zavislosti na crt. program spustite s parametrom snake.txt, teda 2d_bone_system snake.txt
a tu som vam este pribalil vasho snejka, samozrejme bez zavislosti
Diky, jadro problemu jsem celkem pochopil. Tohle uz vam tedy funguje? A jestli to dobre chapu, tak pokud bude ke hre pribalena tahle vami zkompilovana SDL.DLL, tak to muzu klidne kompilovat s Mult-Threaded bez tech hlasek?
Payne: Ta je v tomhle, proste ji tam prekopiruj. http://programujte.com/storage/2007_12_29_22_53_04_SnakeChase_v0.1
EDIT: Fakt, ono to funguje...uz to jede i s tim MultiThreaded...
Tak tady je verze 0.2. Ta uz urcite funguje i na pocitacich bez MSVS - tentokrat jsem si to vyzkousel. Take je tam ta blba zlib1.dll. A jeste je tam nekolik drobnych vylepseni a bugfixu (celkem 2 :) ) - hlavne jde nyni klavesou R okamzite restartovat hra.
+ Prosim, pokud se vam hra bude sekat, tak si zmacknete F a zobrazi se framerate. Ten sem napiste spolu s udaji co mate za komp. Ja to zkousel na 450 P2 a tam to melo 13-15 a moc to hrat neslo. Na svem A2500+ mam mezi 50-80 a je to krasne plynule :P
A neskutecne moc diky Adamovi Hlavatovicovi.
EDIT: Tak me napada, ze uz k tomu pro priste ani nemusim pribalovat tu msvcr80.dll, balik se tim zmensi na sestinu :)
To Payne : to ale nieje zavislost toho exaca, ale nejakej dll
> "A jestli to dobre chapu, tak pokud bude ke hre pribalena tahle vami zkompilovana SDL.DLL, tak to muzu klidne kompilovat s Mult-Threaded bez tech hlasek?"
skor som chcel dosiahnut toho aby ste si tie kniznice skompiloval sam, ja som vam to posielal len ako ukazku, ze to ide a ze to tu nevarim z vody.
Dobra blbost :-) Když někdo umí, tak to hold jde.
A hlavně je super, že jde skompilovat i v Linuxu. Sice to pak nefunguje jak má, ale to by mělo jít jednoduše opravit. Takže máš u mně plus body za multiplatformnost. Takhle kdyby dělali hry všichni, bylo by na tom světě lépe ...
Jede i ve wine, ale málo FPS. Asi kolem 20 a 30. Když jsem to překompiloval, tak kolem 60.
Jinak po kompilaci v linuxu správně nefunguje generování cesty pro AI. Had řízený počítačem jezdí pořád rovně a odráží se akorát od stěn, vypadá to jako pong. Asi bude chyba v rozdílné funkci generátoru náhodných čísel nebo tak něco.
tommz9: Kdyztak se v debuggeru podivej na funkci GetRandomDouble. Je to asi tri radky kodu, ktere maji vygenerovat cislo od 0 do 1. Cele ta funkce je docela zpatlana a jsem rad ze vubec nejaka nahodna cisla generuje. Treba v linuxu funguje jinak ziskavani systemoveho casu...nebo to narusuje to jedno zbytecne volani Rand-u..nevim
Erik: U toho Survivalu mije jasne, ze kdyz je nekdo dobry, tak to musi logicky byt nekonecne. Proste staci aaby byl multiplier prumerne na x6 a je to. Myslim ze tam pridam nejake gradualni zvysovani obtiznosti (asi nejspis zrychlovani Ai hada nebo zpomalovani hracova hada), coz by to vyresilo.
Vsem diky za reakce
EDIT:
tommz9: Jakto ze se ti tolik zvysily framy pri rekompilaci? Vzdyt ja tam mam vsechny optimalizace na max...a i debugovaci znacky jsou pryc. To nechapu :(
Som sa kukol na to GetRandomDouble() - ono je to dobre le to cislo (asi je to SHRT_MAX, ze ?;) ) ktroym to nakoniec delis nahrad RAND_MAX - to ma v sebe na vsetkych systemoch max. moznu navratovu hodnotu rand().
A inac mi nejdu fonty ;((( a chybove hlasky to nedava ziadne... zaujimave je, ze fps ukazovac ide.
Po rekompilacii to ide aj mne rychejsie (+- 80 fps), ide to rychlejsie, lebo ja a asi aj tommz9 sme to pustal cez emulator -Wine
Ty fonty...v tom zipu je soubor font.ttf, zkus ho zobrazit, popripadne tam zkopiruj a prejmenuj jiny font ze systemu.
To s tim RAND_MAX vim...to jsem zrusil v ramci problemu s nahodnymi cisly (i kdyz to asi za vubec nic nemohlo). Do dalsi verze to opravim.
Aha, to jsem si nevsiml.
Poustis to pres to wine nebo jsis to zkompiloval primo pro linuxe?
..ted me napada...co mas za rozliseni obrazovky? Ta hra ma v sobe hardcoded 1024*768...tak jestli neni nejakyproblem s tim. A nefunguji ti jenom pisma ve hre nebo ani menu?
Pod wine ide vsetko pekne(aj pisma).
V na linuxe skompilovanej vezii nejdu ziadne pisma (ani menu) okrem fps meraca. Rozlisenie mam 1440x900 ale ak si dobre pamatam, ak ma sdl problem so zmenou rozlisenia tak posle cely program do hajan a navyse oboch hadov vidim jasne a zretelne ;)
To jsem rad. Kdyz mas to sirokouhle rozliseni...je to zkreslene nebo tam jsou na bocich nejake cerne pruhy nebo tak neco? U mne na 1280*1024 se to normalne roztahuje. Kdyztak priloz screen...jen tak pro zajimavost
Diky, jaktoze to mas v okne? to je v tom wine? Ja v te release verzi urcite mam SDL_FULLSCREEN :smile11:
Ja puvodne myslel jak by to vypadalo roztazene na fullscreen na tom sirokouhlem monitoru.
timed:
27 400 points na touchpadu :-D
XP SP2, 1.8 GHz Intel Core Duo
Frame 70-80
nice job ;-)
CommanderZ: K tomu kodu, sice jsem ho zase tak uplně dopodrobna nebral, ale vyjádřím se.
Je z toho vidět že o programování her nemáš skoro páru, je to taková domácká hra na koleni bez enginu, ale umíš si růzdný věci vyřešit a vymyslet sám, takže se to i ve finále je docela slušný. Je to psaný v C a to tomu stácí na přehlednosti, kdyby jsi o psal OOP, vytvořil si objekty rozdělil si soubory, tak bys okamžitě poznal rozdíl. A měl by jsi ještě větší chuť dodělávat detaily.
Takle ve funkcích se taky dá psát ale musíš si to trochu rozvrnout. Třeba main dát do headeru na začátku by mohly bejt prototypy třeba start, cycle a end, v main použitej start pak while co by opakovalo cycle a end. Tam bys vymyslel něco co by ukončilo main (může to bejt jedna funkce). A v source kodu bys tyto funkce vyplnil podle svýho, a ty ostatní bys hodli zvláš do nějakýho jinýho kodu, nebo je rozpackoval.
Jako hra, jako hra to vůbec neni špatné. AI nepatří žádné postavě, ale čáře čili se nedá říct že je tupá, ta čára se chová docela klamavě a do tý hry asi opravdu sedne. pak je dobré že se čáry časem mažou a neni to pak jak jak vomalovánky.
Tak, nova verze je tady. Novinky:
- tzv. streaky. Co to je vsichni urcite znate treba z UT - kdyz se vam chili dari, tak vam to hra zacne sama komentovat. V praxi to vypada tak, ze se musite dve vteriny drzet v urcite vzdalenosti. Kdyz se vam to podari, tak to hra zhodnoti a dostanete tucnou bodovou odmenu. Nejnizsi stupen je "Good!", kdy se musite mit po dve vteriny zakladni multiplikator alespon 4x, pak to pokracuje pres nekolik dalsich stupnu jako treba "Awesome!" (multip. 6x) az po "U L T I M A ! ! !" (9x), za kterou dostanete 100 000 bodu za ruku. To ale znamena byt po nejakych 700 pixelu ve vzdalenosti max 15 px, tedy je to temer nemozne. Ja sam dosahl nejvyse prave na "Awesome!". Tento prvek ma pridat do hry zase trochu akce a motivace, myslim ze se to docela dari.
- progresivni zvysovani obtiznosti u survivalu. Hra vam bude vysavat cim dal tim vice bodu, nez vas uplne znici :) Vysavani zacina na 600 (to bylo i ve starsich verzich), ale kazdou vterinou se zvysuje o 1.66 bodu/sek - tj. o 100 bodu za minutu. Po ctyrech minutach hry tak uz neztracite 600, ale rovnou 1000 boude za vterinu.
- RAND_MAX - generator nahodnych cisel byl upraven tak, aby spravne fungoval i na newoknech. Nicmene tyto verze si uz musite zkompilovat sami (jak k memu poteseni uz mnozi delali), protoze jak mam k dispozici akorat kompilator pro Win32.
- spravne vystredovani pisem. Nyni to co ma byt vystredeno na stred opravdu vystredeno jak ma byt (matematicky), neni uz to tedy jenom jako-zhruba-umisteni na stred. Vypada to o dost lip.
- a jedna technicka dobnost - tato verze je jako prvni zkompilovana pod VC++ 2008 Express.
A kod uz se nafoukl na vice nez 900 radek :)
Moje nove high score (ta stara jsou kvuli tem zmenam kompletne pase) :
Timed: 87623
Survival: 295 (fuj, to byla makacka. Na konci uz me uplne palily oci. A myslim ze kdo se dostane pres 400 tak vazne respekt. Tou dobou uz odhaduju ztratu bodu na tak 1400 za sekundu...)
Tomas_Dejmek: Diky za analyzu. To s tou parou si to odhadl docela presne. Ja s nimi totiz nemam vubec zadne zkusenosti:) OOP jsem tam radsi necpal, protoze jsem si na to netroufl. Ja vlastne ani netusil, ze se mi to povede takhle dotohnout. Treba struktury jsem tam i mival, pak jsem je ale v ramci jednoho zakysu vsechny dal pryc. Ty funkce jsem tam proste cpal bez ladu a skladu tak jak bylo potreba. Na rozdeleni kodu do vice souboru jsem i myslel - treba mit to na vlastni jadro, Ai funkce (Ai*) a kreslici funkce (Draw* s vyjimkou DrawScene) by bylo urcite lepsi, ale nejak jsem se k tomu nedokopal. Ten druhy odstavec jsem pak moc nepochopil.
Jinak, ted uz tam moc nehodlam pridavat nejake dalsi featury nebo nejak preskupovat kod, pokud me nic opravdu zasadniho nenapadne, tak dalsi verze uz bude 1.0. Thle 0.3 uz skoro muzete brat jako RC :P
A jeste obrazek
ooooooh, 635 sekund na survival. Ve skole kde jsem mel 13-15 FPS :P
hehe, pekna hra ... aj ked v0.3 mi vypisovala chybu pri extrahovani suboru font.ttf a program mi nesiel spustit, ale v0.2 mi isla v pohode :) ...
To je zvlastni. Ja to uz nekolikrat stahoval a rozbaloval v pohode. Nektere stahovaci programy to ale ulozi jako soubor s priponou .3 misto .zip. Prejmenovals to?
Ok, tady je mirror (edisk):
http://www.edisk.cz/stahni/39274/2007_12_31_15_18_44_SnakeChase_v0.3.zip_606.88KB.html
Na nekterych pocitacich chvili trva nez se to rozsviti. Taky muzes zkusit, jestli u tebe jenom neblbne pismo (v menu nic jineho neni) - zapni to, chvili pockej, pak zmackni klavesu 1 a pak klikni mysi.
AdamHlavatovic napsal:
To Payne : to ale nieje zavislost toho exaca, ale nejakej dll
> "A jestli to dobre chapu, tak pokud bude ke hre pribalena tahle vami zkompilovana SDL.DLL, tak to muzu klidne kompilovat s Mult-Threaded bez tech hlasek?"
skor som chcel dosiahnut toho aby ste si tie kniznice skompiloval sam, ja som vam to posielal len ako ukazku, ze to ide a ze to tu nevarim z vody.
Taky ma problem s knihovnami, bohuzel SDL_Image se mi nedari prekompilovat....Nemohl by jsi mi ho prosím překompilovat?Byl bych ti moc vděčný...
to yaqwsx: a co konkretne vam natom nejde ?
To AdamHlavatovic : No VS mi prvne hlasilo, ze nelze najit afxres.h, kdyz jsem ho prilinkoval tak mi to hlasi , ze ho nelze otevit...
Jinak se omlouvam, ze jsem vam tykal....
ziadne afxres.h k skompilovaniu SDL_image nieje potrebne. Postup pri kompilacii je taky:
* ze si stiahnete zdrojove subory pre SDL_image http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.zip
* rozbalite do lubovolneho adresara, po rozbaleni najdete v adresari subor VisualC.zip, ten rozbalite.
* v adresari VisualC spustite SDL_image.sln a date rebuild
kniznica sa vam potom skompiluje v zavislosti na nastaveni linkera a kompilatora. este dodam, ze predpokladom ku kompilacii SDL_image je rovnako skompilovane SDL.
TAk stale mi o haze chybu:
1>Compiling resources...
1>.\Version.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'.
A cast kodu:
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
Omlouvam se, ze jsem takovy trochu natrvdly, ale hold se mi posledni dobou nedari....
tak preca len je ten afxres.h potreba, spominany subor je sucastov mfc kniznice a najdete ho v adresary ...\VC\atlmfc\include\, v pripade ze ale pouzivate expres ediciu visual studia, je mozne ze altmfc kniznicu nemate nainstalovanu, respektive ze ta nieje sucastou edicie (ale to neviem isto, pretoze expres ediciu nepouzivam). inak mozte skusit odstranit s projektu version.rc, ktora ajtak obsahuje len informacie o SDL ake je autor, verzia a podobne.
Mě tahle hra jde a je celkem dobrá a na to že si ji dělal ve složitém C++ tak je dost dobrá přeji dost úspěchů nadále
milanmichal napsal:
Mě tahle hra jde a je celkem dobrá a na to že si ji dělal ve složitém C++ tak je dost dobrá přeji dost úspěchů nadále
Diky. V C++ jsem se zatim vydal trochu jinym smerem (hlavne za ucelem zaziti nekterych zakladnich principu a zvladani kodi vetsiho projektu), to ale rozhodne neznamena, ze jsem s hrami skoncil :)
:D No super celkem se těším an další tvou hru . TAdy tahle mě příde celkem dost originální zábavná a přitom jednoduchý, i když to bylo anglicky a já musel pochopit přímo ze hry co je účelem hry i tak mě to moc bavilo a zistil sem že takovou hru jsem ještě ani neviděl a moc mě to bavilo .......... jen tak dál mymochodem nahrál jsem: 29 908 bodů
Důkaz zde:http://uloz.to/584664/skore-ve-hre-snake-chase.png
A moje taktika ? :D : Snažit se , Snažit se a Snažit se
:D No super celkem se těším an další tvou hru . TAdy tahle mě příde celkem dost originální zábavná a přitom jednoduchý, i když to bylo anglicky a já musel pochopit přímo ze hry co je účelem hry i tak mě to moc bavilo a zistil sem že takovou hru jsem ještě ani neviděl a moc mě to bavilo .......... jen tak dál mymochodem nahrál jsem: 29 908 bodů
Důkaz zde:http://uloz.to/584664/skore-ve-hre-snake-chase.png
A moje taktika ? :D : Snažit se , Snažit se a Snažit se
:D No super celkem se těším an další tvou hru . TAdy tahle mě příde celkem dost originální zábavná a přitom jednoduchý, i když to bylo anglicky a já musel pochopit přímo ze hry co je účelem hry i tak mě to moc bavilo a zistil sem že takovou hru jsem ještě ani neviděl a moc mě to bavilo .......... jen tak dál mymochodem nahrál jsem: 29 908 bodů
Důkaz zde:http://uloz.to/584664/skore-ve-hre-snake-chase.png
A moje taktika ? :D : Snažit se , Snažit se a Snažit se
Pochopíte už všichni, že kód, který se kompiluje se neříká script?:D Já si to snad dám do podpisu:-)
Zkus tohle:
keybd_event(VK_MENU, 0x38, 0, 0);
keybd_event(VK_RETURN, 0x1c, 0, 0);
keybd_event(VK_RETURN, 0X1c, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0x38, KEYEVENTF_KEYUP, 0);
Prý nefunguje pod Vistama
lolik napsal:
vedely by ste my poradit akym scriptom mam vytvorenu aplikaciju spustat vo full screen ako je tato hra? diky
Ke hre je prilozen kompletni docela dukladne okomentovany zrdrojovy kod ;) Ano, je to ten .cpp soubor oteviratelny v notepadu. Pak uz to staci jen nejakym C++ kompilatorem za pritomnosti vhodnych knihoven zkompilovat a je to :P
Zkus tohle:
keybd_event(VK_MENU, 0x38, 0, 0);
keybd_event(VK_RETURN, 0x1c, 0, 0);
keybd_event(VK_RETURN, 0X1c, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0x38, KEYEVENTF_KEYUP, 0);
Prý nefunguje pod Vistama
To je na me?
A moje taktika ? :D : Snažit se , Snažit se a Snažit se
A ja ti reknu oficialni taktiku autora hry, se kteru v survival modu nahral 12 minut: hraj to na starsim kompu (ale zase ne moc starym) - ono to nema dostatecne ohlidane framy, takze to je cele pomalejsi a jednodussi :)
hrano na touchpadu...
Respekt, ja to na touchpadu absolutne nedaval.
CommanderZ napsal:
Zkus tohle:keybd_event(VK_MENU, 0x38, 0, 0);
keybd_event(VK_RETURN, 0x1c, 0, 0);
keybd_event(VK_RETURN, 0X1c, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0x38, KEYEVENTF_KEYUP, 0);
Prý nefunguje pod Vistama
To je na me?
Nene, to bylo lolika
CommanderZ: Hele nebudeš dělat zase nějakou primitivní ale zábavnou hru v C++ ? Třeba jen na procvičení tvých vědomostí , ale rád bych si nějakou dvojí zase zahrál ;-) .
V C++ ted pracuju na projektu OpenTTD (i kdyz nejsem a ani nechci byt clenem vlastniho dev teamu). Moje prispevky:
OpenTTD screensaver (de facto stand alone, skoro dokonceno) - screensaver postaveny na kodu hry, promita zadanou ulozenou hru -http://www.tt-forums.net/viewtopic.php?f=33&t=38544&start=0&st=0&sk=t&sd=a
Better Map Borders patch (zda se ze dokonceno, ceka na zahrnuti do trunku) - zasadne vylepsuje zpusob, jakym jsou generovany okrajove casti mapy. Vysledkem je daleko prirozenejsi krajina - http://www.tt-forums.net/viewtopic.php?f=33&t=37853&start=0&st=0&sk=t&sd=a
Advanced Terrain Schemes patch (pozastaveno, cekam az bude BMB v trunku) - rozsiruje generator nahodnych map o moznost vybrat si ramcove tvar pevniny (jezero uprostred, kanal uprostred atd...) - http://www.tt-forums.net/viewtopic.php?f=33&t=37740
Delam to hlavne abych se naucil jak vypada kod vetsiho projektu. Jeden napad na trochu podobnou picovinu ale mam a (oproti ocekavani) uzasny uspech snake chase docela motivuje. Bohuzel ted mam malo castu (a v rijnu se to jeste o dost zhorsi).
Ok hezké projekty ale usoudil jsem to jen podly screnů protože nemám Transport Tycona . I když teď nebudeš dělat žádnou hru ( Protože nemáš čas ) tak si počkám na nějaké které uděláš až čas budeš mýt .
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Moje první kalkulačka — založil Domino
Moje první instalace linuxu — založil bugy
Moje první aplikace ve Windows Forms - kalkulačka — založil czbero
Jednoducha hra neco jako alpha verze hry snake pomoc — založil Daemon481
Moje hra v C++ a OpenGL — založil Jakub Flaška
Moderátoři diskuze