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


Liitunud: 25.4.2010
Postitusi: 7
[EEMAL]




postitati 26.4.2010 16:50 Tsiteeri
Variablede muutmine.



Otse siis asja juurde. Kas Collision Eventi alla lisasin skripti, mis peaks left control vajutades lisama variablele +1 ning jõudes 30 lihtsalt mitte enam muutuma.

Praegu on siis nii
Kui objekt laev on collisionis niiöelda asteroidiga, siis mängija vajutades Left Ctrl peaks lisama variablele last +1, aga kahjuks nii asi ei toimi, lisan siis enda leiutatud koodi. Game Makerit olen kasutanud umbes 2 päeva, niiet jah, võibolla olen asjast väga mööda pand, korraks käis peast läbi ka idee, et Collision kestab ainult senikaua kui ma vajutan mingit teatud noolt selle asja poole, ning selle käigus pole võimalik Ctrl kasutada.
Kood siis siin.
Collision event - > Execute script

Scripti sisu.


Kood:
last_var = 0
Maksimumlast_var = 30
if keyboard_check_pressed(vk_lcontrol)
then last_var = last_var +1
if last_var = Maksimumlast_var
then last_var = last_var +0



Üks teine mure on liikumisega, kasutasin liikumise "ehitamisel" sama asja mis Maze õpetuses oli, ühel hetkel aga näiteks vajutades paremale liikumise noolt läheb üles diagonaali vms.

Objekt mis liigub -> Step event -> Execute a piece of code.

Kood:
if keyboard_check(vk_up) { y+=4 }
if keyboard_check(vk_down) { y-=4 }
if keyboard_check(vk_left) { x-=4 }
if keyboard_check(vk_up) { x+=4 }

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Peeter
Level 9
Avatar

Liitunud: 17.7.2006
Postitusi: 607
[EEMAL]




postitati 26.4.2010 17:14 Tsiteeri


Kood:

last_var = 0
Maksimumlast_var = 30
if (keyboard_check_pressed(vk_lcontrol) && last_var < Maksimumlast_var)
{
last_var += 1;
}


Kood:

if keyboard_check(vk_up) { y-=4 }
if keyboard_check(vk_down) { y+=4 }
if keyboard_check(vk_left) { x-=4 }
if keyboard_check(vk_right) { x+=4 }

Strateegia II: Peeter ja rallitajaRPG III: Peeter<br>Jõulu 2008 II: PeeterEmo3: emoemo<br>Aktsioon I (2009): PeeterVabateema I: veka&pets
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
Kardo
Level 1


Liitunud: 25.4.2010
Postitusi: 7
[EEMAL]




postitati 26.4.2010 17:24 Tsiteeri


Nibisin mis ma nibisin, ei saa sellele asjale pihta, mõte tuli, et kuidagi panna kui teatud objekt on lähedal teatud objektile mingi x ja y võrra, siis lubab seda variable asja kasutada. Kui kellegil viitsimist siis miski algeline asi minu aretusest asub siin:
http://www.upload.ee/files/542774/Esimene_proov.gmk.html

Aitäh Peeter, märkasin, et väike viga oli sisse tulnud mul, variable asjaga sain ka tiba targemaks kuidas asi välja trükkida.

Hetkel siis eemale, umbes 22.00 tagasi, eks siis saab edasi möllata.
Tänan kõiki kes võibolla varsti allapoole vastavad ^^

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Crypton

Avatar

Liitunud: 18.12.2005
Postitusi: 1604
[EEMAL]




postitati 26.4.2010 18:12 Tsiteeri


Need kaks rida pane Create eventi ja kustuta Collisionist ära!

last_var = 0
Maksimumlast_var = 30

Praegu igal sammul, collisioni ajal, seatakse last_var nulliks ja Maksimumlast_var kolmekümneks, mistõttu if tingimuses muutuja muutmine tulemust ei anna(enne seda nullitakse muutuja(d) ära ju..) Igakord jääb last_val nulliks ja ei suurene!


Tsitaat:

et Collision kestab ainult senikaua kui ma vajutan mingit teatud noolt selle asja poole,


Kindlasti mitte. Collision toimib kui kaks spritet (oleneb nüüd suuresti meetodist) puutuvad üksteisega kokku. Peaks olema mingi tingimus, kui tahad alles kokkupõrkel saada nuppu vajutada.

