[MMF2] Sprawdzanie odległości, wyrównanie do siatki |
Autor |
Wiadomość |
tracersgta
Starszy sierżant Po przerwie :I
 
Główny edytor: 
Pojedynki: być może
Pomógł: 7 razy Posty: 204
2910 Prestiż
|
Wysłany: 30-05-2011, 13:56 [MMF2] Sprawdzanie odległości, wyrównanie do siatki
|
|
|
Ustawiam kratkę na 16x16 px. W każdą kratkę wstawiam jeden obiekt 16x16 px. I wszystko działa, póki nie uruchomię aplikacjii... program pokazuje jedynie fragment wszystkich elementów oraz ignoruje zdarzenia...
Teraz pytanie:
Jak zrobić aby kiedy gracz kliknął na dany obszar obiekt utworzy mu się w kratce a nie zaraz koło myszy?
2:
Jak zrobić aby zdarzenie mogło się odbyć tylko wtedy gdy jeden obiekt jest w mniejszej odległości niż ileśtam px. |
_________________ Była lekka 4 letnia przerwa od klików :I |
Ostatnio zmieniony przez Aleks 30-05-2011, 15:21, w całości zmieniany 2 razy |
|
|
|
 |
Aleks
Moderator Wilczek
 
Główny edytor: 
Skype: 
Pomógł: 78 razy Posty: 636
28587 Prestiż
|
Wysłany: 30-05-2011, 14:13
|
|
|
Kod: | XMouse/16*16
YMouse/16*16 |
|
|
|
|
 |
tracersgta
Starszy sierżant Po przerwie :I
 
Główny edytor: 
Pojedynki: być może
Pomógł: 7 razy Posty: 204
2910 Prestiż
|
Wysłany: 30-05-2011, 14:21
|
|
|
Do którego to jest? Zadałem 2 pytania |
_________________ Była lekka 4 letnia przerwa od klików :I |
|
|
|
 |
Wackyjackie
Bohater Starszy Chorąży Sztabowy Randomu
 
Główny edytor: 
Drugi edytor: 
Pojedynki: nie
Pomógł: 69 razy Posty: 715
36328 Prestiż
|
Wysłany: 30-05-2011, 15:05
|
|
|
1. Patrz Aleks. Domyśl się jak skorzystać.
2. Advanced Direction Object. Najłatiwiej. |
_________________
 |
|
|
|
 |
tracersgta
Starszy sierżant Po przerwie :I
 
Główny edytor: 
Pojedynki: być może
Pomógł: 7 razy Posty: 204
2910 Prestiż
|
Wysłany: 30-05-2011, 16:07
|
|
|
Fajnie... Może byś pomógł, skoro wiesz jak rozwiązać 2 problem? |
_________________ Była lekka 4 letnia przerwa od klików :I |
|
|
|
 |
Wackyjackie
Bohater Starszy Chorąży Sztabowy Randomu
 
Główny edytor: 
Drugi edytor: 
Pojedynki: nie
Pomógł: 69 razy Posty: 715
36328 Prestiż
|
Wysłany: 30-05-2011, 16:30
|
|
|
Nie wymaga to przecież żadnej finezji i większego pomyślunku. http://i51.tinypic.com/15i9pwo.png
A nawet masz przykłady w katalogu MMFa! That's right! |
_________________
 |
|
|
|
 |
tracersgta
Starszy sierżant Po przerwie :I
 
Główny edytor: 
Pojedynki: być może
Pomógł: 7 razy Posty: 204
2910 Prestiż
|
Wysłany: 30-05-2011, 16:49
|
|
|
Daj przykład zdarzenia... |
_________________ Była lekka 4 letnia przerwa od klików :I |
|
|
|
 |
Aleks
Moderator Wilczek
 
Główny edytor: 
Skype: 
Pomógł: 78 razy Posty: 636
28587 Prestiż
|
Wysłany: 30-05-2011, 17:01
|
|
|
Kod: | Sqr((Abs(X( "Active" )-X( "Active 2" )))*(Abs(X( "Active" )-X( "Active 2" )))+Abs((Y( "Active" )-Y( "Active 2" )))*Abs((Y( "Active" )-Y( "Active 2" )))) |
Nie ma przykładów. |
|
|
|
 |
Fadex
Legenda #4; #12; #18; #20; #21; #27
 
