[ARHIIV] mängumeistrid
Pole sisse logitud. [Logi sisse ]
Mine lehekülje algusesse
Prinditav versioon | Telli teema e-mailile | Lisa lemmikutesse  
Õpetus: Suuure ruumi tegemine, optimaalselt.
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 5.9.2009 01:45 Tsiteeri
Õpetus: Suuure ruumi tegemine, optimaalselt.



Esiteks tuleb teha tohutult creatoreid, creatorid creatorite sees.

Creator on objekt, mis ... creadib midagi :D
Näiteks puucreator - create eventis on
instance_create(x,y,puu);

siis 20 puu creator - create eventis on:
for (i=0;i<21;i+=1) { instance_create(x+random(320)-random(320),y+random(320)-random(320),puucreator); }

siis metsa creator - create evendis on:
for (i=0;i<15;i+=1) { instance_create(x+random(1000)-random(1000),y+random(1000)-random(1000),kakskymmend_puud_creator); }

jne jne.. Kõike creatoreid tuleb kontrollida distancega. Et kui on lähemal kui xxx arv, siis alles ta teeb enda create evendi. Ja kui läheb kaugemale kui xxx arv siis kustutab enda createtud objektid ära.

et siis puucreatori createsse hoopis:
alarm[0]=20;
createsin=0;

ja alarm0 eventi:
alarm[0]=20+random(2);
if point_distance(kaamera.x,kaamera.y,x,y)<555 && createsin=0 {
var ID;
ID=instance_create(x,y,puu);
ID.ID=id;
createsin=1;
}


ja puu createsse:
alarm[0]=20;

ja alarm0 eventi:
alarm[0]=20+random(2);
if point_distance(kaamera.x,kaamera.y,x,y)>555 {
ID.createsin=0;
instance_destroy();
}

ja siis see kakskymmend_puud_creator teeb selle puucreatoriga samamoodi, mida teeb puucreator puuga. :) jne..

Võib tunduda väga segane jne jne, aga tegelikult on see täiega loogiline ja optimaalne viis teha tohutult suuri ruumi. Kõike tuleb lihtsalt kontrollida ;)

Kindlasti mitte step evendis, vaid alarmis.

Tuli lihtsalt selline mõte pähe, ja panna kirja, vb muidu ununeks ära :)

http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
Perfoon
Level 5
Avatar

Liitunud: 11.8.2008
Postitusi: 192
[EEMAL]




postitati 5.9.2009 08:53 Tsiteeri


Mina ehitan hetkel lõputult suurt maailma, mis ennast ise looks ja mitte randomiga vaid vastavalt kasutaja mängustiilile :wow:
Tegelt on maapind juba enam vähem olemas. ja loomulikult ei kasuta ma 1000 objekti. Tegelikult on mul neid üldse kokku vaid 5. Ehk üks üldkontroller mis joonistab arvutab chillib ja teeb kogu tööd. Teine mis tegeleb karakteri joonistamisega ja lihtsalt vähendab veidike controlleri koodihulka, kuna karakter on täiesti teist tüüpi seadeldis. Ja siis on lihtsuse mõttes veel eraldi objektid mis kuvavad rippmenüüsid.
Tagatipuks on mul ka vaid ainult üks ruum mängus.

Miks see kasulik on? Aga seepärast, et esiteks ei pea ma ühte asja mitu korda kirjutama, vaid paljud omadused kanduvad erinevate ruumide vahel üle. Ehk siis mis juhtub siis, kui muudad mänguakna suurust (reso). Või kasvõi erinevates ruumides olev karakter kannab samasid omadusi. Teiseks, paneb see väga hoolikalt mõtlema mida sa kirjutad ja kasutad. Mingit ressursiraiskamist ei ole. Kuna kogu info tuleb massiividest ja muutujatest siis joonistadgi näiteks ainult vajamineva, selle mis jääb ruumi sisse.

Aga kuidas mina tekitan suuri maailmu on see, et on maastiku array umbes 100 ühikut (punkti), millest joonistatakse ekraanile keskosa. Teine bufferarray (samuti 100) on selline, mida kirjutatakse pidevalt vastavalt hiire liigutamisele maastikuga üle. Ning nüüd kui karakter liigub siis iga ühiku möödudes liigutatakse maastiku array't ühe ühiku võrra edasi ja otsa pannakse ühik buffer arrayst.

Optimaalselt mängu kirjutada on fun!
Kambakas I: jorss, PerfoonEmo1: icedude, valterEmo2: InCreatorEmo3: emoemo<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 5.9.2009 10:04 Tsiteeri


No see on mul praegu jah randomiga tehtud, näiteks lihtsalt. muidu jah ikka määrata ikka iga X ja Y spetsiaalselt, mitte randomiga.
http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum

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