Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9 812
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    141

Treść opublikowana przez gnysek

  1. Tak tego nie osiągniesz. Jeśli chcesz zostawiać na surface obiekty, które znikają, to jest kilka problemów: - nie możesz czyścić surface - jak przełączysz sie na inną aplikację, zablokujesz komputer, włączy sie wygaszacz lub go uśpisz - surface na 99% zostanie skasowane i stracisz wszystko - jak przesunie się ekran, to bez czyszczenia surface obiekty znikną Rozwiązania widzę takie: - nie kasować obiektów - stworzyć tablicę , która trzyma co masz rysować (elementami tablicy może być struktura z polami sprite, x, y). Wtedy można je rysować w pętli i w sumie nawet nie jest potrzebne suface Na GMCLANie jest kilka osób, które zaraz by przybiegły powiedzieć "panie, ale to jest w *pip* niewydajne" - no więc nie do końca. Sprawdzenie czy dane X/Y mieści się w ekranie (to są cztery porównania) i tak będzie szybsze niż przerysowywanie surface czy przetwarzanie wszystkich eventów obiektów. Poza tym, jeśli tego będzie więcej niż kilkaset można wysilić się w jakieś strefy i przetwarzać tylko tablicę danej strefy. Z kolei dla krwi, ja zawsze szedłem w stronę rozwiązania, że np. na raz może być max 100 plam, więc jak dochodzi 101, usuwam pierwszą i dodaję nową w jej miejsce (albo zmienna globalna która mówi gdzie wstawiamy następną, albo przesunięcie elementów tablicy o -1). Można nawet dla usuwanego elementu stworzyć obiekt, który powoduje zanikanie alphy, żeby dynamicznie zanikał (tak bym zrobił np. dla śladów stóp, czy opon). Jest sporo opcji
  2. Pobaw sie z camera_apply(), który automatycznie zmienia offset surface do obecnej kamery, więc nie trzeba odejmować pozycji view od x i y obiektów. Inaczej mówiąc - normlanie na surface wszystko rysuje się tak, że lewy górny róg to 0,0, po użyciu camera_apply, lewy górny róg surface to jest lewy górny róg obecnego view Jeszcze taka podpowiedź: jak rysujesz na surface, to rób to w jednym obiekcie, np. with(granaty) { draw_self(); } with(krew) { draw_self(); } // i jeszcze inne rzeczy Tak, żeby, optymalnie jedno surface tylko raz miało surface_set_target
  3. To jest jakiś problem z kanałami alpha w takim razie. Spróbuj albo zaznaczyć opcję "premultiply alpha" lub "edge filtering". Ja np. mam problem z obrazkami robionymi w Affinity Designer, bo jak je skalujesz (bez względu na tryby), to dostają czarnej obwódki i "edge filtering" je naprawia.
  4. Jeśli chcesz ją odczytać, użyj "image_blend". Mało logiczne, bo nigdzie indziej tego nie nazywają "blend" tylko właśnie color xD
  5. Może mój laptop ma gorszy ekran, ale ja nie widzę tam żadnych problemów graficznych
  6. Ne bardzo rozumiem problem - moim zdaniem wygląda ok. Jeśli jednak jest jakiś problem, no to musisz poprawić ten gradient, tak, żeby tam gdzie się zdaje, że on się kończy, faktycznie się kończył, a nie miał jeszcze z 30-40 pikseli. Z matematycznego punktu widzenia zdaje się, że wyświetla się ok.
  7. Przy zderzeniu samochody raczej nie przyspieszają, więc to bym odrzucił. Co do wpływania na pozycję - faktycznie, tutaj jest problem, bo nawet jak serwer sprawdza kto pierwszy faktycznie dojechał do mety, to i tak da się oszukać. Ale wiesz - tak szczerze, to ile osób będzie w ten sposób oszukiwać? Naprawdę jest sens dla jednej może osoby, która będzie się bawić, myśleć o rozwiązaniach, które dla setek innych w ogóle nie są potrzebne? Ja bym ten temat olał. Oszustów i tak nie wyeliminujesz i czasem szkoda na nich marnować czasu. Zwykły ban na IP wystarczy
  8. Sprawdź wcześniej lokalnie, w trakcie testów Przecież wiesz jaka jest max. prędkość. Zresztą, skoro to gra wyścigowa, to jak ktoś skoczy nagle o 500px to nie wierzę, zeby mu się udało sterować takim pojazdem i żeby w ogóle w cokolwiek trafił Wpadł mi do głowy inny pomysł. Każdy pojazd ma pewnie jakieś swoje statystyki, typu przyspieszenie, kąt skrętu, max prędkość itp. które właśnie można by przestawiać narzędziem do cheatów. Może właśnie te dane podsyłaj co jakiś czas do sprawdzenia, czy zgadzają się między serwerem a klientem? Jak ktoś chce oszukiwać i jechać szybciej, to musi którąś z nich przestawić, więc jak ją wyślesz do serwera i będzie błędna to można go wywalić - one zapewne są stałe dla każdego pojazdu. Odtwarzania fizyki na serwerze i tak nie zrobisz, bo przez pingi itp. na serwerze nigdy nie będzie 100% tego samego stanu fizycznego obiektów i fizyka może działać znacznie inaczej. Coś będzie miało właściwość o 0.001 inną i już będzie problem.
  9. 2. Wiedząc, że pojazd porusza się z prędkością N pikseli na step automatycznie wiesz, że jak ruszy się drugie tyle, to coś jest nie tak. Może uczyć cheata, dlatego serwer powinien znać max prędkość pojazdów, żeby to właśnie wykryć. Generalnie jednak to jest właśnie problem stary jak świat, a obliczanie fizyki na serwerze naprawdę źle się kończy, bo GM nie działa asynchronicznie (jak wyślesz dane, to nawet przy idealnym pingu dostaniesz je w kolejnym stepie). 3. Da się, są jakieś przykłady, ale oczywiście to jest mnóstwo roboty. Kiedyś mają to zmienić, ale wiadomo jak to z YYG.
  10. Podglądu raczej nie ma, ale może da się skontaktować z twórcą, żeby nagrał jakieś wideo? Na Windowsie 10 to jest dziecinnie proste za pomocą Xbox Game Bara. 2.: Obliczałbym po stronie klienta, bo inaczej będą lagi. Oczywiście serwer kontroluje czy ktoś nie poleciał za daleko w jednym kroku, a pozostali klienci interpolują otrzymane dane. Tak to działa nawet w wielkich wyścigówkach (gdzie samochody lubią driftować na prostej, bo zgubiły info, że ktoś o 30cm się przesunął w lewo czy w prawo). 3.: Nie, opcji headless wciąż nie ma.
  11. Nigdy nie podejmowałem tematu, ale wydaje mi się, że to co mówisz, to może... siła odśrodkowa lub przeciążenia?
  12. gnysek

    Guzixy

    To jest problem GXC, które nie obsługuje interpolacji ? Najgorsze, że GXC nie zwraca też rozmiaru ekranu, więc nie mogę dynamiczniej zeskalować, chociaż gra by dała radę takie coś zrobić. Na szczęście na innych platformach tego problemu nie ma i do tego czasu będę mógł też dopracować wszystko - ale to już pewnie w nowym roku, bo przed świętami jeszcze mnóstwo innej pracy mnie czeka.
  13. Ostatnio stuknęło mi 34 lata i jakoś tak pomyślałem, że się starzeję, pomagam innym przy tworzeniu gier, parę wydałem pracując w YYG, przy paru pomagałem, a pracuję nad przeogromnym projektem - stwierdziłem, że trzeba pozaklinać nieco rzeczywistość i odległą wizję wydania projektu marzeń, więc postanowiłem zrobić coś, co zajmie mi mniej niż tydzień, żeby zrzucić z siebie to uczucie wiecznie odległych terminów Inspiracją była gra którą uwielbiają moje córki i na którą szkoda mi było kilku dolarów, żeby mieć pełną wersję Tytuł: Guzixy Gatunek: gra logiczna Opis: klon gry Dots, polegający na łączeniu figur o tych samych kolorach za pomocą pionowych/poziomych linii Download: Na razie tylko dla przeglądarki Opera GX: https://gxc.gg/games/d481db68-dba7-4ee5-bfb0-cd61d4acd919 (wersje HTML5 i Android wkrótce) Rozmiar pliku: (na razie nie dotyczy) Autorzy: Wszystko: gnysek Screeny: Gra obsługuje Challenge GCX:
  14. Haha, jaka nostalgia. To oczywiście nie jest jakaś super skomplikowana gra, bo takich shooterów jest wiele, ale muszę pochwalić wykonanie - jest ekran opcji, jest lista wyników, przeszkody fajnie się generują, a taką dbałością o szczegóły jest to, że asteroidy po wysadzeniu nadal zadają obrażenia tymi rozwalonymi fragmentami. Efektownie zrobiony jest też wybuch statku Sigmy i Pi (których udało mi się przegonić na liście wyników xD). No i świetna muzyczka, myślałem, że będzie na łatwiznę zapętlony motyw wzięty z youtube ale to jest owszem motyw, ale bez wokali i jest to dobrze zrobione. W sumie jedyne co bym poprawił, to pasek energii, na jakiś stylowy, żeby pasował do reszty grafiki. Świetnie wykonana gra. Teraz cały dzień będę zapuszczał na youtube czołówkę z tego programu, z czasów, gdy TVP miało rolę edukacyjną a nie propagandową
  15. Jeśli ma skoczyć 1-2 klatki po naciśnięciu, to wystarczy tak: if keyboard_key_pressed(klawisz skoku) PresskeyJump == 2; if (PresskeyJump) { // ta część kodu odopowiadająca za skok (najlepiej tylko gdy postać dotyka podłoża) } if (PresskeyJump > 0) PresskeyJump--; 2 to liczba klatek przez jakie po wciśnięciu klawisza uznawać, że nastąpił skok. Zbyt duża wartość spowoduje jednak niechciane skoki.
  16. No to coś z plikiem. Kojarzę, że jest jeszcze taki śmieszny przełącznik w iconv //translit i on mi kiedyś pomógł z wczytaniem pliku.
  17. Dla większości w ogóle nie jesteś wiarygodny, bo nawet sposób w jaki mówisz świadczy, że masz niewielkie pojęcie o rzeczach, które robisz. Chwalisz się wieloma rzeczami, tyle, że one są na poziomie nastolatka, a nie dorosłego, jakim jesteś. A już w ogóle takie kwiatki: Czyli z jednej strony płacisz za godzinę (ale nie wiemy, czy netto, czy brutto, czy b2b, czy umowa dzieło/zlecenie/pracę), z drugiej zaraz piszesz, że "ustalimy wartość", czyli jednak nie płacisz za godzinę. Jak ktoś ma to traktować serio, skoro już z opisu wiadomo, że będziesz coś kręcił. Zmartwię Cię, ale "magiczne gry wideo" to nie jest jakaś wyszukana nazwa i nie wiem na jakiej podstawie to wyliczyłeś, ale jak dla mnie to ta domena jest warta jakieś 6-7 złotych, bo za dwa miesiące wygasa, a przedłużenie kosztuje 40zł netto. Zresztą, za tyle można kupić "magicalvideogames.com" i tyle z Twojej unikalności. Mam nadzieję, że wiesz, co znaczy dewiant, ale raczej nie świadczy to dobrze o Tobie
  18. Ja pomoge innym, żeby nie musieli szukać: To czemu jeszcze jej nie spieniężyłeś? Tyle hajsu, to byś mógł narobić gier, że hoho!
  19. Jeśli po dodaniu do bazy w phpmyadminie widzisz krzaczki, ale po wczytaniu rekordu z bazy i wyświetleniu w php już nie, to problem polega jednak na kodowaniu bazy (lub braku ustawienia kodowania przy połączeniu, a domyślnie wchodzi jakieś niechciane), a nie na problemie z plikiem. To zresztą łatwo sprawdzić dodając "zażółć gęślą jaźń" z kodu zamiast z csv. Potraktowanie pliku iconv przed importem też powinno załatwić sprawę.
  20. Ależ to wygląda, jak gra robiona przez kilkanaście osób Dodane do wishlisty i obserwowania.
  21. Nie no to polskie literki są poza tym zakresem. W ogóle dlaczego tak starą wersję? Przecież ona nie była aktualizowana od ponad 10 lat! Wydaje mi się, ze ustawienie zakresu na 32-380 pomoże (za https://altcodeunicode.com/alt-codes-for-polish-letters-with-accents-or-diacritics/ ).
  22. Ale mówimy teraz o show message czy nie? Generalnie angielska wersja też powinna sobie radzić, domyślne fonty Microsoftowe mają polskie znaki. No i w sumie nie wiem o jakiego GameMakera chodzi.
  23. Próbowaliście eksportować do HTML5 po dodaniu gml_pragma("PNGCrush"); ? (w dowolnym skrypcie, jeden raz, więcej info w manualu). Co prawda to wydłuża czas kompilacji, ale nieźle odchudza gry na Androida czy właśnie HTML5.
×
×
  • Dodaj nową pozycję...