Title: Tietyn objectin etsintä
Description: variablen perusteella
Murska - November 9, 2005 06:44 PM (GMT)
Mitenkä siis menis sellainen koodi jolla saisi sen "pointti_vapaa" objectin id:n joka on lähinnä kysyvää objectia ja sen muuttujan "arvo" = 1?
Edit: Muuttelin vähän et saa selvää ;)
Onion King - November 9, 2005 07:09 PM (GMT)
En oikein ymmärtänyt kysymystäsi, pointti_vapaa hämäsi. Tarkoitatko, että haluat koodin, jolla saa selville lähimmän objektin, jonka tietyn muuttujan arvo on 1?
Jontte - November 10, 2005 06:47 AM (GMT)
Siinä pitää käydä kaikki objektit läpi jollain loopilla ja tehdä niistä lista eteisyys järjestykseen. Sitten vielä poistaa listasta objektit joiden "arvo" != 1. Sitte vaan annetaan listasta ylimmäinen objekti.
Teen tän sulle kun tuun töistä kotiin :lol:
viestituote - November 10, 2005 02:09 PM (GMT)
| CODE |
var instance,object,list,ret,value,variable; instance = self.id; object = argument0; variable = argument1; value = argument2; list = ds_priority_create(); nearest = noone; with (object) { if variable_local_get(variable) == value { ds_priority_add(list,id,sqr(x-instance.x)+sqr(y-instance.y)); } } ret = ds_priotity_find_min(list); ds_priority_destroy(list); return ret; |
Testaamaton skripta, muokkasin nopeasti tuosta N:nnännes lähin instance -skriptasta jonka googletin:
http://forums.gamemaker.nl/index.php?showtopic=140467Argumentit on järjestyksessä seuraavat: objekti joita tahdot etsiä, muuttujan nimi striginä (huom, siis string. "pointti_vapaa", ei pointti_vapaa) ja viimeisenä se haettu arvo.
Kerro jos toimii.
Murska - November 10, 2005 03:01 PM (GMT)
Muuten hyvin toimii paitsi, että mitä tuo scripti sitten palauttaa jos yhtään osumaa ei löydy? Objectin josta sitä kutsutaan x ja y position? Toisaalta ei tuolla mitään väliä ole....
ja kiitos!
Jontte - November 10, 2005 07:51 PM (GMT)
Joo aivan noin olin itsekkin tekemässä.
Priority queuet on hyviä :P