Skocz do zawartości

Plynna zmiana zmienntych


Rekomendowane odpowiedzi

Dostałem jakąś martwicę mózgu i nie umiem zrobić z pozoru banalnej rzeczy dlatego zwracam się do kochanego gmclanu o pomoc :P

 

mam powiedzmy 5 zmiennych:

 

GML
renka = 5

dupa = 10

ramje = 2

bucior = 29

glowa = 6

 

no i taki problem że potrzebuję coś w tym stylu:

 

GML
renka = 78

dupa = 234

ramje = 23

bucior = 567

glowa = 123

 

chcę aby zmienne które na początku miały 5,10,2,29,6 po naciśnięciu klawisza płynnie wykonały sekwencję zmieny na 78,234,23 a potem wróciły do poprzednich pozycji gdy już np renka = 5 będzie renka = 78

 

jaśniej:

 

GML
renka = 5

docelowa renka = 10

 

//naciskamy R:

 

renka = 5, potem renka = 6, potem renka = 7, tak aż do renka = 10

 

gdy renka będzie miała 10 to będzie się zmiejszać aż dojdzie do renka = 5

 

halp!

Odnośnik do komentarza
Udostępnij na innych stronach

myślisz ze nie probowałem? :P

 

jak renka dojdzie do 78 to jak dasz

 

GML
if(renka>=78)

{

renka-=1

}

bo jak bedzie 77 to spowrotem zacznie się dodawac

 

może wytłumaczę sytuację tak:

 

mamy sobie rękę z direction 0

 

po nacisnieciu R

 

reka ma wykonać ruchy:

 

1. płynnie dojść do direction = 90

2. jak będzie miałą 90 to przejść np. do 180

3. jak bedzie miałą 180 to płynnie przejść do 50

4. gdy będzie miałą już 50 to przejść do 0 i się zatrzymać

 

wszystko żeby robiło się po koleji

Odnośnik do komentarza
Udostępnij na innych stronach

GML (create)
k=0;//1- dodajemy -1 odejmujemy 0 -nic nie rob</span>

GML (step)
if(keyboard_check_pressed(ord('R'))&&k==0)

{

k=1;

}

if(k!=0)

{

renka+=k;

if(renka==78)

k=-1;

if(renka==5)

k=0;

}

Nie sprawdzałem, ale powinno działać.

Odnośnik do komentarza
Udostępnij na innych stronach

Lol, przecież można prościej i elastyczniej na przyszłość napisać.

Dorabiasz sobie do każdej zmiennej dodatkową z docelowa wartoscia.

Przykład:

GML (Create)
renka=0;

renka_docelowo=78;

GML (Step)
if (renka!=renka_docelowo)

{

renka+=abs(renka_docelowo-renka);

}

 

I tyle wystarczy by zmienne były obsługiwane. Wystarczy zmieniać zmienna renka_docelowo na jaka tobie sie chce wartość, a wartość "renki" zawsze sie dopasuje.

Odnośnik do komentarza
Udostępnij na innych stronach

zaraz sprawdzę to wasze! jeżeli tak skróconym kodem będzie ten sam efekt to nie ma słów dla wyrażenia mojej radości :D

 

EDIT: no ok ale jak zrobić żeby wróciło spowrotem do pierwotnej pozycji gdy juz bedzie mialo 78?

 

EDIT2: poradziłem sobie i działa świetnie :DD dzięki pablo1517 i gnysku!

 

EDIT3: tylko jakbyście mogli to powiedzcie mi co to jest ten abs i sign? :)

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