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

Liitunud: 16.1.2008
Postitusi: 542
[EEMAL]




postitati 26.3.2011 20:15 Tsiteeri
Distance_to_object



Just hiljuti jõudsin vaimse barjäärini.
Mul on kood:
Kood:

if(distance_to_object(obj_puuraidur) < 64){
raiub = 1;
}

Ma ei suuda välja mõelda miks see ei tööta,
Kui ma sama asja instance_nearest ja distance_to_point'iga proovisin, ka ei töötanud.
Manuaali vaatasin, peaks töötama kõik ja ma paluks nüüd siis teie värskeid silmi/päid, et aitaks mul vea leida.

See kah, et (kui see veel niisamagi arusaadav pole) kood peaks panema puuraiduri puud raiuma, kui puuraidur on puule lähemal kui 64px.

_________________________________
Eestikeelsed tasuta PHP õpetused - php.ee
PHP Manuaal - php.net
Jõulu 2008 III: Jyri1234<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 26.3.2011 21:12 Tsiteeri


proovi nii:

if (distance_to_object(instance_nearest(x,y,obj_puuraidur)) < 64)
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 26.3.2011 21:38 Tsiteeri


"distance_to_object(obj) Returns the distance of the instance to the nearest instance of object obj. (If the instance or object does not have a sprite or mask, the result of the function is undefined.)"

Kui l2him puu on l2hemal kui 64 siis on jah raiub = 1. Järelikult on viga kuskil mujal. Kas see kood on puu objektis üldse? Sel juhul pannakse puul raiub = 1, mitte puuraiujal.

Lamps and Megarace - multiplayer strateegia

You've got the boomin' system But it's blasting out doo-doo
You think it's chocolate milk But it's watered down yoo-hoo
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
jyri1234
Level 9
Avatar

Liitunud: 16.1.2008
Postitusi: 542
[EEMAL]




postitati 26.3.2011 21:40 Tsiteeri


Sama jama.
Ma panin igaks juhuks draw eventi näitama raiub väärtust, sest võibolla on midagi muud vale, aga ei paista olevat.
Ma võin muidu terve source ka anda, aga ma ei kujuta küll ette, mis seal üldse eriti viga olla saab.

_________________________________
Eestikeelsed tasuta PHP õpetused - php.ee
PHP Manuaal - php.net
Jõulu 2008 III: Jyri1234<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 26.3.2011 21:53 Tsiteeri


if (point_distance(x,y,(obj_puuraidur).x,(obj_puuraidur).y) < 64)
raiub = 1;

See käib puu koodi. Kui sa just ei taha raidurile sellist asja anda, mispuhul pane raiduri step eventisse see ja obj_puu või misiganes

sulud ON olulised!!!

niih, ja soovitan mitte nii idiootseid objektinimesid kasutada, jäädki neid koodi kirjutama.
o_raidur oleks küllalt pikk juba

kui see ei tööta, siis on viga mujal, tõenäoliselt mingi vale nimi ja su puu saab nullindeksi
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
jyri1234
Level 9
Avatar

Liitunud: 16.1.2008
Postitusi: 542
[EEMAL]




postitati 26.3.2011 22:03 Tsiteeri


Arusaadav..
Tegelikult on mul süsteem nii, et var.raiub kontrollib seda, kuna puu langeb (raidurid raiuvad üldse teise asja järgi).
Kui ma distance_to_pointi kasutasin enne, siis ma vaatasin drawiga, kui kaugel mehed on puust ja ikka väga ulmelised arvud olid. Nt 140687.87
Eks ma homme värske peaga vaatan uuesti, aga thanks anyway.

_________________________________
Eestikeelsed tasuta PHP õpetused - php.ee
PHP Manuaal - php.net
Jõulu 2008 III: Jyri1234<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 26.3.2011 22:31 Tsiteeri


Kui sa distance_to_point((puu).x jne) paned, siis sa saad distantsi selle puuni, mis esimesena tekitati ja mille id on kõige väiksem. Sel juhul tuleb otsida kõigepealt lähim puu ja siis distants selle konkreetse puuni.
Lamps and Megarace - multiplayer strateegia

You've got the boomin' system But it's blasting out doo-doo
You think it's chocolate milk But it's watered down yoo-hoo
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
jyri1234
Level 9
Avatar

Liitunud: 16.1.2008
Postitusi: 542
[EEMAL]




postitati 27.3.2011 07:39 Tsiteeri


Ma määrasingi lähima mehe instance_nearest'iga.
Aga.. mul pole vaja otsida puud, vaid mul on vaja otsida meest.
Ma tahan teha nii, et kui mees on puu lähedal, hakkab puult puitu maha minema vms.

_________________________________
Eestikeelsed tasuta PHP õpetused - php.ee
PHP Manuaal - php.net
Jõulu 2008 III: Jyri1234<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 27.3.2011 10:20 Tsiteeri


Sel juhul kasuta kindlasti distance_to_point(). Siis arvutatakse kahe punkti vaheline kaugus. Kui sa paned distance_to_object siis ta kontrollib kõiki punkte puuraiuja maskis ja kõiki punkte puu maskis (vist?), ehk tehakse tuhandeid kordi rohkem tööd, kui oleks vaja. Eeldades, et eriti vahet pole mängus, kas kaugus leitakse puu keskkohast või servast.

Põhimõtteliselt, kui sa nii väga tahad seda kõike puu juures kontrollida siis paned

//--------------------------------------------------------------------//
create eventi nt

alarm[0] = 10 + random(10); //hajutame puude checkid ära, et ei kontrolliks kõik korraga


//--------------------------------------------------------------------//
Ja alarm[0] evendis:

alarm[0] = 10; //iga 10ne stepi tagant kontrollime, mitte iga step!
var a;

a = 0; //algväärtus
a = instance_nearest(x,y, raidur);

if (a > 0) //kui leiti raidur
if (point_distance(puu x;y-st a x;y-ni) < 55)
{

puitu_alles -= 20;
sound_play(tok-tok-tok);

if (puitu_alles <= 0)
instance_create(x,y, treespirit_level20);

}


// Kauguste arvutamisel võib vasakuid ülemisi nurki kasutada keskkohtade asemel, kui puu ja raidur on ühesuurused ruudukujulised objektid ja origin on vasakul üleval nurgas või kuskil mujal sarnaselt mõlemal objektil. Võibolla nad ei pea isegi ruudu kujulised või ühesuurused olema.

Lamps and Megarace - multiplayer strateegia

You've got the boomin' system But it's blasting out doo-doo
You think it's chocolate milk But it's watered down yoo-hoo
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
jyri1234
Level 9
Avatar

Liitunud: 16.1.2008
Postitusi: 542
[EEMAL]




postitati 27.3.2011 13:31 Tsiteeri


Ma võin ju pmst mehe juurest ka kontrollida seda, aga mis seal vahet on.

edit:
Muutsin koodis ainult distance_to_point ära point_distance vastu ja töötab!!
Thanks batoonike!

_________________________________
Eestikeelsed tasuta PHP õpetused - php.ee
PHP Manuaal - php.net
Jõulu 2008 III: Jyri1234<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte 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