Skocz do zawartości

Zablokowane Przyśpieszenie


szpaq99

Rekomendowane odpowiedzi

Event Key Press [strzałka]

i kod

GML
with keyboard_check(vk_shift)

{

kod na poruszanie się (odpowiednio do strzałki) z jakąś tam prędkością np.7

}

else

{

kod na poruszanie się (odpowiednio do strzałki) z jakąś tam prędkością, ale mniejszą np. 4

}

 

z pamięci nie napiszę Ci kodu na poruszanie się, ale chyba wiesz jak to uzupełnić, no nie?

 

Pozdro, Kopyciak :)

Odnośnik do komentarza
Udostępnij na innych stronach

GML (Step)
if keyboard_check(vk_right) // jak klikasz bez shift-a

{

 

speed=4

 

}

 

if keyboard_check(vk_right) and keyboard_check(vk_shift) // gdy klikasz z shift-em

{

 

speed=7

}

GML (Step)
if keyboard_check(vk_right) and keyboard_check(vk_shift) // gdy klikasz z shift-em

{

 

speed=7

}

else if keyboard_check(vk_right) // jak klikasz bez shift-a

{

 

speed=4

 

}

Nieco przerobione. U ciebie sprawdza dwa razy.

Odnośnik do komentarza
Udostępnij na innych stronach

GML (Step)
if keyboard_check(vk_right) // jak klikasz bez shift-a

{

 

speed=4

 

}

 

if keyboard_check(vk_right) and keyboard_check(vk_shift) // gdy klikasz z shift-em

{

 

speed=7

}

GML (Step)
if keyboard_check(vk_right) and keyboard_check(vk_shift) // gdy klikasz z shift-em

{

 

speed=7

}

else if keyboard_check(vk_right) // jak klikasz bez shift-a

{

 

speed=4

 

}

Nieco przerobione. U ciebie sprawdza dwa razy.

 

 

GML (Step)
if keyboard_check(vk_right) // gdy klikasz z shift-em

{

if keyboard_check(vk_shift)

speed= 7;

else

speed = 4;

}

Nieco przerobione. U ciebie sprawdza dwa razy.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if keyboard_check(vk_left) & place_free(x-5,y)

{

if keyboard_check(vk_shift)

sprite_index=spr_run_left

x-=8

else

sprite_index=spr_walk_left

image_speed=0.8

x-=5

}

 

Taki mam kod, ale wywala błąd z else;

 

 

___________________________________________

FATAL ERROR in

action number 1

of Step Event

for object obj_hero:

 

COMPILATION ERROR in code action

Error in code at line 18:

else

^

at position 2: Unexpected symbol in expression.

Odnośnik do komentarza
Udostępnij na innych stronach

Mam taki kod na skakanie:

 

GML
if keyboard_check(vk_space) & not place_free(x+0,y+1)

{

if sprite_index = spr_stance_left sprite_index = spr_jump_left

if sprite_index = spr_stance_right sprite_index = spr_jump_right

if sprite_index = spr_walk_left sprite_index = spr_jump_left

if sprite_index = spr_walk_right sprite_index = spr_jump_right

vspeed=-10;

}

 

Taki po dotknięciu z podłogą:

 

GML
if sprite_index = spr_jump_right sprite_index =spr_stance_right

if sprite_index = spr_jump_left sprite_index =spr_stance_left

 

Ale jak zrobić, że jak jest w powietrzu to żeby po naciśnięciu strzałek zmieniał się tylko sprite od skoku, żeby nie włączała się w czasie skoku po naciśnięciu klawisza grafika chodzenia tylko skoku, strzałka w lewo sprite-od skoku obrócony lewo, a w prawo to w prawo obrócony sprite.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if place_free(x,y+1)

{

if keyboard_check(vk_left) sprite_index = spr_jump_left

if keyboard_check(vk_right) sprite_index = spr_jump_right

}

Zrobiłem tak i działa, potem jeszcze pokombinuje z image_xscale

 

Wystarczy:

GML
if place_free(x,y+1)

