[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, 14: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, 16:21, w całości zmieniany 2 razy |
|
|
|
|
Aleks
Moderator Wilczek
Główny edytor:
Skype:
Pomógł: 78 razy Posty: 636
28588 Prestiż
|
Wysłany: 30-05-2011, 15: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, 15: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: 717
36331 Prestiż
|
Wysłany: 30-05-2011, 16: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, 17: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: 717
36331 Prestiż
|
Wysłany: 30-05-2011, 17: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, 17: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
28588 Prestiż
|
Wysłany: 30-05-2011, 18: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, 19: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, 19: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, 19: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, 19: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, 19: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
28588 Prestiż
|
Wysłany: 30-05-2011, 20: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, 20: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, 20: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 |
|
|
|
|
|