Sminer Opublikowano 19 Maja 2016 Udostępnij Opublikowano 19 Maja 2016 Ok, moje pytanie jest następujące: załóżmy, że mamy 3 obiekty o nazwach: GML obiekt1, obiekt2, obiekt3 każdy z tych obiektow ma zmienna, powiedzmy "hp". GML obiekt1.hp = 1; obiekt2.hp = 1; obiekt3.hp = 1; i powiedzmy, że gdy naduszę spację, to do każdego z tych obiektów hp zwiększy się o 1; GML obiekt1.hp += 1; obiekt2.hp += 1; obiekt3.hp += 1; I teraz problem, jeśli obiekty byłyby 3, to nie byłoby problemu, jednak podobnych obiektów będzie około 150, a więc jak zapisać kod, który wyglądałby jakoś tak i by działał: GML for(i = 1; i <= 150; i++) { obiekt.hp +=1; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 19 Maja 2016 Udostępnij Opublikowano 19 Maja 2016 1. mozesz zrobić parenta i potem tylko GML with(objParent){hp+=1} 2. mozesz przy tworzeniu danych obiektów zapisywać je do tablicy GML obj[global.liczba_obiektow]=instance_create(x,y,obiekcik) global.liczba_obiektow+=1 //no i potem tak: with(obj){hp+=1} no to chyba wszystkie sposoby jakie mi przyszły na myśl, jak coś nie jasne to pisz, wytłumacze Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sminer Opublikowano 19 Maja 2016 Autor Udostępnij Opublikowano 19 Maja 2016 Dobra, to by mogło dobrze zadziałać, jak skończę się z logarytmów uczyć to zaraz przetestuję, dopytam jeszcze tylko, jakbym miał coś w ten sposób: GML with(objParent) { if (objParent.punkty > 10) { objParent.lvl += 1; } } Jakby to zapisać w ten sposób, to wszystkie obiekty w objParent, by podniosło o jeden poziom do góry, masz jakiś pomysł, żeby instrukcja odnosiła się tylko do obiektu, który ma więcej niż 10 punktów ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 19 Maja 2016 Udostępnij Opublikowano 19 Maja 2016 Ale przecież się odnosi. Linijka GML if (objParent.punkty > 10) sprawia, że kod zostanie wykonany tylko jeśli dana instancja obiektu ma 10 punktów, czyli w efekcie instancje które mają mniej niż 10 punktów pominom ten kod po prostu ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sminer Opublikowano 19 Maja 2016 Autor Udostępnij Opublikowano 19 Maja 2016 objParent ma być osobnym, pustym obiektem ? A tylko reszta obiektów ma mieć ustawione Parent z objParent ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 19 Maja 2016 Udostępnij Opublikowano 19 Maja 2016 with(obiekt) odwołuje się akurat do wszystkich obiektów, więc nie widzę problemu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 19 Maja 2016 Udostępnij Opublikowano 19 Maja 2016 Wszystko wewnątrz with wykonuje się już w tamtym obiekcie więc: GML with(objParent) { if (punkty > 10) { lvl += 1; } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sminer Opublikowano 19 Maja 2016 Autor Udostępnij Opublikowano 19 Maja 2016 GML for(Kontroler.f1 = 1; Kontroler.f1 <= 150; Kontroler.f1 += 1) { with(objParent) { if (objParent.Numer == Kontroler.Numer && Kontroler.Numer == Kontroler.f1) { Kontroler.Nazwa = objParent.Nazwa; } Czy to powinno zadziałać, czy wciąż źle rozumiem ? Zadziałało :D GML for(Kontroler.f1 = 1; Kontroler.f1 <= 150; Kontroler.f1 += 1) { with(objParent) { if (Numer == Kontroler.Numer && Kontroler.Numer == Kontroler.f1) { Kontroler.Nazwa = Nazwa; } Zostawiam odpowiedź dla potomnych, którzy będą się borykać z podobnym problemem :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 19 Maja 2016 Udostępnij Opublikowano 19 Maja 2016 GMLfor(Kontroler.f1 = 1; Kontroler.f1 <= 150; Kontroler.f1 += 1) { with(objParent) { if (objParent.Numer == Kontroler.Numer && Kontroler.Numer == Kontroler.f1) { Kontroler.Nazwa = objParent.Nazwa; } Czy to powinno zadziałać, czy wciąż źle rozumiem ? Ale po co ten for w ogóle? Samo dodawanie leveli w porządki, ale nie rozumiem po co ma być ten for. Bez fora przecież będzie działać, chyba że ten for robi co innego w każdym bądź razie 150 razy wykonywany for razy ilość instancji dzieci objParent będzie prawdopodobnie generować spore obciążenie, więc zastanów się dwa razy ;) Mi się wydaje, że po prostu coś źle zrozumiałeś. Jeżeli chcesz dodawać lvl zawsze gdy któraś z instancji ma więcej niż 10 punktów to używasz tylko tego co podał Ci Threef, tworzysz pusty obiekt objParent i tym obiektom ustawiasz go jako obiekt rodzica i tyle - gotowe :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sminer Opublikowano 20 Maja 2016 Autor Udostępnij Opublikowano 20 Maja 2016 Masz całkowitą rację, bez for'a działa rewelacyjnie :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się