Główny edytor: 
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 30-05-2011, 18:09
|
|
|
Aleks napisał/a: |
Kod: | Sqr((Abs(X( Active )-X( Active 2 )))*(Abs(X( Active )-X( Active 2 )))+Abs((Y( Active )-Y( Active 2 )))*Abs((Y( Active )-Y( Active 2 )))) |
Nie ma przykładów. |
Po co te Abs()? Zupełnie zbędne, tylko wydłużają wyrażenie. |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
 |
tracersgta
Starszy sierżant Po przerwie :I
 
Główny edytor: 
Pojedynki: być może
Pomógł: 7 razy Posty: 204
2910 Prestiż
|
Wysłany: 30-05-2011, 18:12
|
|
|
Wpisałem i co z tego? Nic nie daje... |
_________________ Była lekka 4 letnia przerwa od klików :I |
|
|
|
 |
Fadex
Legenda #4; #12; #18; #20; #21; #27
 
Główny edytor: 
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 30-05-2011, 18:29
|
|
|
To jest wzór na odległość między dwoma obiektami, więc...
(a dokładniej:)
Kod: | Sqr((X( "Active" )-X( "Active 2" ))*(X( "Active" )-X( "Active 2" ))+(Y( "Active" )-Y( "Active 2" ))*(Y( "Active" )-Y( "Active 2" ))) |
Zależy to też od obiektów, między którymi dystans porównujesz. Jeśli jest ich więcej niż po jeden z każdego rodzaju - to nieco bardziej skomplikowane. |
_________________ 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: 3446
33789 Prestiż
|
Wysłany: 30-05-2011, 18:37
|
|
|
Fadex napisał/a: | Po co te Abs()? Zupełnie zbędne, tylko wydłużają wyrażenie. |
Po co w ogóle? Advanced Direction Object robi to znacznie, znacznie szybciej.
tracersgta, musisz zrobić nierówność z policzoną odległością między obiektami po jednej stronie, a odległością pożądaną (stałą) po drugiej.
Naucz się myśleć. Jak można nie wpaść na to, że wyrażenie "XMouse/16*16" odnosi się do problemu z myszą? Pewnie nawet tego nie przeczytałeś |
|
|
|
 |
tracersgta
Starszy sierżant Po przerwie :I
 
Główny edytor: 
Pojedynki: być może
Pomógł: 7 razy Posty: 204
2910 Prestiż
|
Wysłany: 30-05-2011, 18:52
|
|
|
Nic z tego nie zrozumiałem |
_________________ Była lekka 4 letnia przerwa od klików :I |
|
|
|
 |
Aleks
Moderator Wilczek
 
Główny edytor: 
Skype: 
Pomógł: 78 razy Posty: 636
28587 Prestiż
|
Wysłany: 30-05-2011, 19:22
|
|
|
Człowieku wkurzasz mnie
Distance( "Advanced Direction Object", X1, Y1, X2, Y2)
X1 pierwszy obiekt
X2 drugi obiekt
1 | + Distance( Advanced Direction Object, X1, Y1, X2, Y2) < 100
• zrób coś (strzel sobie w łeb)
|
W ogóle piszesz jak potłuczony
tracersgta napisał/a: | odległość niż ileśtam px. |
według czego? obiektom? co chcesz zrobić? |
Ostatnio zmieniony przez Minty 30-05-2011, 19:45, w całości zmieniany 1 raz |
|
|
|
 |
tracersgta
Starszy sierżant Po przerwie :I
 
Główny edytor: 
Pojedynki: być może
Pomógł: 7 razy Posty: 204
2910 Prestiż
|
Wysłany: 30-05-2011, 19:36
|
|
|
Aleks napisał/a: | W ogóle piszesz jak potłuczony |
I kto to mówi
Chcę: Jest obiekt X i obiekt Y. Obiekt X to nasz bohater, a Y to podłoże. Bohater umie niszczyć podłoże ale tylko gdy jest w odległości mniejszej niż 96 pikseli... I pytanie... Jak zrobić aby obiekt Y został zniszczony po naciśnięciu na niego myszą, tylko gdy obiekt X jest w odległości mniejszej lub równej 96 pikseli... jasne? |
_________________ Była lekka 4 letnia przerwa od klików :I |
|
|
|
 |
|