{

if keyboard_check(vk_left) image_xscale=-1

if keyboard_check(vk_right) image_xscale=1

}

 

EDIT:

Sorry, jeszcze musi się zmieniać sprite.

 

GML
if place_free(x,y+1)

{

sprite_index = spr_jump

if keyboard_check(vk_left) image_xscale=-1

if keyboard_check(vk_right) image_xscale=1

}

Odnośnik do komentarza
Udostępnij na innych stronach

Skopiowałem jego kod i zedytowałem.

Ok, niech ci będzie:

GML
if place_free(x,y+1)

{

sprite_index = spr_jump

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

 

EDIT:

Wystarczy obracać raz przy wciśnięciu.

Czemu? W mario to by było czasami przydatne.

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra zrobiłem tak, ale teraz jak skocze przytrzymam shift i jak postać dotknie już podłogi to się zacina nie wiadomo czemu, chodzi normalnie, ale jak chce biegnąć to stoi w miejscu.

Step:

GML
if place_free(x,y+1)

{gravity = 0.5}

else

{gravity = 0}

 

if keyboard_check(vk_right) & place_free(x+5,y)

if keyboard_check(vk_shift)

{sprite_index=spr_run_right

x+=8}

else

{sprite_index=spr_walk_right

image_speed=0.8

x+=5

}

 

if keyboard_check(vk_left) & place_free(x-5,y)

if keyboard_check(vk_shift)

{sprite_index=spr_run_right

x-=8}

else

{sprite_index=spr_walk_right

image_speed=0.8

x-=5

}

 

if keyboard_check_released(vk_left)

{

sprite_index=spr_stance_right

}

 

if keyboard_check_released(vk_right)

{

sprite_index=spr_stance_right

}

 

if gravity = 0

{

if keyboard_check_released(vk_right) sprite_index = spr_stance_right

if keyboard_check_released(vk_left) sprite_index = spr_stance_left

}

 

if keyboard_check(vk_space) & not place_free(x+0,y+1)

{

if sprite_index = spr_stance_right & image_xscale=-1 sprite_index = spr_jump_right & image_xscale=-1

if sprite_index = spr_stance_right sprite_index = spr_jump_right

if sprite_index = spr_walk_right & image_xscale=-1 sprite_index = spr_jump_right & image_xscale=-1

if sprite_index = spr_walk_right sprite_index = spr_jump_right

if sprite_index = spr_run_right sprite_index = spr_jump_right

if sprite_index = spr_walk_right & image_xscale=-1 sprite_index = spr_jump_right & image_xscale=-1

vspeed=-10;

}

 

if place_free(x,y+1)

{

if keyboard_check(vk_left) sprite_index=spr_jump_right

if keyboard_check(vk_right) sprite_index=spr_jump_right

}

 

if sprite_index = spr_jump_right

{

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

 

if sprite_index = spr_stance_right

{

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

 

if sprite_index = spr_run_right

{

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

 

if sprite_index = spr_walk_right

{

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

 

Kolizja z blokiem:

GML
move_contact_solid(270,4)

vspeed = 0

 

if sprite_index = spr_jump_right sprite_index =spr_stance_right

if sprite_index = spr_jump_right & image_xscale=-1 sprite_index =spr_stance_right & image_xscale=-1

 

 

 

Zobaczcie, w tym przykładzie to jak ląduje dziwnie wbija się w ziemie,

https://gmclan.org/up4796_4_Assasin_Creed.html

Odnośnik do komentarza
Udostępnij na innych stronach

Ho-ho, optymalizacja Twojego kodu na pewno duużo, baaardzo dużo by pomogła.

W ogóle chyba masz tam pokombinowane aż nadto.

 

E: radzę cały kod do keyboard_check(vk_right) do jednego bloku, tak samo z vk_left.

GML
if sprite_index = spr_jump_right

{

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

 

if sprite_index = spr_stance_right

{

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

 

if sprite_index = spr_run_right

{

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

 

if sprite_index = spr_walk_right

{

if keyboard_check_pressed(vk_left) image_xscale=-1

if keyboard_check_pressed(vk_right) image_xscale=1

}

?

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