Diskuze: Mapa aneb dungeon
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
asi bych zkusil tohle: http://www.itnetwork.cz/…eho-bludiste
s tím, že bych upravoval vlastnosti "základů" (např. vynechání určitého
směru, jejich pozice) a pak bych tam rozházel místnosti.
btw s tím pravopisem by si měl něco dělat. Co si asi pomyslí šéf firmy, když mu pošleš žádost o místo napsanou takhle?
Ahoj,
předně CHYBY!! nebudu do vícekrát opakovat, pokud tohle uvidím v dalším tvém vláknu nebudu reagovat.
Tvůj problém je vcelku komplexní, vzhledem k tvým předchozím vláknům
bych dal ruce pryč.
Nicméně všechno jde a tento problém, byť složitý je krásný.
Předně si mapu rozděl na mřížku a definuj si základní "struktury". Následně for cyklem ve tvaru:
xx = 0;
yy = 0;
for(a=0 a<=((room_width div 32) * (room_height div 32)) a++)
{
// generační kód
}
pro generaci použiješ proměnnou pro kontrolu zda generuješ a následné
vygenerování náhodné předem definované struktury. Práci ti usnadní pokud
si struktury budeš definovat v poznámkovém bloku a následně je načteš
přes skript.
Kód z poznámkového bloku může vypadat např takto:
// Struktura: mistnost1
znak1 = oWall
znak0 = "free_place"
11111
10001
10001
10001
11111
Následně načteš soubor následovně:
Místa ve kterých se může napojovat jedna místnost na druhou si můžeš
označit např. 2 a pak náhodně vybrat jednu z dvojek z načítaného souboru
a označit ji jako místo pro napojení.
Je dobré si někam uložit co jsi vlastně vygeneroval, protože chceš aby
mezi dvěma místnostmi byla např. chodba.
Na škodu určitě není ani řešení za použití ds_ map, nicméně to je
poněkud složitější, byť efektivnější řešení. Můžeš si také
napsat knihovnu v C/C++. Pokud je java tvůj kamarád na gitu je zdroják pixel
dungeonu
Pokud bys chtěl detailnější informace napiš mi PM
Hodně zdaru
jo díky funguje to, a mimochodem to chybi je úmislně (taková malá ironie)
V tom případě zatrhni prosím moji odpověď jako akceptované řešení a
ironii si prosím nech na jindy vypadá to velmi amatérsky.
xx = 0;
yy = 0;
for(a=0 a<=((room_width div 32) * (room_height div 32)) a++)
{
//genereace
if (xx < room_width div 32)
{
xx += 32;
}
else {if (yy < room_height div 32) {yy += 32; xx = 0;} else {break;}}
}
Btw. co ti funguje? V odpověďi jsem nastínil pouze teoretické řešení.
nevim jestli jsem tě pochopil ale uďelal jsem to tak že jsem jsem
naprogramoval jsem ‘‘šablony‘‘ jednotlivích místností,funguje to tak
že o.creator nejdřív zkontroluje jestli je na x = random
y = random dostatek místa a potom podle hodnoty global.roomgen(random(0-40))
vygeneruje dannou místnost(každá místnost má svoje číslo(např.0 je malá
místnost s random itemem a 5 je místnost do L))potom se random vygeneruje
otočení(0-90-180-360),nakonec se vše spojí chodbou...zní to složitě ale
je to mnohem složitější
Na youtube by rozhodně pár věcí být mohlo stačí dobře hledat, ale
minimálně tady určitě něco bude byl tu dokonce i machr na to a co si
pamatuju byly tam docela pěkné výsledky, zkus se tu prohrabat.
Btw: diablo 1/2 nemá různé mapy,ale tu stejnou která je jen otočená to je docela pěkný trik
Ahoj, zní to neprakticky a určitě je to ještě nepraktičtější XD
x = random, y= random?? wow
otáčení? wawawau
Netušil jsem, že umíš spojovat instance do celků, které pak můžeš
otáčet a vytvořit funkční example. můžeš mi poslat link? Jsem velmi
rozpačitý z toho, že zde pokládáš dotazy s pravopisem, za který by se
styděl i Hus (a jeho nabodeníčka XD), pokládáš "primitivně" popsané
problémy a pak použiješ tyto velmi advanced techniky. Jsem moc zvědavý na
ukázku
Hodně zdaru
Zobrazeno 8 zpráv z 8.