Markuz Opublikowano 29 Czerwca 2010 Udostępnij Opublikowano 29 Czerwca 2010 Nie wiedziałem jak zrobić mysz w 3D, więc sam ją narysowałem pobierając mouse_x i mouse_y , wszystko ok, myszka jest widoczna, działa sprawnie, lecz jak zrobić że np. gdy klikne na dany obiekt ( narysowany w 3D ) to żeby wykonała się jakaś akcja? Zwykły event mouse click nie działa, mouse enter i leave też nie . Proszę o pomoc . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 29 Czerwca 2010 Udostępnij Opublikowano 29 Czerwca 2010 Jako tako eventy z Mouse w trybie 3D nie dzialaja. Wynika to z dzialania takiego trybu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markuz Opublikowano 29 Czerwca 2010 Autor Udostępnij Opublikowano 29 Czerwca 2010 Yhym, a jak zrobić eventy mouse takie by dzialały w 3D? I jak zrobić przezroczystość obiektów 3D? :) Wiem że dużo pytań no ale cóż... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 29 Czerwca 2010 Udostępnij Opublikowano 29 Czerwca 2010 Eventy z Mouse nie dzialaja, poniewaz operuja na maskach, a one nie moga sie nagle splaszczyc, rozciagac, obracac itd. w trybie 3D. Sa dwie mozliwosci: albo ustawic mask na /same as sprite/ i pokombinowac z obliczeniami do transformowania na 3D, albo zrobic prosty bounding box do rysowanego obiektu i sprawdzac pozycje mouse_x i mouse_y. Ew. skorzystaj z jakiegos silnika, np. Ultimate 3D. Zeby zrobic przezroczystosc obiektow 3D, uzyj image_alpha draw_set_alpha (dzieki YXE, cos mi sie pomieszalo, myslalem akurat o image'ach z racji transformacji mask :D) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 29 Czerwca 2010 Udostępnij Opublikowano 29 Czerwca 2010 Zeby zrobic przezroczystosc obiektow 3D, uzyj image_alpha nie, od tego służy draw_set_alpha(0.5) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 29 Czerwca 2010 Udostępnij Opublikowano 29 Czerwca 2010 Skrypt wykrywający kolizję w lini prostej z boxem ( BoundingBox Ray Tracing ) By Tepi. GML /////////////////////////////////////////////////////////////////////////// // Description: This script returns true if the line intersects the block. // // arguments: (x1, y1, z1, x2, y2, z2, x0, y0, z0, dx, dy, dz) // The line is given in form (x0 + dxt, y0 + dyt, z0 + dzt), t is any real. //////////////////////////////// ~ Tepi ////////////////////////////////// { var a, b, c, xx, yy, zz, Dx, Dy, Dz, d; a = abs(argument3 - argument0)/2; b = abs(argument4 - argument1)/2; c = abs(argument5 - argument2)/2; xx = (argument3 + argument0)/2 - argument6; yy = (argument4 + argument1)/2 - argument7; zz = (argument5 + argument2)/2 - argument8; Dx = argument9; if (Dx == 0) Dx = .000001; Dy = argument10; if (Dy == 0) Dy = .000001; Dz = argument11; if (Dz == 0) Dz = .000001; d = sqrt(Dx*Dx + Dy*Dy + Dz*Dz); //The direction vector's magnitude Dx /= d; Dy /= d; Dz /= d; //Normalizing the direction vector d = 10000; if abs(yy - Dy * (xx + a) / Dx) <= b && abs(zz - Dz * (xx + a) / Dx) <= c d = min(d,(xx + a) / Dx); if abs(yy - Dy * (xx - a) / Dx) <= b && abs(zz - Dz * (xx - a) / Dx) <= c d = min(d,(xx - a) / Dx); if abs(xx - Dx * (yy + b) / Dy) <= a && abs(zz - Dz * (yy + b) / Dy) <= c d = min(d,(yy + b) / Dy); if abs(xx - Dx * (yy - b) / Dy) <= a && abs(zz - Dz * (yy - b) / Dy) <= c d = min(d,(yy - b) / Dy); if abs(xx - Dx * (zz + c) / Dz) <= a && abs(yy - Dy * (zz + c) / Dz) <= b d = min(d,(zz + c) / Dz); if abs(xx - Dx * (zz - c) / Dz) <= a && abs(yy - Dy * (zz - c) / Dz) <= b d = min(d,(zz - c) / Dz); if (d < 0) return 0; //This line makes it a ray. global.XX = argument6 + Dx * d; global.YY = argument7 + Dy * d; global.ZZ = argument8 + Dz * d; global.ddx = 0; global.ddy = 0; global.ddz = 0; if abs(Dx * d - xx)/a == 1 global.ddx = sign(Dx * d - xx); if abs(Dy * d - yy)/b == 1 global.ddy = sign(Dy * d - yy); if abs(Dz * d - zz)/c == 1 global.ddz = sign(Dz * d - zz); return (d != 10000); } 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ę