Skocz do zawartości

Max Payne


Rekomendowane odpowiedzi

Można. Trzeba tylko spowolnić wbudowaną zmienna room_speed, która jest niczym innym jak iloscią kroków gry na 1 sekundę.

 

A zrobic to można tak:

CREATE:
a = 0.1;
//zmienna spowalniająca, o taką wartość z każdym krokiem gry będzie się zmniejszać room_speed
b = 3;
//minimalna prętkość
c = 60;
//maksymalna prętkość
d = 0;
//zmienna warunków: 
//d = 0 - nic sie nie dzieje
//d = 1 - rozpoczęcie spowolnienia aż do wartości b
//d = 2 - przyspieszenie do pretkości c (normalnej)

STEP:
switch(d){
   case 1:{
          //gdy zmienna d przyjmie wartość 1 wykonaj instrukcję warunkowa if

      if(room_speed > b)
            room_speed -= a;
      else{
            room_speed = b; 
            d = 0;
            //lub dać d = 2 żeby gra powracała odrazu do normalnej prętkości
      }
   }break;

   case 2:{
         //gdy zmienna d przyjmie wartość 2 wykonaj instrukcję warunkowa if

      f(room_speed < c)
            room_speed += a;
      else{
           room_speed = c; 
           d = 0; 
          }
   }break;
}

 

No i teraz żeby sterować prętkością gry wystarczy tylko zmieniać wartość zmiennej d na 1 lub 2.

 

Z tym skryptem spowolnienie powinno następować liniowo, jakby zastosowac funkcje sinus to by może było ciekawiej...

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Zpowolnienie moze wygladac rownie dobrze w grach 2d. Trzeba to tylko odpowiednio obrobic zeby bylo cos wiecej niz tylko powolne poruszanie sie obiektow. Przykladem jest gra crimsonland.

 

Co do spowolnienia to zmniejszanie room speed spowoduje tylko zmniejszenie fps, i wtedy gra chodzi mniej plynnie. Lepiej zrobic zmienna np. szybkosc i wtedy przy kazdej zmianie predkosci/przesuwaniu obiektow dodawac *szybkosc (speed=5*szybkosc/x+=5*szybkosc). Szybkosc gry regulowalo by sie ta zmienna ustawiajac jest wartosc miedzy 0 a 1. Da to lepszy efekt.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

robiłem kiedyś gierke z bullet timem wykorzystywanym częściej, teraz pyknąłem to w chyba 2 miejscachw propaganji (szukajcie na forum!), ale nie lubie wykorzystywac do tego room_speed. Po 1 nie zmienia to dźwięków, po drugie to zwolnienie jest takie troche scinane. Mój sposób to uzależnienie każdego ruchu od variable, np global.szybkosc, a zrobic to mozna np. w poruszaniu kolesia ze jak idzie w prawo to jego szybkosc to np. 5*global.speed. to samo z właściwie wszystkimi obiektami ale też z image_speed każdego obiektu.

w ten sam sposób można też przyspieszać giere.

a jeśli chodzi o dźwięki to najlepiej zrobić że jeśli global.szybkosc < 1 to puszcza się dźwięk w zwolnionym.

Wygląda to dużo naturalniej i płynniej niż przez room_Speed.

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

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