Jaklub Opublikowano 1 Czerwca 2007 Udostępnij Opublikowano 1 Czerwca 2007 Mam problem z cieniem 3D. Mam dwa variable w objekcie bohatera: z (pozycja 'wysokościowa') i mehz (pozycja 'wysokościowa' cienia). Tak wygląda mój problem: Mam taki kod: if z>other.z and mehz<other.z { mehz=other.z } if z>mehz and mehz>other.z { mehz=other.z } if z<mehz and other.z<mehz { mehz=other.z } (część kodu z kolizji z platformą, ta odpowiedzialna za cień) Platforma kratkowana i trawiasta są innymi objektami - Yoshi jest nad kratkowaną platformą i to na niej powinien być cień. Platforma kratkowana ma parent - platformę trawiastą. Kod był w kolizji z platformą trawiastą. (Nie umiem tego normalnie wytłumaczyć ;P) Czy ktoś może mi pomóc? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
KoRn Opublikowano 1 Czerwca 2007 Udostępnij Opublikowano 1 Czerwca 2007 cien, jak cien, ale tamto to chyba nielegalne, ale ja mam wszystkie gta oprocz gta4 i gta3. wez daj link. Chyba bardzo chcesz tego warna. Dam ci go za następne złamanie regulaminu. Jaklub edit: zrob ze jak skoczysz to pojawia sie cien, a jak skonczysz skakac, to usun cien. proste. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 1 Czerwca 2007 Autor Udostępnij Opublikowano 1 Czerwca 2007 Piiip! Zła metoda. To nie takie proste, kasa100. Nie doczytałeś posta do końca - chodzi o pozycję, a nie występowanie cienia! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
spyro Opublikowano 1 Czerwca 2007 Udostępnij Opublikowano 1 Czerwca 2007 A jak ma niby robić na other.z, skoro kolizję sprawdza dopiero po kolizji, a ty zrobiłeś odrazu if <..> other.<...> ?? xD Nie ma szans, by GM zrobił coś na obiekcie, z którym masz kolizję, jeśli jeszcze jej nie masz... Rozumiesz ? Poza tym, kolizja jest sprawdzana, kiedy dwa pixele stykają się idealnie ze sobą, a jeśli masz np. przy kolizji też coś o vspeed/hspeed, to kolizji i tak nie wykryje, bo warunki na zatrzymywanie przy vspeed/hspeed zatrzymują obiekt dwa pixele przed kolizją, więc teoretycznie kolizja nie istnieje kiedy obiekt jest move_contact_solid() lub move_contact_all(). Użyj tutaj distance_to_object(platforma_kratkowana) i bedzie dobrze :P I lepiej nie parentuj. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 1 Czerwca 2007 Autor Udostępnij Opublikowano 1 Czerwca 2007 Tu plansza jest robiona od góry i chodzi mi o pozycję z cienia. Dobrym sposobem byłoby wykrywanie, czy między bohaterem a cieniem nie jest jakaś inna platforma, ale nie wiem, jak się za to zabrać. No i, spyro, kratkowana platforma nie zawsze musi być nad trawiastą. I lepiej nie parentuj To do każdej ściany mam dodawać kolizje? A co, jeśli zechcę zmienić teksturę? Wszędzie creation code? Dzięki, creation code do z mi wystarcza. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
spyro Opublikowano 1 Czerwca 2007 Udostępnij Opublikowano 1 Czerwca 2007 Przecież każda platforma to inny obiekt, więc co za problem dodać Create do nich ?? xD Zresztą zawsze możesz odwołać się do konkretnych obiektów, a nie do całych parentów. Dla dobrego programisty to nie problem. :P Poza tym, są takie funkcje, jak instance_nearest(...), distance_to_object(...) lub collision_(..) - być może one pomogą Ci w rozwiązaniu twego problemsa :D instance_nearest(obj) odwołuje się do najbliżego obiektu obj przy bohaterze (taka przweciwna alternatywa dla distance_to_object(obj)), więc skoro masz sparentowane wszystkie platformy, to możesz przypisać ją do konkretnego parentu, a później do obiektu cień :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 1 Czerwca 2007 Autor Udostępnij Opublikowano 1 Czerwca 2007 Dobra, ale funkcjami collision_..., instance_nearest czy distance_to_object nie sprawdzę objektów z określonymi variablami (chyba)... Czy to jest możliwe? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
spyro Opublikowano 1 Czerwca 2007 Udostępnij Opublikowano 1 Czerwca 2007 obiekt = instance_nearest(parent) if obiekt.z > 0 { ... } I oczywiście w Settingsach "Treat uninitialized variables as 0" :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 1 Czerwca 2007 Autor Udostępnij Opublikowano 1 Czerwca 2007 To nic nie daje, bo objekty (z większym i mniejszym z) się nakładają... Co zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hanjuso Opublikowano 1 Czerwca 2007 Udostępnij Opublikowano 1 Czerwca 2007 Bycmoze jest tak, ze najpierw sprawdza kolizje dla platformy lezacej na gorze, ustawia eprawidlowo cien, a pozniej robi to samo z platforma lezaca nizej i ustawia cien nizej. Ciezko jest mi stwierdzic cos wiecej przy takiej ilosci informacji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 1 Czerwca 2007 Autor Udostępnij Opublikowano 1 Czerwca 2007 Bycmoze jest tak, ze najpierw sprawdza kolizje dla platformy lezacej na gorze, ustawia eprawidlowo cien, a pozniej robi to samo z platforma lezaca nizej i ustawia cien nizej. Tak właśnie jest, Hansujo. I tu pies pogrzebany - co zrobić, by cień został, jak jest? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hanjuso Opublikowano 1 Czerwca 2007 Udostępnij Opublikowano 1 Czerwca 2007 Zamiast ustawiac odrazu cien, zapisuj informacje o pozycji, a po sprawdzeniu wszystkich kolizji ustawiaj go na najwyzsza. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 1 Czerwca 2007 Autor Udostępnij Opublikowano 1 Czerwca 2007 Poradziłem sobie z problemem. :) Dzięki za pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi