Autor | Zpráva | ||
---|---|---|---|
danooo Profil * |
#1 · Zasláno: 4. 10. 2009, 09:20:02
ahojte. Pracuji na jedné browser hře, a narazil jsem na problém s generování mapy.
Přihlásí se uživatel, podle jeho souřadnic se na mapě zobrazí jeho vesnice a okolo té vesnice se zobrazí vesnice jiných hráču. Mapu by se dalo posouvat šipkama. Nevím jak na to, jak to generovat, něco co mají v ******** či divokých kmenech. |
||
Alphard Profil |
#2 · Zasláno: 4. 10. 2009, 09:24:58
Tam je to typická KSS, ne? Pro pohyb stačí sčítání a pro výpočet vzdálenosti pythagorova věta.
|
||
danooo Profil * |
#3 · Zasláno: 4. 10. 2009, 09:27:39
nemůžeš mě ukázat jednoduchý příklda?
|
||
Alphard Profil |
#4 · Zasláno: 4. 10. 2009, 09:42:46
Řekněme, že zobrazovaná vesnice má souřadnice [59; -38] a chceme zobrazit ještě několik vesnic kolem, takže se vezme vše z množiny X = {56; 57; 58, 59; 60; 61; 62} v kartézském součinu Y = {-35; -36; -37; -38; -39; -40; -41}.
Zapsáno programově: for ($i = $x - 3; $i <= $x + 3; $i++) { for ($j = $y + 3; $j >= $y -3; $j--) // abychom zobrazovali od horních řádků, je to jednodušší { $souradnice[$i][$j]; //tady by se mohla třeba vykreslit buňka tabulky } } |
||
Alphard Profil |
#5 · Zasláno: 4. 10. 2009, 09:56:05
Doplním, že informace o vesnici budou asi v databázi, kde bude mít tabulka i sloupce x a y. Dotaz na vesnice zájmu by pak mohl být:
"select * from vesnice where (x between ".($x - 3)." and ".($x + 3).") and (y between ".($y-3)." and ".($x+3).")"; |
||
fakeit Profil * |
#6 · Zasláno: 4. 10. 2009, 10:02:40
danooo
Máš už mapu vygenerovanou? Myslím v DB. To co tu spíš řešíš je vykreslování. |
||
drvaca Profil |
#7 · Zasláno: 4. 10. 2009, 10:06:04
danooo
Pošli mi na e-mail link :) Docela by mě zajímalo jak to bude vypadat. . . Třeba by mě ta hra i zaujala a začal bych ji hrát :D drvaca@volny.cz |
||
danooo Profil * |
#8 · Zasláno: 4. 10. 2009, 10:07:51
drvaca
Až to bude, tak ukážu. Ale sháníme grafika .-) fakeit Mám. Já potřebuji to vykreslování Alphard hned to zkusím |
||
danooo Profil * |
#9 · Zasláno: 4. 10. 2009, 10:16:22
Alphard
Já mám v databázi takto: 12|21 Mám to udělat tak?: sloupec x: 12 sloupec y: -15 |
||
Alphard Profil |
#10 · Zasláno: 4. 10. 2009, 10:21:14
danooo:
„Mám to udělat tak?:“ Asi ano, je to normalizovaný tvar. Váš tvar pak můžete kdykoliv vytáhnout pomocí concat. |
||
danooo Profil * |
#11 · Zasláno: 4. 10. 2009, 10:45:17
Alphard
No a teď nevím jak to dát dohromady s tou db |
||
fakeit Profil * |
#12 · Zasláno: 4. 10. 2009, 10:57:40
danooo
Jestli zvládneš udělat generátor mapy, tak bys neměl mít problém s vykreslováním :) |
||
danooo Profil * |
#13 · Zasláno: 4. 10. 2009, 11:00:18
fakeit
co je na tom složité? |
||
fakeit Profil * |
#14 · Zasláno: 4. 10. 2009, 11:03:26
danooo
Předpokládám, že to děláš pro nějakou lepší hru, takže generovat náhodně 4000 políček tak, aby na XX% byly obyvatelné plochy a na YY% neobyvatelné je poněkud složitější než vykreslovat 48 okolních polí :) |
||
danooo Profil * |
#15 · Zasláno: 4. 10. 2009, 11:08:45
to dělá trochu jinak, ale mám to tak
|
||
Alphard Profil |
#16 · Zasláno: 4. 10. 2009, 11:51:50
Už nevím, co víc radit. Vesnice z aktuálního výběru se vytáhnou z databáze a vloží do pole (v projektu takovéhoto rozsahu by určitě neměl chybět databázový layer, takže kód na jeden řádek). Při vykreslování mapy se pro každou souřadnici zkontroluje, jestli je pro ni v poli vesnic záznam. Pokud ano, vypíšese název, typ a nevím co ještě, pokud ne, nechá se buňka prázdná.
Při posunu nahoru se upraví y + 1, při posunu vlevo x - 1 atd. a vše se opakuje. Pro tvůrce webhry by tohle měla rutina, nad kterou se ani nepřemýšlí. |
||
danooo Profil * |
#17 · Zasláno: 4. 10. 2009, 12:16:10
Jo už to mám díky
|
||
Joker Profil |
#18 · Zasláno: 4. 10. 2009, 12:18:01
danooo:
Mimochodem, téma mapy a pohybu po ní se tu už řešilo v několika jiných vláknech. Snad polovina potenciálně-začínajících webových programátorů touží udělat hru jako ta co začíná na T a končí na N :-) |
||
danooo Profil * |
#19 · Zasláno: 4. 10. 2009, 12:30:29
Joker
já ne |
||
danooo Profil * |
#20 · Zasláno: 4. 10. 2009, 12:32:21
„Mimochodem, téma mapy a pohybu po ní se tu už řešilo v několika jiných vláknech. “
Joker kde? dáš linky? |
||
Časová prodleva: 15 let
|
0