Skocz do zawartości

Zablokowane Cień 3D


Jaklub

Rekomendowane odpowiedzi

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:

cieniiipz8.png

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

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

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

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

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

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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...