[ARHIIV] mängumeistrid
Pole sisse logitud. [Logi sisse ]
Mine lehekülje algusesse
Prinditav versioon | Telli teema e-mailile | Lisa lemmikutesse  
Isomeetriline...
jossu155
Level 2
Avatar

Liitunud: 24.7.2008
Postitusi: 34
[EEMAL]




postitati 6.3.2009 11:54 Tsiteeri
Isomeetriline...



Oleks vaja abi, et kuidas teha tavalist omatehtud maze mängu isomeetriliseks.

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 7.3.2009 06:45 Tsiteeri


Hm. Mina kirjutaks koodijupi, mis bitmapiks kogu su leveli ära.
See tähendab - kui sul on näiteks 32x32 seinad, kood loeks kokku objektid ja kirjutaks bitmapi su levelist, 32 piksli kaupa

Näiteks level on selline:

111111
101001
120011
111111

kus 1 on seinaobjekt, 0 on tühi koht, 2 on mängija, jne.

Ja siis saaksid kahe koordinaadiga kogu leveli isomeetriliselt joonistada, bitmappi lugedes
et 1 rea 1 veeru tile on sein (1,1), (1,2) on ka sein, mängija asub koordinaadil (3,2) ja nii edasi.

Seda tehes võib kasutada näiteks 2-mõõtmelist arrayd.

umbes nii kirjutaks bitmapi:
if (position_meeting(0,0,obj_sein)) koht[1,1] = 1;
if (position_meeting(64,48,obj_sein)) koht[3,2] = 2;
...

Tegelikult ei teeks seda mitte käsitsi igale reale koordinaate paugutades, vaid natuke automaatsemalt, umbes nii:

(kogu mu näite bitmapi arraysse võtmise kood)

var a, b; // bitmapi x ja y

a = 0;
repeat(4) // 4 rida horisontaalselt
{
b = 0;
repeat(6) // 6 veergu vertikaalselt
{
if (position_meeting(a*32,b*32,obj_sein)) koht[a,b] = 1;
else if (position_meeting(a*32,b*32,obj_olayer)) koht[a,b] = 2;
else koht[a,b] = 0;
b += 1;
}
a+=1;
}

Põhimõtteliselt vaatame sammhaaval paremale, 6 korda. Mis objekti sellel kohal näeme, paneme numbrina arraysse "koht" kirja
ja teeme seda 4 korda, iga kord sammhaaval alla minnes.

Tulemuseks saad array koht[x,y], mis näitab igal koordinaadil olevat objekti. Nüüd tuleb vaid leiutada kood, mis paneb selle array järgi maha hoopis isomeetrilised objektid. Suht sarnane kood peaks tulema bitmapi tegemise omale, aga isomeetria jaoks pead üle 1 rea poole objekti laiuse võrra nihutama horisontaalset asukohta. See kood leiuta ise.

Nii saaksid 2D maze joonistada ja mängu käivitades tuleb isomeetriline. Nii et GMi room editor oleks nagu
2D level editor isomeetrilisele mazele.

Aga jah, seal on kohati suht keerukat koodimist vaja.

[Muudetud: 7-3-2009 InCreator]
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 7.3.2009 14:46 Tsiteeri


ja kraadides, ebatäpsete liikumissuundade asemel kasuta koordinaatide relatiivset muutmist.
http://i47.tinypic.com/x0w83p.gif
Moonwalk
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
jossu155
Level 2
Avatar

Liitunud: 24.7.2008
Postitusi: 34
[EEMAL]




postitati 8.3.2009 09:52 Tsiteeri


uhh:S:S raske, väga raske :)

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i

Hetkel loevad seda teemat:
Mitte ühtegi - 1 külaline

Mine lehekülje lõppu





Foorumi algbaas põhineb XMB mootoril, modifitseeritud Valter Pundi poolt
Kodulehekülg on tehtud Valter Pundi poolt vpundi ät gmail punkt komm