Skocz do zawartości

Zablokowane Stała prędkość grawitacji


Piedro

Rekomendowane odpowiedzi

Najbanalniejszy test (repeat(10k) w stepie ;d)

Warunek - 357/358fps.

Funkcja - 380-382.

 

I nie chodziło mi tu o wydajność, a o czytelność kodu.

Nie wiem jak dla Was, ale dla mnie a=min(a, B) wygląda dużo czytelniej niż jakiś warunek.

 

Aczkolwiek zamiast "A jak już to ..." mogłem napisać "A jak dla mnie czytelniej by było ..."... :P

 

Ruchu pod różnymi kątami mi się pisać teraz nie chce, ale ogólnie chodzi o to, że jeśli pozycja po prawej od gracza jest zajęta, to sprawdzasz, czy może akurat pozycja na prawo od gracza ale powiedzmy 1px wyżej jest wolna - jeśli tak, to przesuwasz gracza ten 1px wyżej, i ile tam chcesz w prawo.

 

Z tym, że ta metoda ma dwie zasadnicze wady - po primo, to postać wchodząc po platformie będzie się w rzeczywistości poruszać szybciej, niż po zwykłej, płaskiej powierzchni, co raczej nie będzie wyglądać realistycznie... :P (akurat to jeszcze łatwo naprawić)

Drugą wadą jest niedokładność czegoś takiego.

Jeśli ustawimy graczowi wysokość "górki", pod którą będzie mógł podejść na 1px, to postać będzie mogła podejść pod górkę o maksymalnym kącie 45 stopni, no fajnie.

Ale wystarczy wtedy najmniejsza nierówność w terenie (bo 2px to wcale nie jest dużo ;d), a postać się zaklinuje.

A z kolei jak ustawimy na 2px, to postać powinna poradzić sobie z większością górek, ale za to postać będzie mogła podejść pod ścianę mającą 60 stopni (od ziemi), co już "fajnie" nie wygląda.

 

Ed: lol, nie wiem, co schrzaniłem ale podałem fałszywe dane... =d

Teraz mi wyszło dla "mojej" techniki 150fps, dla tej na warunku prawie tyle samo (różnica paru fpsów).

Czyli warunek jest wydajniejszy, lol. A o ciekawe... :D

 

WTF.

Teraz z kolei mi wyszło, iż samo przypisanie zmiennej wartości 0 (10k razy na stepa) wyrabia 200 coś fps O.o

Trzeba się będzie tym zająć po szkole... =d

 

Ed2: O, już wiem o co chodzi.

Obie techniki są tak samo wydajne (parę procent różnicy), ale za to warunek ma jedną zaletę - otóż jeśli się nie wykona (czyli jeśli liczba nie przekroczy max wartości), to gm nie będzie musiał przypisać zmiennej wartości, i nie zmuli ^_^

 

W każdym razie, to są na tyle banalne sprawy, iż nie ma sensu przejmować się wydajnością (no chyba że ktoś naprawdę potrzebuje 10 tysięcy razy na stepa ograniczać liczbę do jakiejś wartości ^_^).

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Żaden z podanych kodów mnie nie zadowolił, więc wrócę do swojego starego kodo.

Z wszystkie starania bardzo dziękuje

Piedro

Zamykam temat

(EDIT)

przeanalizowałem dokładnie twój kod Dawidds i zmodyfikowałem go po swą grę.

Jesteś Wielki. Wszystko działa jak trzeba. thx 4 help. :D

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ę...