Skocz do zawartości

Skrócenie kodu


Rekomendowane odpowiedzi

Zrobiłem cos takiego ale kod jest dość duży, mozecie go jakoś skrócić. Z góry dzieki za pomoc

 

GML
if keyboard_check(ord('I'))

{

if gotowy=1 and direct=360

{

sprite_index=sprud1

image_speed=1/5

gotowy=0

alarm[0]=18

{

if con=1

{

global.fighter2hp-=10

}

}

}

}

 

if keyboard_check(ord('I'))

{

if gotowy=1 and direct=180

{

sprite_index=sprud2

image_speed=1/5

gotowy=0

alarm[0]=18

{

if con=1

{

global.fighter2hp-=10

}

}

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

Robisz bardzo dziwne rzeczy:

-Stawiasz jakieś niepotrzebne nawiasy klamrowe.

-Otwierasz dwa razy ten sam warunek jeden pod drugim ( if keyboard_check(ord('I')) )

 

GML
if keyboard_check(ord('I') and gotowy=1

{

if direct=360

{

sprite_index=sprud1

 

image_speed=1/5

gotowy=0

alarm[0]=18

if con=1

global.fighter2hp-=10

}

else if direct=180

{

sprite_index=sprud2

 

image_speed=1/5

gotowy=0

alarm[0]=18

if con=1

global.fighter2hp-=10

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

pamparampa źle.

A co jeśli direct nie jest równa ani 180 ani 360? wtedy nic się nie powinno wykonać.

 

Przynajmniej według jego kodu. Chociaż domyślam się, że jemu chodziło o to co podałeś, ale jednak to nie to samo ;)

Odnośnik do komentarza
Udostępnij na innych stronach

może tak:

GML
if keyboard_check(ord('I')) and gotowy=1 and direct=360

{

sprite_index=sprud1

image_speed=1/5

gotowy=0

alarm[0]=18

{

if con=1

{

global.fighter2hp-=10

}

}

}

}

 

if keyboard_check(ord('I')) and gotowy=1 and direct=180

{

sprite_index=sprud2

image_speed=1/5

gotowy=0

alarm[0]=18

{

if con=1

{

global.fighter2hp-=10

}

}

}

}

zawsze coś xD

 

EDIT:

 

A raczej tak

GML
if keyboard_check(ord('I')) and gotowy=1 and direct=360

{

sprite_index=sprud1

image_speed=1/5

gotowy=0

alarm[0]=18

if con=1 then global.fighter2hp-=10

 

if keyboard_check(ord('I')) and gotowy=1 and direct=180

{

sprite_index=sprud2

image_speed=1/5

gotowy=0

alarm[0]=18

if con=1 then global.fighter2hp-=10

Odnośnik do komentarza
Udostępnij na innych stronach

pamparampa źle.

A co jeśli direct nie jest równa ani 180 ani 360? wtedy nic się nie powinno wykonać.

 

Przynajmniej według jego kodu. Chociaż domyślam się, że jemu chodziło o to co podałeś, ale jednak to nie to samo ;)

 

jeśli direct może wynosić wartość inną niż 360 lub 180 to można zrobić tak

GML
if keyboard_check(ord('I'))

{

if gotowy=1

{

if direct=360 or direct=180

{

image_speed=1/5

gotowy=0

alarm[0]=18

if con=1

global.fighter2hp-=10

if direct=360

sprite_index=spr_sprud1

if direct=180

sprite_index=spr_sprud2

}

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

Wtedy można skrócić jeszcze bardziej i pierwsze 3 if dać w jednym.

Ale po co sprawdzać trzy razy direct? :)

 

Wiem, że to spowalnia o jakąś milionową część sekundy, ale mam fioła na punkcie takich idiotycznych optymalizacji :P

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if keyboard_check(ord("I")) && if gotowy = =1

{

switch direct

{

case 180:sprite_index=spr_sprud2;image_speed=1/5;

gotowy=0;

alarm[0]=18;

if con=1

global.fighter2hp-=10;break;

 

case 360:sprite_index=spr_sprud1;image_speed=1/5;

gotowy=0;

alarm[0]=18;

if con=1

global.fighter2hp-=10;break;

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Teraz was rozwalę:

 

GML
if keyboard_check(ord('I')) and gotowy=1

{

if direct=360 or direct=180

{

if direct = 180 then sprite_index = sprud1 else sprite_index = sprud2;

image_speed=1/5;

gotowy=0;

alarm[0]=18;

if con=1 then global.fighter2hp-=10;

}

}

 

11 linijek - 77% mniej.

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