[ARHIIV] mängumeistrid
Pole sisse logitud. [Logi sisse ]
Mine lehekülje algusesse
Prinditav versioon | Telli teema e-mailile | Lisa lemmikutesse  
Lähima objekti kaugus
timoolen
Level 3
Avatar

Liitunud: 22.12.2007
Postitusi: 58
[EEMAL]




postitati 22.11.2009 16:06 Tsiteeri
Lähima objekti kaugus



Muidugi mitte ainult kaugus vaid tahaksin, et otsiks lähimat objekti kindlalt suunalt, kas paremalt või vasakult.

http://www.hot.ee/timo3f3/aqbi.JPG

Punane on lähim aga seda eirame sest ta on selja taga, oleks vaja arvutada musta kaugus.

Suuna määramine - image_xscale = 1 on parem ja -1 on vasak.

ÜLDISTAVALT sooviksin koodi mis leiab kindalt suunalt lähima objekti kauguse.

Asi peaks olema imelihtne aga olen hetkel haige ja pea ei võta ja mäng ei saa seisma jääda, märtsini on VÄGA vähe aega.

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

Liitunud: 28.7.2007
Postitusi: 791
[EEMAL]




postitati 22.11.2009 16:24 Tsiteeri


distance_to_object
instance_nearest

on need funktsioonid, mida peakid kasutama

a kuidas teada saada kas objekt on selja taga või mitte?
ee on ka lihtne - võrdle objektide x koordinaate.

http://mangulooja.dragon.ee/lahinguatid/lahinguatid.gifhttp://mangulooja.dragon.ee/lembitu/lembitu_sig.pnghttp://mangulooja.dragon.ee/sigs/kindlus_sig.jpghttp://mangulooja.dragon.ee/keskaeg/sig.png
Aasta mäng 2009: Pilvemees, valter<br>
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
timoolen
Level 3
Avatar

Liitunud: 22.12.2007
Postitusi: 58
[EEMAL]




postitati 23.11.2009 10:49 Tsiteeri


Platvorm, liikumine x+=1, x-=1, vspeed(e hüppamine), asjad ei ole küll ühel joonel aga see mind ei takista vaja on vaid juppi mis teeb vahet kas objekt on minust vasakul või paremal(x<0 ja x>0).

ehk kui lähima objekti x väärtus on positiivne (e minust paremal) JA ma olen näoga selle poole siis mõõdetakse vastav asi

Tänud

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 23.11.2009 13:08 Tsiteeri


no võrdled koordinaate lihtsalt ja siis kasutad vastavat funktsiooni, Kui sa tingimust ise ei saa välja mõeldud... siis õpi. Loll oleks see sulle siia lihtsalt kirjutada, nii sinu igasugust arengut takistades.
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
timoolen
Level 3
Avatar

Liitunud: 22.12.2007
Postitusi: 58
[EEMAL]




postitati 23.11.2009 13:54 Tsiteeri


