szpaq99 Opublikowano 22 Lutego 2011 Udostępnij Opublikowano 22 Lutego 2011 Jak zrobić w gm, że jak nacisnę strzałki to idę normalnie z normalną prędkością(to już zrobiłem), a jak nacisnę strzałkę +shift to poruszam się z przyśpieszeniem ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kopyciak Opublikowano 22 Lutego 2011 Udostępnij Opublikowano 22 Lutego 2011 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 Więcej opcji udostępniania...
Cordoba Opublikowano 22 Lutego 2011 Udostępnij Opublikowano 22 Lutego 2011 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 } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kataner Opublikowano 22 Lutego 2011 Udostępnij Opublikowano 22 Lutego 2011 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 Więcej opcji udostępniania...
Platyna Opublikowano 22 Lutego 2011 Udostępnij Opublikowano 22 Lutego 2011 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 Więcej opcji udostępniania...
szpaq99 Opublikowano 22 Lutego 2011 Autor Udostępnij Opublikowano 22 Lutego 2011 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 Więcej opcji udostępniania...
MXQ Opublikowano 22 Lutego 2011 Udostępnij Opublikowano 22 Lutego 2011 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 }} E: Teraz powinno działać Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 22 Lutego 2011 Autor Udostępnij Opublikowano 22 Lutego 2011 Działa ale teraz postać się porusza się tylko bez naciśnięcia shifta, po naciśnięciu stoi w miejscu i się nie rusza. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MagnusArias Opublikowano 22 Lutego 2011 Udostępnij Opublikowano 22 Lutego 2011 GML if keyboard_check(vk_left) { if keyboard_check(vk_shift) { x-=8 } else x-=5 } else hspeed = 0; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 22 Lutego 2011 Autor Udostępnij Opublikowano 22 Lutego 2011 Dobra już wszystko działa :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 23 Lutego 2011 Autor Udostępnij Opublikowano 23 Lutego 2011 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 Więcej opcji udostępniania...
Platyna Opublikowano 23 Lutego 2011 Udostępnij Opublikowano 23 Lutego 2011 Masz Lite? Tam nie działa image_xscale? Bo tym się znacznie wygodniej obraca ustawiając na -1 lub 1 zamiast sprite'a zmieniać zależnie czy lewo czy prawo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 23 Lutego 2011 Autor Udostępnij Opublikowano 23 Lutego 2011 Mam wersje pro. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 23 Lutego 2011 Udostępnij Opublikowano 23 Lutego 2011 No to ustaw origin sprite'a na środku i zamiast oddzielnych spritów na lewo i prawo po prostu je obracaj używając image_xscale. Zrób sprita obróconego w prawo tylko i by mieć w lewo daj image_xscale=-1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 23 Lutego 2011 Autor Udostępnij Opublikowano 23 Lutego 2011 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 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 23 Lutego 2011 Udostępnij Opublikowano 23 Lutego 2011 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 Więcej opcji udostępniania...
Platyna Opublikowano 23 Lutego 2011 Udostępnij Opublikowano 23 Lutego 2011 Na cholerę check? Wystarczy obracać raz przy wciśnięciu. Po co cały czas przy trzymaniu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 23 Lutego 2011 Udostępnij Opublikowano 23 Lutego 2011 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 Więcej opcji udostępniania...
Platyna Opublikowano 23 Lutego 2011 Udostępnij Opublikowano 23 Lutego 2011 Człowieku, ale na kija to place_free? Obracać ma się zawsze bez względu na to czy stoi czy jest w powietrzu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 23 Lutego 2011 Autor Udostępnij Opublikowano 23 Lutego 2011 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 Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 23 Lutego 2011 Udostępnij Opublikowano 23 Lutego 2011 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 Więcej opcji udostępniania...
Czarny Ass Opublikowano 23 Lutego 2011 Udostępnij Opublikowano 23 Lutego 2011 @Platyna Ale on ma oddzielne na powietrze i kiedy stoi. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 24 Lutego 2011 Udostępnij Opublikowano 24 Lutego 2011 @Platyna Ale on ma oddzielne na powietrze i kiedy stoi. smile.gif A ty zamiast go naprostować to brniesz w jego ciemnotę. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 24 Lutego 2011 Udostępnij Opublikowano 24 Lutego 2011 :) Łee a ja po temacie myślałem że chcesz zrobić prawdziwe przyspieszenie,typu walniesz jakiegoś fora i co ileś milisekund postać przyspiesza o daną wartość dopóki nie upłynie powiedzmy 1.3 sekundy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 24 Lutego 2011 Autor Udostępnij Opublikowano 24 Lutego 2011 Zobaczy ktoś,czemu postać się tak zacina, przy lądowaniu i po lądowaniu proszę nacisnąć shift to wogóle się nie ruszy a powinien. https://gmclan.org/up4796_4_Assasin_Creed_2d.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 24 Lutego 2011 Udostępnij Opublikowano 24 Lutego 2011 No przecież wysłałem Ci poprawioną wersję. :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 25 Lutego 2011 Autor Udostępnij Opublikowano 25 Lutego 2011 Przeca w twojej wersji dalej postać się zacina. Nie no wtedy otworzyło mi jeszcze raz te samą moją wersje, teraz otworzyło mi twoją i wszystko ładnie działa. Wielkie dzięki! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi