Skocz do zawartości

Chodzenie na skos


tomalas

Rekomendowane odpowiedzi

Przejdźmy do rzeczy. Chodzi o gre The Hunter jak ktoś ma przykład to może będzie mu łatwiej mnie zrozumieć.

Chodzenei mam zrobione:

 

x+=2

y+=2

 

lub tam minus każdy wie o co chodzi. Ale teraz chodzi o to co się dzieje jak nacisne powiedzmy góra i prawo. Postać idzie na skos ale dwa razy szybciej bo liczy się kalwisz góra + klawisz dół. Wie ktoś jak to rozwiązać, ja próbowałem ale cuda mi wychodziły :P zamiast dodawać współrzędne można użyć hspeed i vspeed jak takie lepsze rozwiązanie :)

 

Z góry dzięki za pomoc...

 

P.S. Jakby ktoś temat mógł poprawić bo napisałem zamiast na skos na skoks :P

Odnośnik do komentarza
Udostępnij na innych stronach

if keyboard_check(vk_up)
{
    y-=2;
}
else
if keyboard_check(vk_down)
{
    y+=2;
}

if keyboard_check(vk_left)
{
    x+=2;
}
else
if keyboard_check(vk_right)
{
    x-=2;
}

Warunki leżą :P

Odnośnik do komentarza
Udostępnij na innych stronach

if keyboard_check(ord('W'))
{
    y-=2;
}
else
if keyboard_check(ord('S'))
{
    y+=2;
}

if keyboard_check(ord('D'))
{
    x+=2;
}
else
if keyboard_check(ord('A'))
{
    x-=2;
}

ord('Klawisz'); =D

Odnośnik do komentarza
Udostępnij na innych stronach

mozna to zrobic np. tak

speed+=1
if keyboard_check(ord('W'))
{   if keyboard_check(ord('A'))
        {direction=135}
    else
        if keyboard_check(ord('D'))
            {direction=45}
        else
            {direction=90}
}
else
if keyboard_check(ord('S'))
{   if keyboard_check(ord('A'))
        {direction=225}
    else
        if keyboard_check(ord('D'))
            {direction=315}
        else
            {direction=270}
}
else
if keyboard_check(ord('D'))
{   if keyboard_check(ord('W'))
        {direction=315}
    else
        if keyboard_check(ord('S'))
            {direction=45}
        else
            {direction=0}
}
else
if keyboard_check(ord('A'))
{   if keyboard_check(ord('S'))
        {direction=225}
    else
        if keyboard_check(ord('W'))
            {direction=135}
        else
            {direction=180}
}
else
{ speed-=1 }

if speed>4 then speed=4

lub szybciej

if keyboard_check(ord('A'))
{ motion_add(180,0.5) }
if keyboard_check(ord('W'))
{ motion_add(90,0.5) }
if keyboard_check(ord('S'))
{ motion_add(270,0.5)
if keyboard_check(ord('D'))
{ motion_add(0,0.5) }
if speed>4 then speed=4

tylko tutaj trzeba ustawic jeszcze w create tarcie

friction=0.3

 

albo mozna zrobic tak jak napisal Zakol, ale u niego jak puscisz przycisk to ludzik sie odrazu zatrzymuje a tu jest taki bajer ze tak sie trohe 'ślizga' :P

edit. hmmm chyba 3 a teraz to juz chyba 4

Odnośnik do komentarza
Udostępnij na innych stronach

if (keyboard_check(ord("A")) || keyboard_check(ord("D")))
  {
  if (keyboard_check(ord("W")) || keyboard_check(ord("S")))
    {
    if (keyboard_check(ord("W")))
      {
      y -= 2.5;
      }
    if (keyboard_check(ord("S")))
      {
      y += 2.5;
      }
    if (keyboard_check(ord("A")))
      {
      x -= 2.5;
      }
    if (keyboard_check(ord("D")))
      {
      x += 2.5;
      }
    }
  else
    {
    if (keyboard_check(ord("A")))
      {
      x -= 5;
      }
    if (keyboard_check(ord("D")))
      {
      x += 5;
     }
    }
  }
else
  {
  if (keyboard_check(ord("W")))
    {
    y -= 5;
    }
  if (keyboard_check(ord("S")))
    {
    y += 5;
    }
  }

 

EDIT: LOL Hanjuso, ile razy ty edytowałeś tego posta? :P

Odnośnik do komentarza
Udostępnij na innych stronach

Sposób Zakola jest bardzo dobry, tyle że teraz po skosie wolniej mi chodzi ale już pokombinuje. Dzięki :thumbsup:

 

Edit:

 

@Hanjuso tylko ,że ty używasz direction tam a ja używam go do czego innego.

 

Edit:

 

Co do tego chodzenia to wystarczy pozamieniać 5 na 2.5 ,żeby pod skosem chodził tak jak normalnie. To na przyszlość jakby ktoś nie wiedział jak zrobić :P

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