Skocz do zawartości

Threef

Moderatorzy
  • Postów

    2 911
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    14

Treść opublikowana przez Threef

  1. Bez zbędnego kombinowania zmień końcówkę: GML else if(x!=xstart) { // postac stoi sprite_index=ANIMACJA STANIA BOKIEM } No i ustaw jako podstawowe sprite1
  2. Nie mam pojęcia co chcesz osiągnąć. Nie potrafię sobie tego wyobrazić. sprite_index służy do zmiany sprite
  3. No więc korzystając z tamtego przykładu wystarczy że przerobisz to tak: GML if ( keyboard_check( vk_left ) ) { image_xscale = -1; // odwrocona x -= 4; // szybkosc ruchu image_speed = 0.5; // szybkosc animacji sprite_index=ANIMACJA CHODZENIA } else if ( keyboard_check( vk_right ) ) { image_xscale = 1; // nie odwrocona x += 4; // szybkosc ruchu image_speed = 0.5; // szybkosc animacji sprite_index=ANIMACJA CHODZENIA } else { // postac stoi sprite_index=ANIMACJA STANIA } Kolizja zależy od ustawionej maski. Podczas edycji sprite możesz otworzyć ustawienia maski i ją skonfigurować dowolnie. Dla platformówek zawsze wszystkie maski powinny być prostokątami. Uważaj tylko aby twoja maska z obu stron od origin miała taką samą długość. zmieniasz image_xscale wiec jeżeli z którejś stron maska będzie dłuższa to możesz zauważyć że jak podejdziesz do ściany i się obrócisz to postać utknie.
  4. Wystarczy że będziesz zmieniać sprite_index. Zrób najpierw sobie nowe sprite dla każdej animacji. Potem w zależności od tego czy postać się porusza czy nie ustawiaj odpowiedni sprite. Pytanie czy używasz klocków czy GML, oraz od tego w jaki sposób robisz poruszanie. Czy zmieniając x i y, czy manipulując prędkościami?
  5. Threef

    Praca Fabuła

    Chell: NAJLEPSZY DUET! lol
  6. Threef

    Praca Fabuła

    2 Guys 1 Gun teraz ma taką fabułę (Spoilers~!): Pracujemy jako najemnicy dla miliardera i na jednej z misji odnajdujemy dla niego artefakt który daje mu super moce, jasnowidzenie i takie tam. On nas nie zabija ale dla frajdy rzuca na nas klątwę i odtąd musimy radzić sobie z jedną bronią. Cały świat zaczyna wariować, dzieją się dziwne rzeczy, otwierają się portale a z nich wyłażą jeszcze dziwniejsze rzeczy. Między innymi ludzie z innych wymiarów którzy chcą powstrzymać miliardera, ale to my piersi chcieliśmy mu skopać dupę. Więc oni uczą nas kilku sztuczek. Kopiemy dupę miliarderowi a ten zgadza się zdjąć klątwę, ale potrzebuje do tego kilku artefaktów z innych światów. Więc ruszamy w questa. Oczywiście artefakty nie od tego były i teraz miliarder staje się nieśmiertelny. Kosmici pomagają nam więc cofnąć się w czasie żeby go powstrzymać. :sp_ike:
  7. Threef

    Praca Fabuła

    Jest źle, ale kurcze, czegoś takiego potrzebujemy do naszej gry. Co prawda główny zarys fabuły mamy, ale zawsze będzie brakować jakiś szczegółów. Zobacz czy dałbyś radę wymyślić coś do naszej gry.
  8. Threef

    Praca Fabuła

    Jakieś portfolio? Albo próbka umiejętności?
  9. Zmniejszyć grafiki. Pewnie tła masz większe niż 1024px. Niestety nie można sobie na coś takiego pozwolić. Jak wrócę do domu to dam link do tematu, chyba że mnie ktoś uprzedzi.
  10. Ostatnio mieliśmy na forum kogoś z tym samym problemem, trochę nam zajęło zdiagnozowanie tego. Wina jest po twojej stronie, bo twoje grafiki są za duże. Wynika to z tego że silnik gry musi je skalować i wtedy pojawiają się artefakty.
  11. Twój problem jest taki że robisz "set to" czyli "ustaw na". Musisz dodawać twoje punkty. Nie wiem czy możesz w klocku wybrać jakoś "Add". Jak nit to zmień żeby było tak:
  12. Nie, i pewnie będzie jeszcze gorsze. gnysek opisuje sytuację gdzie serwer nie daje rady z ilością danych jakie napływają do hosta. MMO RPG to nie jest gra dla 5 graczy na mapie, bo to wtedy nie jest MASSIVE MULTIPLAYER ONLINE. Unity będzie miało te same problemy a prawdopodobnie jeszcze większe o ile serwer nie będzie konsolą.
  13. Albo spędzić nad nim pół życia... :psichix:
  14. Może pobierzcie sobie silnik którego używa Cygnus? Łatwiej będzie wam wszystko znaleźć. https://gumroad.com/l/platformer @down: wiemy że jest zmodyfikowany. I widzimy też w jaki sposób.
  15. ds_map_find_value(global.questkarczmarza,"Nazwa") To odczyta "Szczury w piwnicy". Są jeszcze Accessors które pozwalaja na działąnia podobne do tablic: global.questkarczmarza[?"Nazwa"] Boli wciąż i będzie boleć. ;) Zawsze zakładam wszystkie możliwe możliwości w danej sytuacji, po czym oceniam je wg prawdopodobieństwa. Zawsze.
  16. Boad: Przy tak rozbudowanych zagadnieniach nigdy nie używaj słów "najprostszy" albo "najłatwiejszy". Nawet jeżeli takie rozwiązanie istnieje to nigdy nie uda Ci się go podać bo nie znasz wszystkich warunków. Zrobienie systemu misji wymaga zaplanowania od Ciebie jakiegoś systemu którego będziesz się trzymać. Na 100% będziesz się odnosić do każdego z questów więc każdy musi mieć swoje ID. Ja bym to zrobił jako słowniki (ds_map) GML global.questkarczmarza=ds_map_create()//To już jest ID ds_map_add(global.questkarczmarza,"Nazwa","Szczury w piwnicy") ds_map_add(global.questkarczmarza,"Wykonany", false) ds_map_add(global.questkarczmarza,"Typ",2)//Typ questa. 2 to np.: Zabij specyficznego przeciwnika ds_map_add(global.questkarczmarza,"Argument 1",o_enemy_32) Dzięki temu możesz się odnosić do elementów ds_map z dowolnego miejsca w grze. Co więcej teraz w GM:S można zagnieżdżać struktury. Możesz zrobić jeden ds_list który będzie przechowywać wszystkie questy. GML ds_list_add(global.questy,global.questkarczmarza)
  17. Prostego rozwiązania nie ma. I nie uda Ci się wykonać tego dobrze z pierwszym razem. Tworzenie takich elementów wymaga sporo praktyki, ale na szczęście nie jest to wyczerpujące. Po prostu w połowie pracy zauważysz że mogłeś zrobić coś lepiej/łatwiej. Wejdź do dokumentacji i przeczytaj wszsytko na temat funkcji zaczynających się od string_ i draw_. To jest może z 40 funkcji, ale poznanie każdej pozwoli Ci lepiej zaplanować co chcesz zrobić. Jedne z najbardziej użytecznych funkcji to string_width(), draw_text_ext(), draw_set_valign(). Mam nadzieję że wiesz jak zainicjować rozmowę z NPC. Nie ważne czy to będzie kolizja, czy może podejście blisko i naciśnięcie przycisku. To musisz wiedzieć, a jeżeli nie to skończ czytać i wróć do projektu kombinować. Musisz zapamiętywać stan twojej rozmowy. Jeżeli byłaby to rozmowa liniowa to możesz mieć zwyczajną zmienną liczbową która będzie pokazywać który "dymek tekstu" jest teraz wyświetlany. Niekoniecznie musi być to dymek nad postacią, może to być okienko na dole, albo cokolwiek innego. Przy liniowej rozmowie wystarczy przewijać do przodu i pokazywać kolejne teksty. 1, 2, 3, 4, 5 i Koniec rozmowy. Ty chcesz zrobić rozmowę interaktywną. Jeden ze sposobów jaki raz użyłem niewiele różni się od tego. Po prostu różne fragmenty rozmowy mają inne liczby: Przy czymś takim wystarczy że nie pozwolisz aby rozmowa poleciała za daleko i po prostu będziesz zaczynać rozmowę od kolejnych fragmentów.
  18. Nie, nie interesuj się plikami ini bo nie służą do tego. Zainteresuj się zapisem danych.
  19. Cały twój problem bierze się z tego że to tylko przykład. Nie gotowe rozwiązanie. Takiego raczej nie znajdziesz bo jest zbyt zależne od tego jak jest zbudowana gra.
  20. Jeżeli twoja linia to sprite to bardzo ciężko będzie to zrobić i jest to prawie nie wykonalne w real time. Ale możesz próbować sprawdzać pixel po pixelu i na podstawie budować tak path.
  21. Jak najbardziej możesz dodawać "wyjątki". Jeżeli coś dezaktywujesz i aktywujesz w jednym step to obiekt nie przestanie być aktywny nawet na moment. GML instance_activate_all(); instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview[0],false,true); instance_activate_object(WYJĄTEK);
×
×
  • Dodaj nową pozycję...