-
Postów
1 887 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
20
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez I am vader
-
Przenoszenie utworzonych plików manualnie
I am vader odpowiedział(a) na MetalowyNerd temat w Pytania zaawansowanych
Ciekawe czy Threef ten temat widział c: Edit: A zeby odpowiedziec: Funkcje odczytywania i zapisywania plikow sa sandboxowane, tj. tylko to co w included files oraz folder APPDATA. Mozesz sprawdzic czy istnieje plik "nazwa_mojego_pliku.ini" czy jak to tam nazywasz a jezeli nie ma to stworzyc tam plik o konkretnej, wbudowanej zawartosci, jako template. Moglbys tez pojsc z opcja included files, gdzie includowany plik to bylby schemat podstawowy, ale wtedy gracz moglby oszukac edytujac ten plik i usuwajac swoj statek z APPDATA bo wtedy by stworzylo plik nowy na podstawie tego zedytowanego template'a. Jak juz mowimy o "zeby uzytkownik nie mogl edytowac", to tutaj wchodzi wlasnie kwestia plikow INI: Slaby pomysl, powinienes stworzyc swoj wlasny, binarny, system pliku z zapisem, ktorego struktura jest znana tylko Tobie, aby inni nie mogli go edytowac. -
Problem ze zmiennymi globalnymi?
I am vader odpowiedział(a) na TheLukLook temat w Pytania początkujących
Nie możesz oczekiwać, że port będzie 100% kompatybilny, ale to nie oznacza, że GMS jest zły, tylko, że sobie nie radzisz. Możliwe opcje czemu nie działa: -Nie uruchomiłes view w room editorze -napisałeś view_xview i view_yview zamiast view_xview[view_current] , view_yview[view_current] -W obj coin ustawiasz global.money na 1, zamiast dodawać 1. Poza tym, skoro umiesz napisać global.money = 5; jakim cudem nie umiesz napisać global.money+=1; zamiast używać klocka? A i następnym razem użyj tego tagu: [gml][/gml] do podania zawartości kodu. -
problem z YYC po aktualizacji na windows 10
I am vader odpowiedział(a) na skela temat w Pytania początkujących
Windows Update? -
[Pisałem to jakeiś 3 godziny temu i prawie mi autobus przez to zwiał, więc dopiero teraz mogę dokończyć] Wiesz, że jak na Ciebie wjeżdżam nie mam nic złego na myśli, tylko byś z rozwagą robił :* Mając to na względzie, mała poprawka: Poprawie Ci plik PDF, bo pro english masz. A jeśli chodzi o kontrolery, gry GMowe akceptują tylko kontrolery w trybie xInput, a DirectInput nie, wiec prawdopdoobnie te 3 pady tak czy siak nie beda dzialaly bez dodatkowego programu. W zwiazku z tym zmienilem troche informacje o padach aby zasugerowac jak to obejsc. A i jeszcze zmieniłem żeby zamiast Left Analog / Arrows pisało Left Stick / D-Pad, bo takie są poprawne terminy. This is a demo version of NIGHTHAW-X3000. It contains four levels and three bosses(lvl 4 boss still missing!) CONTROLS: You can play with your keyboard: ? X ? Shooting ? C ? Turbo mode (after you fill up the green bar [right side of the HUD]) ? Arrows ? Moving ? ESC ? Go back to menu You can also play with a gamepad. Game works with xbox360/one controllers and any controller working in xInput mode. If your gamepad isn't compatible, try using x360ce ( http://www.x360ce.com/ ) ? A/RT ? Shooting ? B ? Turbo mode ? Left Stick/D-Pad ? Moving ? BACK - Go back to menu Main Menu: OPTIONS and LOAD GAME are not available right now. --------- If you want to help with development, please contact me via mail. I'd also appreciate feedback about the game, including what's good,what could be better, and any bugs you find. Contact: n94games@gmail.com https://www.facebook.com/N94Games Have fun, Nikodem. W Edicie lub następnym poście (jeśli ktoś coś napisze w międzyczasie) napiszę o grze. Z góry mówię, będę używać kontrolera! EDIT: forum spsuło znaki specjalne w tekście.. EDIT 2: Gra się wygodnie, brakuje mi prędkości lotu na podstawie tego jak mocno przechylona jest gałka. W PDF pisze, ze Turbo pod B, a jest pod X. Bossowie: Pierwszy boss bardzo mi sie podoba, niemniej czasami laserowe ściany mają przerwy zbyt daleko od siebie i nie da rady dolecieć na czas, to dosyć nieuczciwe dla użytkownika. Drugi boss, tak jak threef wspomnial, jest slaby. Jest monotonny, omijanie laserow zajmuje bardzo duzo czasu, a jest bardzo latwe, a wiec nudne. HP bossa kompletny bulletsponge, wiec powtarzanie tego cyklu z 15 razy aby go ubic to definicja antifun. Osobiscie uwazam mozna by utrzymac idee "nawalac gdy on nie nawala" Gdyby mocno ograniczyc ilosc cykli potrzebnych od ubicia go(np. 4), ale dac kilka rodzajow atakow, mieszanie laserów, nabojów i wysyłania statków, a najlepiej im mniej ma HP tym intensywniejsze. Jeżeli po tym nadal będziesz chciał utrzymać fazę końcową(ten obrotowy zapper na środku, ktory tez jest obecnie slaby), załatw mu oddzielny pasek zdrowia który się pokaże dopiero po rozwaleniu laserów. Trzeci boss jest dobry, ale szału nie ma, bo to też w pewnym sensie bullet sponge. Inne: Fajnie by było jakby te ściany laserowe można by wysadzić strzalając w ich końcówki, które sa na bokach. Obawiam sie troche dlugosci gry, od poczatku jest narzucone wysokie tempo, wiec nie wiem czy dasz rade utrzymac rozmaita rozgrywke bez wysokiej repetetywnosci. Ogólnie oceniam pozytywnie, tylko nad bossami trzeba popracować. A tryb coop kiedy? B) EDIT: A jeszcze. Wybór upgradeów na końcu. Ostro lovvciam, pozdro.
-
2008 byl 8 lat temu.
-
Pozwolę sobie zwrócić uwagę, że to marna porada, bo jakby ludzie sprawdzali dokumentacje byłoby tu ze 15 stron pytań mniej.
-
Jak sprawdzać który obiekt jest aktualnie w kolizji
I am vader odpowiedział(a) na Flame temat w Pytania początkujących
Zmienna = collision_line... -
Jak sprawdzać który obiekt jest aktualnie w kolizji
I am vader odpowiedział(a) na Flame temat w Pytania początkujących
Źle się do tego zabierasz. Za pomocą !collision_line, powinienes sprawdzic kolizje miedzy wrogiem a graczem, a jezeli kolizji nie ma, dopiero wtedy sprawdzic czy dystans miedzy wrogiem a graczem jest mniejszy lub rowny maksymalnemu zasiegowi wzroku: GML if !collision_line(x,y,obj_character.x,obj_character.y,obj_wall,false,true) && distance_to_obect(obj_character) <= MaxZasiegWidokuWPikselach { // Zobaczyl gracza } -
Apropo kroku 2, nie o to chodzi. Chodzi raczej o budowanie wokol punktu startowego. Zamiast leciec po kolei kazda wspolrzedna tworzysz pierwszy room na teoretycznej pozycji [x,y] a nastepnie dopisujesz do listy pozycje do ktorych wygenerowano wyjscia. Przykladowo romo startowy [x,y] Wylosowal wartosci 1,1,0,0, wiec do listy dopisujesz [x,y-1] oraz [x+1,y], nastepnie przechodzisz do generowania tych dwoch pozycji z listy, z kazda dopisujaca wiecej pozycji. DS_GRID sie tu nie nada bo moga byc pozycje o ujemnych wartosciach Edit: Huder w temacie, czuje sciane kodu. W sumie to nawet dobrze. Jezeli ktos tu wie jak porzadnie generowac te rzeczy(Ja glownie tutaj improwizuje idac droga logiki, nie ma powodu aby to nie zadzialalo, ale pewnie sa wydajniejsze sposoby) to HuderLord i Threef Edit 2: Pozwolilem sobie zrobic malego gifa. Zielone to koordynaty dodane do listy, numer to kolejnosc, a rozowe to wymuszona sciana / wymuszone przejscie.
-
Opcja 1: path_index Jeżeli path_index = -1, nie jesteś obecnie na pathu, możesz tak sprawdzić czy już z niego zszedłeś. Opcja 2: Event Other > End of Path
-
Tak. Zwazajac na tresc Twojego pytania, zakladam, ze wolisz wskazowki anizeli gotowce(co przyznam, jest dobrym posunieciem, dobrze ze wiesz co robisz). Skoro roomy sa tych samych wielkosci to mieszcza sie w siatce, wiec mozesz trzymac dane w jakies strukturze oraz wymusic konkretne wartosci, np. zeby sciany przylegajace do wszystkich wygenerwoanych juz wejsc, mialy wejscia. To co mam na mysli przez powyzsze zdanie, to ze mozesz miec w generatorze 3 podstawowe wartosci dla kazdego niewygenerowanego roomu: Wymus sciane, Wymus wejscie, Losowe. Sciane wymusza poboczny room jezeli on tez tam ma sciane.(Jezeli Room A ma sciane z prawej, to w roomie z prawej wymusza sciane z lewej). Przejscie wymusza poboczny room jezeli on tez tam ma wejscie.(Jezeli Room A ma przejscie na dole, to w roomie na dole wymusza wejscie u gory). Losowe to cokolwiek czego nie wymusily inne roomy. Jezeli ma byc okreslona ilosc pomieszczen max, wystarczy ze po przekroczeniu ilosci roomow, wszystkie pozostale maja sciany tam gdzie nie wymusilo sie przejscia. Oczywiscie w wyniku niefortunnych wynikow losowosci moze byc ekstremalnie maly dungeon wygenerowany. Wtedy wystarczy, ze okreslisz, ze dopoki nie ma conajmiej X roomow na mapie, conajmniej 1 losowa(niewymuszona) sciana musi miec przejscie. Jezeli chodzi o samo wziecie sie za generowanie, polecam uzyc struktury ds_list do zapisania par wspolrzednych roomow ktore sa przeznaczone do stworzenia. Najprosciej ujmujac, jezeli masz swoj room poczatkowy [0,0] i z prawej wygeneruje przejscie, dodajesz do listy [1,0](JEZELI JEJ JUZ NIE MA NA LISCIE)(oraz pamietasz o wymuszeniu na pozycji 1,0 przejscia w lewej scianie).
-
Ajć zepsuliście, dobra passa była.
-
zmiana koloru tła po przez skrypt
I am vader odpowiedział(a) na Badu The Sheep temat w Pytania początkujących
Do kodu gml używaj tagu [gml][/gml] A tak ogólnie: Ogólnie, nie można zmieniać właściwości obecnego roomu funkcjami room_set_* Są lepsze sposoby na takie zmiany jak chociażby obiekt odpowiadający za rysowanie tła. -
0 do 180 stopni względem jakiego punktu? W GMie 0 stopni jest z prawej, zakładając, że o to chodzi, możesz po prostu zmieniać kąt tylko jeżeli nie jest większy od 180.. GML var d = point_direction(x,y,celowniko.x,celowniko.y); if d<=180 { direction=d; image_angle=direction; } Chyba,że chodzi Ci o coś większego, wtedy więcej szczegółów następnym razem.
-
^ Ogólnie widzę, że poprawiłes konturę przy ogonie, oryginalnie troche skrzaczona była. Bardzo ładnie, podoba mi się.
-
Używasz Game Maker Studio czy wcześniejsze? Bo o to się rozchodzi. Najlepiej podaj rodzaj i wersje, licencja jest malo istotna o ile nie uzywasz free. Edit: GML sound_loop(pegasus) To funkcja do puszczanai dzwieku w kolko. Edit 2: Gdybys powiedzial ze uzywasz GM 7/8/8.1 (ktorekolwiek to tam jest) na poczatku, caly ten temat mial by tylko jednego posta w ktorym by pisalo abys uzyl sound_loop dla powtarzajacych dzwiekow i sound_play dla niepowtarzajacych.
-
Niezle, nie pomyslalem nigdy o tym. Niezle. Chociay wydaje mi sie, ze skoro kolega chce 6 znaków to powinno być GML string_copy(string(1000000+score),2,6) Edit: Bo taka notka, kt, string_copy za "1" uznaje 1sza pozycje, nie druga.
-
najszybszy do napisania: GML var wyn = string(nazwa_zmiennej_od_score); while(string_length(wyn)<6) wyn = "0"+wyn; draw_text(docelowy x,docelowy y,wyn);
-
GM ma funkcje do komunikacji z serwerami nie na protokole GMa, wiec wcale takie skomplikowane to to nie jest, kroki które wtedy należy podjąć też się dużo od siebie nie różnią. Możesz albo działać w trybie RAW w GM'ie, albo spróbować użyć tego, żeby serwer mimikował zachowanie GM'a.
-
Ta a najlepiej to przelecieć pełen pakiet lokacji fantasy, nie? Pustynię, lodowe zmarźliny w których jest wieczne -50, ziemie zniszczone wojną gdzie tylko demony grasują, przewyjebitnie wielki las, wliczając super słodką lub super mroczną wersję, wielkie góry, przez które nie da się przejść(chyba ze jest sie glownym bohaterem i sie tego od niego wymaga), preferowalnie z jakimis latajacymi stworami zyjacymi tam... No i mały skrawek świata w którym żyją ludzie i to jedyny skrawek który wygląda jak nasz zwykły, czyli troche pól, lasów i jezior.
-
Alteratywny system okienek dialogowych
I am vader odpowiedział(a) na Fervi_ temat w Pytania początkujących
A moze on chce tylko na winde robic, dlatego pyta o DLL. Jakieś są, ale nie pamiętam/nie posiadam(a wygooglowac moze kazdy, nawet autor tematu), wiec sie staram nie wypowiadac, ale to juz bylo glupie, psysiu. -
Alteratywny system okienek dialogowych
I am vader odpowiedział(a) na Fervi_ temat w Pytania początkujących
Tak żeś to napisał, że już nie wiem czy pytasz o GM czy nie o GM. -
To mało efektywne podejście, mocno odradzam. Na starcie ustaw kierunek w którym ma się poruszać postać, najlepiej za pomocą "1" dla prawo i "-1" dla lewo. GML Kierunek = 1; //Zacznij idac w prawo image_xscale = 1; //xscale musi miec taka sama wartosc jak Kierunek.</span></span> Teraz kwestia chodzenia. Nie wiem ile wiesz ani ile umiesz, wiec napisze tu conieco. Jezeli bedzie Ci sie chcialo to przeczytac to moze nawet czegos sie dzisiaj nauczysz i moze latwiej Ci bedzie w przyszlosci gry robic. Kolizje mozna robic na dwa sposoby: Sposob 1: Obiekt reaguje po tym jak wejdzie w pole kolizji(np. Wejdziesz w sciane, wykryje ze w niej jestes, cofnie Cie do poprzedniej pozycji bo w sciane nie wolno wejsc) Sposob 2: Obiekt sprawdza czy bedzie kolidowac jak sie ruszy. Jezeli nie to sie moze ruszyc. Bardzo mocno polecam podejscie drugie i tego wlasnie podejscia Cie tutaj naucze. Mamy juz zmienna Kierunek, ktora nam mowi w ktora strone bedziemy isc. Masz zapewne ustalona konkretna predkosc postaci jak np. 4 albo 6 albo 8, nie wiem. W tym przykladzie zalozymy, ze predkosc postaci to 4, u siebie wstaw jak Ci pasuje. Prosta matematyka: Liczba * 1 = Liczba. Liczba * -1 = -Liczba. [10*1=10, 10*-1=-10] I tu wchodzi nasza zmienna. Bo jak zrobimy tak: GML x+=4*Kierunek; To za pomocą tej jednej lini kodu przeciwnik poruszy sie nam w kierunku w ktorym faktycznie idzie, bo kierunek zawsze wynosi 1 lub -1 u nas. No ale NAJPIERW musimy sprawdzić czy nie ma kolizji. Pamiętaj, używamy sposobu drugiego. Od tego jest place_free, jeżeli wszystkie przeszkody to solidy lub place_meeting, jeżeli chodzi o konkretny obiekt. Załóżmy, że ustawiłeś solid na każdej przeszkodzie: GML if place_free(x+4*Kierunek,y){ //Jezeli nie ma kolizji 4 piksele w kierunku w ktory idziemy x+=4*Kierunek; //Rusz sie } Niemniej, chcemy aby stało się coś jeszcze: Jeżeli przed nami jest przeszkoda, chcemy się odwrócić. Dlatego musimy dodać na końcu warunek na taką sytuację: GML if place_free(x+4*Kierunek,y){ //Jezeli nie ma kolizji 4 piksele w kierunku w ktory idziemy x+=4*Kierunek; //Rusz sie } else{ //W innym wypadku Kierunek=-Kierunek; //Odwroc kierunek. z -1 zrobi 1, z 1 zrobi -1 image_xscale=-image_xscale; //Tak samo jak wyzej ale dla image_xscale }
-
Jeżeli ty napisałeś te alarmy to wiesz, że one określają czas po jakim łapka wyskakuje z lawy i czas po którym spada spowrotem w dół. Więc wiesz jak zmienić czas po którym wyskoczy na losowy, dodając irandom_range(minimalna wartosc, maksymalna). Jednoczesnie to wlasnie w tych dwóch kodach chesz zmienić image_yscale. na 1 aby mieć oryginalny obraz i -1 na odwrócony.
-
Gdziekolwiek. W momencie w którym ma się odbić dajesz image_xscale = -image_xscale i będzie działać przy odbiciu w każdą stronę.