
Sutikku
Użytkownicy-
Postów
738 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
5
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Sutikku
-
Chciałem zrobic autoupdater do gry, ale on zapisze plik w swoim working_directory. Mam z marketplace execute_shell, więc exeki mogę otwierać. Ale gdybym gotową grą, chciał obejrzeć pobrany plik (np. ini) w working_directory autoupdatera, to już nie mogę. No oczywiście najlepszym wyjściem byłoby trzymanie wszystkiego w jednym miejscu, ale tego mi nie wolno. Jest więc jakiś sposób, by zapisywać pobrane pliki przez http_get_file() w innym miejscu? Albo jakiś dodatek do tego?
-
Aktualnie niby wszystko działa. Ale to chyba tylko pozory ;v
-
(słaba jakość, bo nie ja robiłem tego screena i wysłane było przez fb) To jest ta gierka co mi tyle sprawia problemów ostatnio z multiplayerem ;v
-
Noo, masz rację, przy małych wygląda fajowo. A tak z ciekawości. Paleta to jest sprite, czy zapisane w zmiennych wartości?
-
Wpadł mi taki pomysł. Zadziała on chyba tylko na dwa itemy w jednym miejscu chyba. Item1 przy kolizji z item2, zapisuje sobie id itemu2. Gracz mając kolizje z itemem1, sprawdza czy on nie ma przypisanego jakiegoś id innego obiektu. Jeśli tak, to zbieramy ten przypisany do zmiennej, jak nie to wiadomo, normalnie zbieramy item1.
-
Tak sobie teraz myślę, że zależność który jest u dołu, a u góry jest zależne od tego kolejności w której nadajesz ten sam depth. Ty chcesz podnieść pierwsze wheat, czyli depth musi być mniejszy, czyli musi sobie pierwszy nadać depth niż wooden_floor. Tak rozkminiam, ale w sumie nie wiem czy to na pewno tak działa.
-
Akurat to z funkcji holes, mi się nie podoba. Ale to co widziałem na live u threefa było ######ste.
-
Pierwsze wykonuje się kod z wooden_floor, a potem jest zarysowywany wheat. To może w wheat daj depth=y*-1-1; ? A wydaje mi sie, że podnosi ten obiekt niżej, bo właśnie w tej "kolejce wykonywania kodu" on jest wcześniej niż wheat.
-
Musiałby mieć chyba XPka, bo teraz od razu się ma coś do zipów,rarów tak mi się wydaje.
-
Można zostawić czas żeby cały czas go dodawało, a potem dzielić bez reszty, ale chyba zmienna w końcu straci miejsce ;d
-
Masz game maker8, czy game maker studio? Musisz wypakować tego RARa.
-
Lepszą wersję gamemakera? Przecież mnie nie stać xd Ten edytor jest zrobiony pod starą wersję gamemakera, ale jest cały opatrzony w komentarze i banalnie prosty. Eksportuj sobie do gma i przeanalizuj cały. Jeśli czegoś nie rozumiesz to pisz na pw, albo tutaj.
-
Jeśli mam dezaktywowane np. wszystkie obiekty solid, a potem użyje with(solid_blocks), to with() się wykona tylko w aktywowanych, czy we wszystkich obiektach?
-
Przykład z gmclanu Trochę stary, ale łatwy w analizie.
-
Jaki będzie cel gry?
-
Bo nie podałem całego skryptu i końcówkę sam dodałem, mogłem zapomnieć dać klamerkę. Bo tam dalej są jakieśtam pojedyncze case, ale za dużo to tam nie ma.
-
Nie sprawdziłem jeszcze czy to rozwiązanie, ale pewnie tak. A mam takie pytanie, czemu to tak działa, że ja sam tego problemu nie mam? Routery same "obcinają" pakiety, by zwiększyć szybkość odbierania danych?
-
Żadne tam tajne, wysłałbym nawet cały projekt, ale jakby ktoś zobaczył kod, to wstyd ;d GML ///Wysyłanie pozycji buffer_seek(Buffer, buffer_seek_start, 0) buffer_write( Buffer, buffer_s8, 1 ); buffer_write( Buffer, buffer_u8, instance_number(obj_player) ); with(obj_player) { buffer_write( other.Buffer, buffer_u8, iid ); buffer_write( other.Buffer, buffer_u16, x ); buffer_write( other.Buffer, buffer_u16, y ); buffer_write( other.Buffer, buffer_u8, image_angle/2 ); buffer_write( other.Buffer, buffer_bool, key ); buffer_write( other.Buffer, buffer_bool, key[UP] ); buffer_write( other.Buffer, buffer_bool, key ); buffer_write( other.Buffer, buffer_bool, key[DOWN] ); } for(var i=0; i<MaxClients; i++) { if!(player==-1) network_send_packet( i, Buffer, buffer_get_size(Buffer) ); } To jest najczęstszy kod który się wykonuje w kwestiach wysyłania. A odbieram tak GML var type_event = ds_map_find_value( async_load, "type" ); switch( type_event ) { case network_type_data: var buffer = ds_map_find_value( async_load, "buffer" ); buffer_seek( buffer, buffer_seek_start, 0 ); ReceivedPacket( buffer ); break; } I jeszcze skrypt ReceivedPacket (okrojony) GML var buffer = argument[0]; var msgid = buffer_read( buffer, buffer_s8 ); switch( msgid ) { case 1: //Zmiana pozycji graczy var num=buffer_read( buffer, buffer_u8 ); for(var i=0; i<num; i++) { var iid=buffer_read( buffer, buffer_u8 ); var xx=buffer_read( buffer, buffer_u16 ); var yy=buffer_read( buffer, buffer_u16 ); var ang=buffer_read( buffer, buffer_u8 ); var p=player[iid]; var right=buffer_read( buffer, buffer_bool ); var up=buffer_read( buffer, buffer_bool ); var left=buffer_read( buffer, buffer_bool ); var down=buffer_read( buffer, buffer_bool ); break; } Kodu trochę mam, więc nie wiem co dokładnie mam pokazać. Każde miejsce w którym wysyłam i odbieram?
-
Używam TCP. A wyżej dodałem po edycji link do czegoś, co może jest związane z problemem którego może doświadczam.
-
Ostatnio się trochę więcej bawię gmsowym networkingiem i ciągle mam nowe problemy. W sumie ten problem doświadczam od zawsze. Przyjmijmy, że po stronie serwera wysyłam do wszystkich klientów 1 <-id komendy 23 <- x 12 <- y Wszystkie trzy są zapisane jako buffer_u8. I jednemu z klientów wyrzuca błąd, po którym można wywnioskować, że odebrane dane to 0 -102 xxx Oczywiście te liczby to przykłady, ale takie coś jest powiedzmy znacznym problemem. I nigdy nie występuje u mnie jak testuje, tylko dopiero gdy testuje to z kimś innym. I tak się zastanawiam. Czy jeśli w ciągu jednego stepu, użyję dla jednego klienta dwa razy network_send_packet(), to może to być problemem? edit: natrafiłem na coś takiego http://gmc.yoyogames.com/index.php?showtopic=650252 i z tego co rozumiem, czasem pakiety są "ucięte", a następnie dostaje to co zostało ucięte. I nie wiem jak sobie z tym radzić.
-
Nie wiem czy na tablecie to się da tak sprawdzić jak na pccie, bo się nie znam, ale da się sprawdzić pod innym systemem?
-
Zaawansowany to ja nie jestem, ale brzmi fajnie. A co tam, raz się tyje, spróbuję.
-
Gry multiplayer, a image_angle postaci
Sutikku odpowiedział(a) na Sutikku temat w Pytania zaawansowanych
Jest duża różnica, czy wysyłam 1 bajt, a nie 2? -
Robię sobie standardowo gierkę multiplayer i taki mam problem. Ogarnąłem już jak robić poruszanie, tak żeby wyglądało w miarę dobrze. Powtarzam ostatnio dostane komendy od serwera. Czyli jeśli ktoś szedł ostatnio w lewo, to teraz pewnie też idzie w lewo, aż nie dostanę nowego pakietu. Wtedy staram się płynnie zmieniać pozycję u klienta, na taką jaką dostałem od serwera. Ale jak to zrobić z image_angle? Postać jest zawsze zwrócona w stronę kursora. Wysyłanie ciągle image_angle, to chyba nie najlepsze wyjście. A jeśli przyjmiemy, że w grze się strzela, to byłoby dziwne gdyby ktoś zaczął strzelać plecami.
-
Cześć, problem jest taki. Jeśli poruszam obiektem manipulując x i y, to np. mam x+=spd, gdzie spd=4; A jeśli zrobię move_towards_point(celx,cely, spd), to dochodzę do wrażenia, że move_towards_point(), porusza się szybciej. Jak więc to ogarnąć, żeby to było sobie równe?