-
Postów
96 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez MeloPL
-
-
No więc tego kodu na animacje trochę jest... Jeśli ktoś ma trochę czasu, żeby mi pomóc i znajdzie coś, co blokuje mi tę animację, to będę bardzo wdzięczny. :D
Sam już od ponad godziny tego szukam i naszukać się nie mogę.
GML//w CREATE:sprite_index=sPlayerB; //zaladowuje sie sprite biegania
image_speed=bieg; //predkosc klatek taka, jak w create w bieganiu
image_xscale=1; //obraz odwrocony w prawo
}
if keyboard_check(vk_left) and hspd<0
{
sprite_index=sPlayerB; //zaladowuje sie sprite biegania
image_speed=bieg; //predkosc klatek taka, jak w create w bieganiu
image_xscale=-1; //obraz odwrocony w lewo
}
//Jeśli przestaje biegać, to stoi. LUB jeśli będzie się wciskało klawisz ruchu, lecz on straci prędkość i w ogóle nie będzie się poruszał, to animacja zmienia się na stojaca.
if (keyboard_check_released(vk_right)) or (hspd=0 and keyboard_check(vk_right)) or (place_meeting(x,y+3,oBlock) and image_xscale=1 and image_speed=spada)
{
sprite_index=sPlayerS; //zaladowuje sie sprite stania
image_speed=stoi; //predkosc klatek taka, jak w create w staniu
image_xscale=1; //obraz odwrocony w prawo
}
// To samo co wyzej, tyle, ze w lewo.
if (keyboard_check_released(vk_left)) or (hspd=0 and keyboard_check(vk_left)) or (place_meeting(x,y+3,oBlock) and image_xscale=-1 and image_speed=spada)
{
sprite_index=sPlayerS; //zaladowuje sie sprite stania
image_speed=stoi; //predkosc klatek taka, jak w create w staniu
image_xscale=-1; //obraz odwrocony w lewo
}
// Ruchy na suficie.
//stoi na suficie:
if keyboard_check(vk_up) and image_xscale=1 and (abStick && !place_free(x, y-1)) and !keyboard_check(vk_right) and !keyboard_check(vk_left) and image_speed!=sciana// jesli wcisniesz strzalke w gore a postac bedzie odwrocona w prawo, mozna chodzic po suficie i znajdujesz się piksel pod nim, oraz nie wciskasz strzalki w lewo/prawo
{
sprite_index=sPlayerUS; //sprite zmieni sie na trzymajacego sie sufitu
image_speed=sufit; //predkosc animacji dopasuje sie do sprite trzymajacego sie sufitu
image_xscale=1; //bedzie odwrocony w prawo
}
if keyboard_check_released(vk_up) and image_xscale=1 and image_speed=sufit //jeśli się puści sufitu będac odwrocony w prawo
{
sprite_index=sPlayerD; //sprite zmieni sie na spadajacego
image_speed=spada; //predkosc animacji dopasuje sie do sprite spadajacego
image_xscale=1; //bedzie odwrocony w prawo
}
if keyboard_check(vk_up) and image_xscale=-1 and (abStick && !place_free(x, y-1)) and !keyboard_check(vk_right) and !keyboard_check(vk_left) // jesli wcisniesz strzalke w gore a postac bedzie odwrocona w lewo, mozna chodzic po suficie i znajdujesz się piksel pod nim, oraz nie wciskasz strzalki w lewo/prawo
{
sprite_index=sPlayerUS; //sprite zmieni sie na trzymajacego sie sufitu
image_speed=sufit; //predkosc animacji dopasuje sie do sprite trzymajacego sie sufitu
image_xscale=-1; //bedzie odwrocony w lewo
}
if keyboard_check_released(vk_up) and image_xscale=-1 and image_speed=sufit //jeśli się puści sufitu będac odwrocony w lewo
{
sprite_index=sPlayerD; //sprite zmieni sie na spadajacego
image_speed=spada; //predkosc animacji dopasuje sie do sprite spadajacego
image_xscale=-1; //bedzie odwrocony w lewo
}
//idzie po suficie:
if keyboard_check(vk_up) and !place_free(x,y-1) and keyboard_check(vk_right) and hspd>0 and hspd!=0
{
sprite_index=sPlayerUB;
image_speed=sufit;
image_xscale=1;
}
if keyboard_check(vk_up) and !place_free(x,y-1) and keyboard_check(vk_left) and hspd<0 and hspd!=0
{
sprite_index=sPlayerUB;
image_speed=sufit;
image_xscale=-1;
}
// Spadanie:
if (place_free(x,y+1) and image_xscale=1 and image_speed!=sufit and (vspd<1.0 and vspd>0))
{
sprite_index=sPlayerDS;
image_speed=spada;
image_xscale=1;
}
if (place_free(x,y+1) and image_xscale=-1 and image_speed!=sufit and (vspd<1.0 and vspd>0))
{
sprite_index=sPlayerDS;
image_speed=spada;
image_xscale=-1;
}
if (place_free(x,y+1) and image_xscale=1 and image_speed!=sufit and vspd>1.0)
{
sprite_index=sPlayerD;
image_speed=spada;
image_xscale=1;
}
if (place_free(x,y+1) and image_xscale=-1 and image_speed!=sufit and vspd>1.0)
{
sprite_index=sPlayerD;
image_speed=spada;
image_xscale=-1;
}
// Wspina się po ścianie:
if (place_meeting(x+1,y,oBlock) and image_xscale=1 and keyboard_check(vk_up) and keyboard_check(vk_right)) //gdy odwrócony w prawo
{
sprite_index=sPlayerSU;
image_speed=sciana;
image_xscale=1;
}
if (place_meeting(x-1,y,oBlock) and image_xscale=-1 and keyboard_check(vk_up) and keyboard_check(vk_left)) //gdy odwrócony w lewo
{
sprite_index=sPlayerSU;
image_speed=sciana;
image_xscale=-1;
} // Trzyma sie sciany w bezruchu:
if (place_meeting(x+1,y,oBlock) and image_xscale=1 and keyboard_check(vk_right) and !keyboard_check(vk_up))
{
sprite_index=sPlayerSS; //sprite zmienia się na postac trzymajaca sie sciany w bezruchu
image_speed=sciana; //predkosc animacji zwiazanej z interakcja na scianie, domyslnie ustawione na "15/room_speed;"
image_xscale=1; //odwrocone w prawo
}
if (place_meeting(x-1,y,oBlock) and image_xscale=-1 and keyboard_check(vk_left) and !keyboard_check(vk_up))
{
sprite_index=sPlayerSS; //sprite zmienia się na postac trzymajaca sie sciany w bezruchu
image_speed=sciana; //predkosc animacji zwiazanej z interakcja na scianie, domyslnie ustawione na "15/room_speed;"
image_xscale=-1; //odwrocone w lewo
}
EDIT. Już do tego doszedłem -> starczyło dopisać we fragmencie "if [...] (hspd=0 and keyboard_check(vk_left)" argument "!image_speed=sciana". Problem rozwiązany, dzięki TheMarcQ za to, ze pomogles ustalic, iz blokada znajduje sie gdzies dalej w kodzie : )
-
Witam, jestem w trakcie tworzenia platformowej gry akcji na GM8 i robię właśnie różne animacje dla postaci.
Zrobiłem zwisanie z sufitu, bieg, stanie, spadanie, itp., wszystko działa świetnie, ale niestety, z animacją wspinania się po ścianie nie jest już tak pięknie; gdy napisałem:
GML// Wspina się po ścianie:if (place_meeting(x+1,y,oBlock) and image_xscale=1 and keyboard_check(vk_up) and keyboard_check(vk_right)) //gdy odwrócony w prawo
{
sprite_index=sPlayerSU;
image_speed=15/room_speed;
image_xscale=1;
}
if (place_meeting(x-1,y,oBlock) and image_xscale=-1 and keyboard_check(vk_up) and keyboard_check(vk_left)) //gdy odwrócony w lewo
{
sprite_index=sPlayerSU;
image_speed=15/room_speed;
image_xscale=-1;
}
to postać zaczyna robić animację, ale trwa ona do drugiej klatki, podczas gdy powinna wykonywać wszystkie klatki, których jest 10.
Ta animacja się zacina, lecz nie wiem, w czym rzecz. Macie jakiś pomysł, żeby rozwiązać ten problem?
-
Wojzax, obie twarze jakieś takie niekształtne, w takim nierealistycznym sensie. Kiepsko pocieniowane i ogólnie brzydkie, choć spodobały mi się włosy u tej dziewczyny na drugim obrazku. Dużo lepiej ci wychodzi pixel art. :)
-
Oh, dzięki :D Mam win7, nie wiedzialem ze istnieje taki program. :) No więc temat do zamknięcia ;D
-
Witam, mam pytanie, czy da się jakoś przybliżyć lub oddalić obraz w edytorze roomów? Przydałaby mi się taka opcja, bo robię grę z obiektów wielkości 12x12, więc żeby rozróżnić podobne obiekty, muszę się napatrzeć, poza tym niewygodnie się edytuje i łatwo się pomylić.
-
Bardzo by się przydała minimapa, by można byłoby rozplanować, kiedy użyć magnesu, by nie wpaść w kolce, których się nie widzi z powodu małej rozdzielczości.
-
A mi się podoba ten styl bez kolorowania :D Kojarzy mi się trochę z japońską mangą, która często jest czarnobiała. Ja osobiście bym chciał, żeby zostało niepokolorowane, albo najlepiej pokolorowane i zmienione na czarno-białe. :)
-
Przeszedłem całą. Fajny pomysł, oryginalny, lecz niekiedy występują bardzo irytujące momenty w poziomach, szczególnie w tym ostatnim. Irytujący dlatego, że nie wiadomo było, co jest dalej. Gdyby była jakaś minimapka chociaż, lub przytym nieco większy ekran, to bym się nie wkurzał, że na samym końcu umieszczone są kolce, w które wpadam, bo nie widziałem ich przez zbyt mały ekran... 4/5, bo wciągnęło mnie na tyle, żeby przejść całą, choć szczerze mówiąc, gdybyś porobił jeszcze więcej poziomów, to nie wiem, czy moje nerwy by pozwoliły na więcej. :>
-
Jak to "nikt nie robi"? Jeśli nikt by nie robił, to
*Ten temat by nie powstał,
*Nie istniałyby programy do tworzenia pixelartu,
*Nie powstawałyby gry w tym stylu...
Mam jeszcze wymieniać? Ja wciąż widuję w darmowych produkcjach ten styl, i szczerze mówiąc lubię go. Jakoś tak bardziej działa na wyobraźnię i ma swój wyjątkowy klimat. Szczerze mówiąc bardzo bym chciał, żeby powstała taka wysokobudżetowa pixelartowa produkcja, która weszłaby na rynek tych wyższych gier (pośród wszystkich tych gier za około 100 zł). Chętnie bym taką kupił, cóż, kręci mnie taki styl. Szkoda że to jest prawie niemożliwe. :unsure:
-
Witam, mam problem z wykonaniem obiektu, który ma się gładko zmniejszać i zwiększać, a do tego gładko lekko zanikać (tak gdzieś od 0.5 alpha do 1.0), oraz losowo klonować się (żeby powstał dokładnie taki sam obiekt, poruszający się w ten sam sposób jakieś 15 pikseli w prawo), maks 1 klon.
1. Płynne zmniejszanie-Zwiększanie,
2. Płynne zanikanie,
3. Płynne (z użyciem zanikania) powstawanie klona i chowanie się go.
No, to z tym mam problem, bo zawsze, gdy staram się to zrobić, to nie dzieje się to płynnie. :/
-
O, dzięki! Path tworzy się w roomie :D
No, może nie jest random, ale jak się ustawi taką ścieżkę, to na pewno nikt nic nie zauważy :) Dzięki wielkie. :D
-
Witam. Jak zrobić coś takiego, by obiekt płynnie falował po określonym obszarze (i za poza niego nie wychodził) w losowych kierunkach (ewentualnie coś w kształcie ósemki)?
Obiekt, który ma się płynnie przemieszczać nazywa się "kasztan", a drugi obiekt odpowiedzialny za obszar ruchu kasztana nazywa się "obszar" (oczywiście nie wiem, czy ten drugi obiekt się w ogóle przyda).
Od razu zaznaczę, że nie chcę, by dało się sterować obiektem "kasztan", a żeby wykonywał on sam losowe ruchy, ale płynnie, w kształcie falowania, lub cyfry 8.
-
Witam, mam do was pytanie, jak zrobić drogę, która będzie lekko zygzakowata, z animacją, jakby się po niej chodziło, z pierwszej osoby?
Chodzi o to, żeby się wydawało, że chodzi się po zygzakowatej drodze, która ciągnie się w nieskończoność (oraz żeby faktycznie była nieskończona).
-
Z betą gm8.0 nie zrobią gry. Mogą je ewentualnie robić tylko dla siebie, lub dla treningu.
-
Nie, nic. Próbowałem nawet robiąc nowy projekt, wklejając ten sam skrypt do eventu "step" i nic więcej innego, by sprawdzić, czy to działa, lecz też nic się nie działo.
Edit.
Ojej, już doszedłem do błędu.
Pisałem "imagexscale", zamiast "image_xscale" ^^
Teraz wszystko działa elegancko! Dziękuję :D
-
Nie wiem, czy coś źle robię, ale nawet to nie działa. Skopiowałem pod event step, nic nie zmieniając w kodzie, lecz nie działało. Jeśli zastosowałem przekierowanie "hero.x", to również nic się nie działo. ;/
-
Em, jak zaadresować oś x, aby game maker czytał ją, jako oś x obiektu "hero"?
W ten sposób?
GMLif hero.x<mouse_ximagexscale=-1
if hero.x>mouse_x
imagexscale=1
Jak to zrobiłem, to skrypt nie działa, nic się nie dzieje.
-
Witam, jak zrobić, by sprite obiektu odwracał się dzięki komendzie "image_xscale=-1" po tym, gdy myszka znajdzie się na lewej połowie tego obiektu, lub poza nim, ale z lewej strony?
Jakby co, jest to gra 2D z widokiem od boku, jak w platformówce.
imagexscale=-1 -> sprite jest odwrócony.
imagexscale=1 -> sprite jest normalny.
Samo odwracanie umiem, ale nie wiem, jak napisać, by przy tym, gdy myszka znajdzie się po lewej stronie od hero, coś ma się dziać, a po prawej też ma się coś dziać.
Jakbym zrobił image angle, to sprite po odwróceniu byłby do góry nogami, no i trzeba by było zastosować "imageyscale=-1". ;]
-
Hueh, fajna minigierka, ale tylko do pogrania i skasowania. ^^
Tylko dla fanów tego odcinka z Kapitana Bomby. ;x
-
Hm, czemu nie mogę tego pobrać? ;/ Pograłbym sobie ^^
-
Ok, ramkę zrobiłem już sam na podstawie tego kodu. U mnie całość wygląda tak:
draw_sprite(sprite_index,image_index,x,y);
draw_rectangle_color(view_xview + 0, view_yview + 61, 151, view_yview + 43, c_black,c_black,c_black,c_black, 1);
draw_rectangle_color(view_xview + 1, view_yview + 60, 150, view_yview + 44, c_white,c_white,c_white,c_white, 0);
draw_rectangle_color(view_xview + 1, view_yview + 60, 150/kondycha_max*kondycha, view_yview + 44, c_gray,c_gray,c_gray,c_gray, 0);
Gdzie to drugie od góry jest ramką, trzecie białym polem, a to na dole szarym paskiem.
Wielkie dzięki za pomoc, masz u mnie sporego plusa! :D
-
jesli w innym obiekcie pasek robisz to adresowac zmienne musisz do konkretnego obiektu (gracz) albo na globalnych
No wiem, to chyba oczywiste. :P
Dziękuję! :D
Już działa, lecz mam jeszcze takie pytanie. Czy da się zmienić położenie tego paska nieco niżej, ustawić czarną ramkę dla tego paska, a na dodatek przekolorować ten pasek na szary kolor?
-
Po zastosowaniu eventu draw w obj hero, zamiast hero, wyświetlany jest prostokąt, ale jeśli zastosuję event draw w nowym obiekcie, to mimo, że wciskam shift, a hero biega, to pasek (prostokąt) jest w jednym miejscu i się nie zmienia. Nie wiem, czy coś źle robię. Mój skrypt na bieganie, to:
if keyboard_check(vk_shift)
bieg=true
else
bieg=false;
if bieg=true
s=10;
if bieg=false
s=7;
gdzie "s" to prędkość.
Potrzeba tylko paska, który po zupełnym zmniejszeniu robił "bieg=false", a po tym zaczął się stopniowo ładować.
Dzięki za poświęcenie na mnie czasu ;)
Czy robię coś nie tak, że nie działa? ;x
-
@ZeroXbot
W jaki sposób mają wyglądać podstawione wartości?
Próbowałem z (na przykład) "x+1", lub samymi liczbami, lecz tak, czy siak, pokazuje taki błąd "at position 36: Wrong number of arguments to function or script."
Dziwne spadanie
w Pytania początkujących
Opublikowano
Witam, zabrałem się niedawno za tworzenie prostej gry i często napotykam się na głupawe błędy.
Tym razem mam taki problem, że gdy moja postać spada, to tuż przed wylądowaniem się zatrzymuje na ułamek sekundy i dopiero wtedy ląduje już w zwolnionym tempie.
Co zrobić, by nie było takiego efektu?
W create ustawiłem
A w kolizji hero z obiektem block ustawiłem
vspeed=0;