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

Liitunud: 8.4.2010
Postitusi: 184
[EEMAL]




postitati 9.12.2010 15:12 Tsiteeri
Objekti muutmine



Kas on kuidagi võimalik teha, nii et kui ma nt vajutan o tähte, siis mingi kindel objekt muutuks, nii et ei muutuks kõik samasugused objektid?

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Maksud
Level 5
Avatar

Liitunud: 8.4.2010
Postitusi: 184
[EEMAL]




postitati 11.12.2010 13:56 Tsiteeri


Ootan abi veel.

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
normann
Level 15
Avatar

Liitunud: 28.4.2006
Postitusi: 1528
[EEMAL]




postitati 11.12.2010 14:04 Tsiteeri


Seleta siis paremini.
Milleks muutuma peab ja mille järgi sa valid seda mis objekt muutub ja mis jääb samaks?

http://media.kickstatic.com/kickapps/images/40602/photos/PHOTO_7961920_40602_4826691_ap.jpg

Vaata kasutaja profiili Saada kasutajale e-mail Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 11.12.2010 15:10 Tsiteeri


ID. Tee endale selgeks, mis see on.

Lühidalt -- iga objekt mis mängu tekib, võib olla 101% sama mis teised samanimelised, kuid ALATI on ühe muutuja väärtus erinev. See muutuja on id.

Kui sul on ruumis 2 objekti "mees" siis kummalgi on muutuja mees.id

* ID tekib automaatselt
* ID number on tavaliselt suurem kui 100 000.
* Sa saad kamandada kõiki objekte läbi ID. Näiteks kui su objekti "mees" id väärtus on 100023:

mees.elu = 10;
paneb kõikide objektide "mees" muutuja "elu" väärtuseks 10

100023.elu = 10:
paneb muutuja "elu" väärtuseks 10 objektil, mille id väärtus on 100023. Ükskõik kas see on mees või tank või misiganes

ID saad võtta kohe välja ja panna muutujasse objekti tekitamisel:

aa = instance_create(x,y,mees)

See käsk paneb muutuja "aa" väärtuseks just tekitatud objekti id.
Kasutades sulge, sa saad kohe sedasama objekti läbi ID manipuleerida:

(aa).elu = 10;

Paneb JUST SELLE objekti elu väärtuseks 10 mille id on muutujas "aa".

SULUD ON OLULISED. Kui sa ei pane sulge, siis GM otsib objekti NIMEGA "aa" ja sellist objekti mängus ei ole. Sulud aga ütlevad, et tegu on muutujaga, mille väärtust tuleb otsida, mitte nimega.

Kui sa tahad aga käivitada koodi LÄBI selle objekti, kasuta käsku with

with (aa) // see nagu "hüppaks" mehe step eventisse ja käivitaks loogeliste sulgude vahel olevaid käske. Kuigi kood on mõne teise objekti eventis
{
elu = 10;
kuule += 1;
instance_destroy();
}

--------------------------------
Niisiis:

* Sa pead eraldama oma objekti, kasutades ID-d.
* Kasutades ID-d ja with käsku, muuda objekti

Ütleme et sul on kontrollobjekt "hiir" ja on vaja kaotada SEDA objekti "mees", kes on hiire kursori all.

"Hiir" step event:

var aa; //tekitab ajutise muutuja aa
if (position_meeting(mouse_x,mouse_y,mees)) // kui hiire all on objekt "mees"
{
aa = instance_position(mouse_x,mouse_y,mees).id // siis aa väärtus on objekti mees id kes on kursori all
with (aa) // siirdume objekti koodi
{
instance_destroy(); // ja anname käsu ennast hävitada
}
}

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Maksud
Level 5
Avatar

Liitunud: 8.4.2010
Postitusi: 184
[EEMAL]




postitati 12.12.2010 14:07 Tsiteeri


Tundub huvitav, uurin. Tänud.

Vaata kasutaja profiili 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