distance_to_object(instance_nearest(char.x,char.y,col) otsib lähimat aga mis ma kirjutan sinna juurde et ta kontrolliks kas char.x>lähim col.x"
instance_nearest(char.x,char.y,col).x>char.x ei tööta

Ja loll oleks jätta loll silmad pärani koodijuppi vahtima, sest ta ei oska antud ajahetkel silmi lahti teha ja lahendust leida.
Võiks teada ka et kõik inimesed ei tee koodiga copy n paste vaid loevad ja tutvuvad antu ehitusega põhjalikult et oma teadmisi täiustada.
(Põhikoolis oli mul harjumus kirjutada tahvli pealt lahenduskäik maha ise arusaamata mis seal kirjas on. Praegu kahtesen.
Kindlasti olete kõik kogenud kus teie ees on valem ja üks hetk ei suuda te enam seda lahti mõtestada ja küsite kelleltki abi.)

Ma oleks super tänulik kui te mu silmaringi laiendaksite.

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 23.11.2009 15:28 Tsiteeri


Vaata üle:
*if tingimus
*võrratused
*koordinaadid
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
veka8
^^
Avatar

Liitunud: 19.7.2006
Postitusi: 1096
[EEMAL]




postitati 23.11.2009 15:55 Tsiteeri


h0lx, kuidas sa võtad instance_nearest endast paremal pool, kui vasakul pool on see objekt lähemal? Ta returnib lähima objekti ja siis jääb üle vaid kontrollida kas ta on seal pool kuhu ma vaatan kui on lucky me aga kui pole kuidas sa saad siis selle mis on lähemal sealtpoolt kuhu sa vaatad...

btw, mille jaoks seda üldse vaja on äkki on kuidagi muudmoodi teostatav?
Vabateema I: veka&pets
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
Crypton

Avatar

Liitunud: 18.12.2005
Postitusi: 1604
[EEMAL]




postitati 23.11.2009 17:46 Tsiteeri


saab kah ehk midagi tarka kirjata:

Ennist kirjutasin asja mitmeid kordi läbi ja erinev kord tuli erinev idee.

Põhim oleks ehk mõtekam teha nii et
instance_nearest() otsid need objektid ülesse (tark kasutada parent omadust nendele, et ebavajalikud objektid välja jätta, siis ei pea seda fn-i ka dubleerima et leida teisi objekte. Paned need lendavad asjad seal pildid ühe parenti alla)

sealt võta instance id:

obj = instance_nearest()

Nüüd saad kontrollida selle suhet player objektiga.

if player.image_xscale = -1{ //kui mängija vasakul?
if obj.x < player.x{ //kontrollime objekti asukohta vasaku poole suhtes ainult
...
}
}

ja kui sellele ei vasta, peaks panema asja uuesti jooskma, senikaua kuni obj on leitud.
idee sellel on et programm lihtsalt otsib lähima objekti, kui see on juhuslikult paremal ja mängija vaatab selle poole siis see ka võetakse. Senikaua kuni mängija ei vaata paremale käiakse läbi kõik need objektid kuni jõutakse objektini mis on järgmisena lähemal just vasakul poolel. Nii peab aga leidma veel viisi, et välja jätta juba otsitud objektid.

Ehk kasutama veel instance_find() seal oli vist veel mingi n faktor sees, et mitmes instance objektist. Sealt saaks objektid ükshaaval üle käia, ainult on raske kontrollida kas ta on just kõige lähemal mängijale. Seal tuleks juba listid mängu, et see salvestus ära teha ja sisi listi seest lähim objekt välja valida.

Et jh ega ta paari rea süsteem ei ole tegelikult.

Maze I: CryptonRalli III: Crypton<br>
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 23.11.2009 19:59 Tsiteeri


Ei ole midagi imelihtne.
Instance_nearest on alati instance_nearest. Sama funktsioon annab alati sama tulemi, sa ei saa öelda, et keegi ei ole instance_nearest ainult selle pärast et ta on "valel pool".

Kirjuta pisike script mis käib läbi KÕIK objektid, ja leiab lähima MIS on kindlas suunas.

Kood:

//script leialahim(objektinimi, suund)
//ütleme et "suund" argumendiks - paremal asjad on 1 ja vasakul -1


var kaugus, lahim // teeme kaks suvamuutujat

lahim = -1;
kaugus = 1000000;

with (argument0)
{
if (distance_to_object(mängijaobjekt) < kaugus) // kui on lähemal kui kaugus väärtus (esimene vaenlane kindlasti on!)
{
if (argument1 = 1 && x > mängijaobjekt.x) || (argument1 = -1 && x < mängijaobjekt.x) // kui otsime paremalt ja ongi paremal või vasakult ja ongi...
{
kaugus = distance_to_object(mängijaobjekt); // muutujasse "kaugus" paneme uue kauguse
lahim = self.id; // ja muutujasse "lahim" selle objekti id kes NÜÜD kõige lähemal on
}
}
}
if (lahim) return lahim else return -1


--------------------------------------------------------

Mängija objekti Create eventisse tee muutuja objekti jaoks:
paha = -1;

Ja step-eventis (või kusiganes sa kontrollid - tee nii:)

paha = otsilahim(vastaseobjekt,suund) // näiteks otsilahim(obj_paha,-1)

if (paha)
...siia kood, mida teha, kui leidis paha..

näiteks
(paha).elu = 0;

või

with (paha)
instance_destroy();

ja nii edasi.

sest olenevalt funktsiooni õnnestumisest, peale esimest rida on kas muutuja "paha" väärtus vastase objekti ID number või -1

Mis see kood teeb, kuidas töötab?
http://www.indrek.org/i/logish.png

Ma olen sitaks unine ja väsinud seda kirjutades, aga minu meelest peaks nii võtma küll... minu arust WITH ei unusta teda jooksutava scripti muutujaid. kui unustab, pane "kaugus" ja "lahim" ette igal pool global. et oleks global.kaugus ja global.lahim
...ja kui ikka ei saa, näed ise plokkskeemilt, mida on vaja teha

Põhimõtteliselt see töötab nagu otsiks klassivendade seast kõige lollimat inimest. Kirjutad kõigi klassikaaslaste nimed paberile ja hakkad maha tõmbama neid kes ei ole meesoost ja meeste seast neid, kellest veel lollim olemas on. Lõpuks jääb ainult üks nimi järgi.

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

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 23.11.2009 20:37 Tsiteeri


Ei mõõda. Minu arust mõõdabki kahte punkti: objektide (x,y) punkte.
Point_distance annab ju ühe arvu vastuseks, mitte "üle mõistuse palju arve".

pjannõi štoli? või tuli eluvajadus tarka panna?

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

Liitunud: 19.7.2006
Postitusi: 1096
[EEMAL]




postitati 24.11.2009 09:13 Tsiteeri


batoonikesel on õigus võtab ühe maski äärest teise

Lisatud pilt:
ciews:
untitled.JPG
(5.53kb)
Vabateema I: veka&pets
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
timoolen
Level 3
Avatar

Liitunud: 22.12.2007
Postitusi: 58
[EEMAL]




postitati 24.11.2009 10:12 Tsiteeri


Tsitaat:
Tsitaat: batoonike
Kaheldav kas ta aru saab, kui isegi "if"i ei oska kasutada veel :D A noh, proovida võib.


Tead see on solvav :s(aga ma ei solvu nii kergesti :D). Ja kui ma if'i ei oskaks, peaks ma olema täielik HÄLVIK.
Ära alahinda abivajajat.



Suured tänud InC-le ma üritan asja käima tirida.
Mul ei ole vaja küll pahasid tappa vaid kasutada antud kaugust suhtes platvormi rippuhüppega.
Et ei oleks nii et mees hüppab rinnaga vastu platvormi ja siis libiseb vaikselt alla kuni käed haaravad platvormist vaid et hüppe jõud oleks täpne.
Ja õnneks ei ole ka kaugus ulmeline vaid kindel kuna mängija teatud kauguselt enam platvormini välja ei hüppa.
(Nüüd ütlete et selleks on ju imelihtne lahend miks sa kohe ei öelnud. :P)


Jah, asi töötab suurepäraselt, veekord tänud!

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 24.11.2009 18:48 Tsiteeri


aeglane on nii.
kiirem oleks tsekkida x-ide vahesid... ja siis võrrelda y+eid.
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 24.11.2009 20:14 Tsiteeri


erilist vahet vist ei ole, kas 0.001s või 0.00101s
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
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 24.11.2009 21:04 Tsiteeri


oleneb, kui tihti seda tehakse ja vahe on tunduvalt suurem, kuna üks nõuab palju rohkem arvutusi.
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 24.11.2009 22:08 Tsiteeri


pseudomula jälle.

See ju töötab!
Muidugi ei pea funktsiooni callima step-eventis.

Seda võib esiteks teha ainult siis kui tegelane hüppab.

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 24.11.2009 23:02 Tsiteeri


Võib ka olla minu OCDs optimaalse koodi suhtes, tõsi, kui oma eesmärgi täidab, miks mitte.
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
timoolen
Level 3
Avatar

Liitunud: 22.12.2007
Postitusi: 58
[EEMAL]




postitati 25.11.2009 09:36 Tsiteeri


See on step eventis if(keyboard_check UP && jooksmise) kontrolli all.
Ei tee see kood kellelegi haiget :P

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