|
[MMF2] Tower Defence/Czy obiekt jest w zasięgu? |
| Autor |
Wiadomość |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 26-03-2008, 23:34 [MMF2] Tower Defence/Czy obiekt jest w zasięgu?
|
|
|
Kiedyś był tu taki temat, którego nie mogę teraz znaleźć. A rozchodzi się o coś takiego:
Mam kilka obiektów [tower] i kllka obiektów [enemy]. I jeśli [Enemy] jest w pewnej odległości od [Tower] to [Tower] strzela w JEDEN wybrany obiekt [Enemy].
Sam próbowałem coś z tym zrobić, ale błędy jakie napotkałem:
- jeśli [enemy] wejdzie w zasięg jednej z [tower] to strzelają WSZYSTKIE [Tower] (a chcę by strzeliła tylko ta, w której zasięgu jest [Enemy]
- Często niepoprawnie wykrywa odległość (probowałem liczyć odległość rozszerzeniami Adv Direction ebject i Adv Math Object) |
|
|
|
 |
msg
Pupogłowy ~~~~~~~~~~~

Główny edytor: 
Drugi edytor: 
Pomógł: 76 razy Posty: 1412
40082 Prestiż
|
Wysłany: 26-03-2008, 23:50
|
|
|
| Robisz to na wartościach obiektu? Always > Spread Alterable Value A czy jakoś tak powinno załatwić sprawę. |
_________________
|
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 27-03-2008, 09:56
|
|
|
| misieksamgame napisał/a: | | Robisz to na wartościach obiektu? Always > Spread Alterable Value A czy jakoś tak powinno załatwić sprawę. |
No, ale co z tyi wartosciami? Jest zwykły warunek: jeśli odległośc między [tower] i [Enemy] jest mniejsza niż 100 to wystrzel pocisk. |
|
|
|
 |
Fadex
Legenda #4; #12; #18; #20; #21; #27
 
Główny edytor: 
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 27-03-2008, 14:23
|
|
|
Zobacz przykład Romka X "zaawansowane obszary".
www.nukesoft.4.pl
Kiedyś robiłem przykład do tych wieżyczek, ale mi zginął... chodzi o to, że jeśli w obszarze koła z tego przykładu ("z. o.") względem pozycji wieżyczki, to wtedy flaga on i strzelaj. To naprawdę proste... |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 27-03-2008, 23:02
|
|
|
| Fadex napisał/a: | Zobacz przykład Romka X zaawansowane obszary.
www.nukesoft.4.pl
Kiedyś robiłem przykład do tych wieżyczek, ale mi zginął... chodzi o to, że jeśli w obszarze koła z tego przykładu (z. o.) względem pozycji wieżyczki, to wtedy flaga on i strzelaj. To naprawdę proste... |
Właśnie wiem, ze ktoś robił i nie mogę go teraz odnaleźć.
Co do przykładu Romka to rozjaśnił mi się sposób poprawnego użycia równania koła, ale nadal mam wątpliwosci, czy to jest to oco mi chodzi.
Zaraz dostosuje przykład i zedytuję posta.
Zamiast współrzędnych okręgu podaję współrzędne wieżyczki i obiekt kursor staje się zwykłym chłopem, który łazi gdzie mu się podoba.
EDIT: No i niestety nadal to samo. Wszystko działa jak należy tylko wtedy, gdy jest jedna wieżyczka i jeden wróg. Jak dodam czegoś więcej, to już zaczynają się dziać różne dziwne rzeczy.
Chyba spróbuję to zrobić na obiektach aktywnych |
|
|
|
 |
Fadex
Legenda #4; #12; #18; #20; #21; #27
 
Główny edytor: 
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 28-03-2008, 16:38
|
|
|
Eh, zrobiłem znowu ten przykład (nie cierpię robić 2x tego samego). liczba "400000" odpowiada za odległość - zmieniaj ją dowolnie.
http://neogames.victorygames.info/inne/1.gam
(wymaga fast loopa) |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
 |
Minty
Stwórczyni omc dr fizyki
 
Główny edytor: 
Drugi edytor: 
Pojedynki: być może
Pomogła: 259 razy Posty: 3447
33795 Prestiż
|
Wysłany: 28-03-2008, 17:10
|
|
|
Chodzi o to, że TGF nie wybiera obiektu, kiedy porównujesz wartość funkcji z jego wartości.
Wystarczy, że do zdarzenia, które miałeś na początku (np. z odległością liczoną przez Adv. Math) dodasz sprawdzanie obecności w kwadracie, poprzez porównanie pozycji X i Y (ale używaj warunku obiektu aktywnego, a nie "compare two general values"):
http://img80.imageshack.u.../kwadratjy1.png
Ten zielony obiekt to "tower", czerwony - "enemy". Wartość B tego celowniczka to zasięg "tower". 4 pierwsze warunki to kwadrat, kolejny - sprawdzanie odległości (to możesz to robić przy użyciu czegokolwiek). Dodatkowo musisz wybierać wieże - np. za pomocą Fast Loopa.
http://tnij.org/wybieranieobiektow |
|
|
|
 |
Fadex
Legenda #4; #12; #18; #20; #21; #27
 
Główny edytor: 
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 28-03-2008, 17:16
|
|
|
| RX - nie trzeba robić zdarzeń sprawdzających obecność w kwadracie... wystarczy odpowiednia kolejność (patrz: mój przykład). |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
 |
Minty
Stwórczyni omc dr fizyki
 
Główny edytor: 
Drugi edytor: 
Pojedynki: być może
Pomogła: 259 razy Posty: 3447
33795 Prestiż
|
Wysłany: 28-03-2008, 17:29
|
|
|
| Fadex napisał/a: | | mój przykład |
On nie działa dla większej ilości wrogów, niż 1 - bo ich nie wybierasz. Kwadrat wybiera wroga.
Tutaj bardziej kompleksowa rzecz:
http://romanx.webd.pl/down/groupai.zip |
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 28-03-2008, 22:49
|
|
|
Po dodaniu drugiej wieżyczki pojawiają się DOKŁADNIE te same problemy, co opisałem wyżej.
[ Dodano: 28-03-2008, 22:50 ]
| RomanX napisał/a: | | Fadex napisał/a: | | mój przykład |
On nie działa dla większej ilości wrogów, niż 1 - bo ich nie wybierasz. Kwadrat wybiera wroga.
Tutaj bardziej kompleksowa rzecz:
http://romanx.webd.pl/down/groupai.zip |
Nie przerobiłem jeszcze przykładu do swoich potrzeb, ale na pierwszy rzut oka widać, że to to o co mi chodzi. |
|
|
|
 |
Fadex
Legenda #4; #12; #18; #20; #21; #27
 
Główny edytor: 
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 29-03-2008, 09:16
|
|
|
Trzeba nadać wartość wieżyczkom -_- ... próbowałeś lewy przycisk myszy?
Co prawda RX ma rację - działa tylko na jednego wroga, ale to już nie problem, żeby to zmienić. |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 30-03-2008, 15:17
|
|
|
| Fadex napisał/a: | Trzeba nadać wartość wieżyczkom -_- ... próbowałeś lewy przycisk myszy?
|
Co gdzie jak? bo nie rozumiem...
EDIT: aaa, bo zamiast najpierw przejrzeć kod, od razu dołożyłem druga wiezyczkę i sprawdziłem czy działa...
Ale mam nadzieję, ze teraz sobie z tym poradzę, tylko teraz nie mam czasu. |
|
|
|
 |
|
|