if not place_free(x,y, instance??){ //Ühesõnaga vaata syntaxit, mäleta enam ise.

Sellisena saad vaadata kas objekt on kokkupõrkes või ei. (manualis nende kohta palju abi, mis vahe neil on jms) ja siis too uue if-ina sisse keyboard_check...
Kood:

if not place_free(x,y, instance??){ //Kui kokkupõrkes
if keyboard_check(vk_up){ //vaatame kas nuppu vajutatakse.
//tee midagi
}
}

Maze I: CryptonRalli III: Crypton<br>
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
normann
Level 15
Avatar

Liitunud: 28.4.2006
Postitusi: 1528
[EEMAL]




postitati 26.4.2010 20:10 Tsiteeri


GM Abi alt loe InCreatori tehtud collisioni 6petust.
collision_line mitte place_free, tuleks kasutada.

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
Kardo
Level 1


Liitunud: 25.4.2010
Postitusi: 7
[EEMAL]




postitati 26.4.2010 20:33 Tsiteeri


Cryptoni soovituse järgi tehes, ei jaga ma kahjuks välja kuhu ma pean need 2 variable panema, et hiljem skript need üles leiaks.
Panen Create event - edasi märgin ära 2 variable, valikuid olen proovinud self/other
Sellest tiba allpool on event Collision kus executeb Peetri tehtud skripti, mängu käivitades aga lööb errori, et last ja maksimumlast var-id on teadmata, otsin hetkel helpist vastust, aga ehk keegi oskab suunata. Tõesti ei jaga välja kuhu ma kõik variabled toppima pean, et ta skriptides need õigest kohast üles leiaks ja muudaks vastavalt vajadusele.

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

Liitunud: 28.4.2006
Postitusi: 1528
[EEMAL]




postitati 27.4.2010 12:24 Tsiteeri


Mis objektil ta errorid ette l66b ,et unknown variable?
Igal objektil mis seda scripti executeb, peab olema creates need var-id t2histatud.
Teine v6imalus, on lihtsalt teha 1he objekti createsse variabled global.last ja global.maksiimumlast ja scriptis ka vastavaks muuta.
Palju global. variablesi teeb aga m2ngu aeglaseks.

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
Crypton

Avatar

Liitunud: 18.12.2005
Postitusi: 1604
[EEMAL]




postitati 27.4.2010 12:49 Tsiteeri


sa tegid skripti selle jaoks? Pole tarvis. Pane Collision Event > Execute a piece of code. Teeb sama asja ära. Skripte kasuta, kui asi täidab mingi funktsiooni ülesannet ja vaja mitme objekti puhul erinevate argumentidega kasutada.

Sellesse samasse objekti, kus sul see collision event on, tema Create eventi pane need kaks muutujat! Iga objekti Create evendis määra talle omased muutujad!

Maze I: CryptonRalli III: Crypton<br>
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
Kardo
Level 1


Liitunud: 25.4.2010
Postitusi: 7
[EEMAL]




postitati 27.4.2010 16:54 Tsiteeri


Selle sain ehk tööle, aga seda Variablet välja joonistada, et näha kas see muutub, vot sellega mina hakkama ei saa, ehk ei oska lihtsalt selgeks teha mida ma proovin siin üritada, kuna ei tunne GM-i piisavalt. Põhimõtteliselt ei saa selle ülesse nurka joonistamisega hakkama nii, et iga kord kui Ctrl vajutan läheb see suuremaks.

Kood:

if (keyboard_check_pressed(vk_lcontrol) && global.last < global.Maksimumlast)
{
global.last += 1;
draw_text_color(50,50,global.last,c_red,c_red,c_red,c_red,1);
}

Lihtsalt Draw-i kasutades tegi ta mulle ülesse 0-li mis kunagi ei muutunud, kuna usun, et ta teeb seda ainult ühe korra ning kui variable muutub, siis ta seda uuesti ei tee vms, üritasin siis skripti sisse panna, aga jälle ei saa hakkama..

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Kardo
Level 1


Liitunud: 25.4.2010
Postitusi: 7
[EEMAL]




postitati 27.4.2010 20:03 Tsiteeri


Töötab, tänud, millegipärast ei tahtnud esialguses skriptus vasakpoolset control klahvi tunnistada, huvi pärast vahetasin tühiku peale ja töötab nagu nalja, isegi üle 30ne ei lähe, hea tuju kohe, peab miskit veel juurde ehitama, katsetuseks.

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