Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9 812
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    141

Treść opublikowana przez gnysek

  1. Mapa nie musi być tak wielka. Wystarczy 1920x1080 i przesuwanie obiektów/tła zamiast widoku Co do robienia czegoś turowo, czy jedno po drugim: // create round = -1; round_time = 100; // step if (round == 1) { if (round_time > 100) { /// jakieś dowolne akcje round_time--; } else { round++; round_time = 100; } } elseif (round == 2) { ... /// kod jak wyżej } elseif (round == 99) { // oczywiscie moze byc mniej round = -1; // konczymy wykonywanie akcji } // wyzwolenie rund z dowolnego obiektu, np. event klawisza albo myszki: obj_rounds.round = 1; Oczywiście w GM8, zamiast -- i ++ piszemy -= 1 i +=1, ale używanie GM 8 to jak używanie Windowsa 95. Nie tylko nie zalecamy, ale jego nie da się już aktywować, więc mam prawo przypuszczać, że używasz pirata i nie jest to do końca legalne... nie chcemy być złośliwi i tego zgłaszać służbom, ale bądź ostrożny.
  2. Wrzuć kod na JS Fiddle, będzie łatwiej testować. https://jsfiddle.net/
  3. OK: // create global.s = -1; // draw if (!surface_exists(global.s)) { // redraw tylko jak komputer usunie z pamieci surface, albo jeszcze go nie ma global.s = surface_create(1024, 768); // jesli potrzebujemy aktualizowac surface co klatkę, bo się zmienia, poniższy kod wyciągamy poza nawiasy klamrowe surface_set_target(global.s); draw_clear_alpha(c_white, 0); //maluje na przezroczysto draw_text(10, 10, "test"); // pamietaj, ze teraz wsystkie pozycje są relatywnie do 0,0 na surface, a nie od pozycji obiektu surface_reset_target(); } draw_surface(global.s, 10, 20); Jak nic nie pomyliłem z kolejnością argumentów, masz fajny gotowy tutorial
  4. Korzystając z vertexów, tai program powinen w sumie ograniczyć się do dwóch spritów i robić trójkącik w rogu. Jak to wyrenderujesz na surface, to nawet choćby była masakrycza wydajność, nie robisz tego co krok, tylko w momencie jak !surface_exists() ( ogólnie tak powinno się robić, nie redrewować surface jak istnieje i się nie zmienia ).
  5. Czy ten kwadrat jest rysowany jako sprite, czy za pomocą draw_rectangle() ? Jeśli sprite - sprawdź origin, może jest zły. Jeśli draw rectangle - ta funkcja ma tendencję do rysowania z offsetem 1px na niektórych kartach graficznych. Do tego malowanie wypełnionego oznacza przesunięcie o kolejny piksel (bo rysuje bez ramki, którą jest argument przeciwny). Stąd mogą być aż dwa piksele. Osobiście zalecam używanie sprite zamiast draw_rectangle().
  6. Kierunek nie zależy tutaj od origina sprita? Bo inaczej wygląda kierunek jak masz origin kwadrata na 0/0, a inaczej jak na 50%/50%. Poniższy kod zadziała tylko dla prostokątnych masek i tylko z ustawieniem manual/automatic. Pixel perfekt i okrągłe maski na to nie zadziałają. var xcol = x - sprite_xoffset(sprite_index), ycol = y - sprite_yoffset(sprite_index); if (other.x < x) { xcol += bbox_left; } else { xcol += bbox_right; } if (other.y < y) { ycol += bbox_top; } else { ycol += bbox_bottom; } /// GMS 2.0, alternatywna wersja: /// var xcol = x - sprite_xoffset(sprite_index), ycol = y - sprite_yoffset(sprite_index); /// xcol += (other.x < x) bbox_left : bbox_right; /// ycol += (other.y < y) bbox_top : bbox_bottom; // kolizja wystepuje w punkcie xcol, ycol, kod wstawiasz do kwadrata ze swojego rysunku
  7. Tak jak mówię, dopiero jak drukujesz DPI ma znaczenie. Ogólnie 300dpi to chyba wartość powyżej której ludzie oko już nie jest w stanie zauważyć rozmycia obrazu i rantów pikseli. Dlatego telefony Apple z wyświetlaczem "Retina" mają 300 pikseli na cal (300 ppi), ale tak naprawdę ppi i dpi to to samo (points/pixels per inch - dots per inch). Inny skrót wynika z tego, że drukarka robi "krople" na papierze. Tak więc, jak chcesz grafikę 20x20cm wydrukować i żeby była dobrej jakości, to przeliczasz to na cale - 7,847'' a potem mnożysz przez oczekiwaną rozdzielczość - dla zdjęć będzie to 300. Zatem obraz powinien mieć przynajmniej 2362 pixele, powyżej będzie się już skalował w dół, poniżej możesz zobaczyć pikselozę, aczkolwiek chyba do 150dpi na zwykłym papierze będzie nadal spoko (bo krople tuszu się inaczej wchłaniają). Stąd też np. wynika, że zdjęcie 9x13 powinno być robione aparatem o min. rozdzielczości 1.6 Megapixela. (9x13cm = 3.54''x5,12'' = 1062x1535px). I stąd też jasno wynika, że dla normalnej fotografii kupowanie aparatu co ma 40Mpix nie ma sensu, bo 4-5 spokojnie starczy nawet nawet na większe odbitki, a 40mpix to na ogromne plakaty. Liczy się jakość/ostrość matrycy.
  8. Jak jest za duża różnica, i tak wyjdzie teleport z interpolacji.
  9. Kto gra dużo online, na pewno widział cofające lub skaczące postaci, które tak się zachowują. Ogólnie zasada powinna być taka, że przesyłasz np. kierunek i prędkość i co jakiś czas dodatkowo faktyczną pozycję. Jak różnica jest większa niż np. 5 pikseli rób korektę. Może to wyjść lepiej, ale oczywiście poeksperymentuj z ustawieniami. Albo np. wysyłaj pozycję krok naprzód, tj. x+lenghtdir_y(speed,direction), y+lengthdir_y(speed,direction). Jak nie korzystasz z wbudowanej zmiennej speed, to obliczysz prędkość na podstawie point_distance(xprevious,yprevious,x,y), a kierunek analogicznie przez point_direction(xprevious,yprevious,x,y). Jak korzystasz z vspeed i hspeed, to speed i direction powinny ustawiać się same, ale jeśli jest problem, to wciąż obliczysz je za pomocą poprzednich funkcji, podstawiając (0,0,hspeed,vspeed).
  10. Tak naprawdę to tylko w wydruku zależy ile pikseli to ile cm, na ekranie nie ma to żadnego znaczenia (jakiekolwiek DPI ustawisz, obraz będzie miał tyle samo pikseli, to będzie jedynie informacja startowa dla drukarki - która może nawet tego nie obsłużyć). Przeliczasz to tak, że dzieisz liczbę DPI przez 2,54 cm. Zatem 72 dpi oznacza, że 72 piksele to 2,54cm, więc 28,34 piksela to centymetr (a jak wiadomo, piksela nie da się przepołowić, więc możesz mieć problem chcąc narysować idealną linijkę :D)
  11. if not vspeed = 0 to dokładnie to samo co if (not vspeed) = 0 zatem w tej sytuacji, negujesz vspeed (zatem zwraca true gdy vspeed jest 0 i false w pozostałych przypadkach). Tobie chodzi o: if not (vspeed = 0).
  12. Na konsole takich rzeczy jak "przykładowe gry" nie da sie odpalać. Tam trzeba wszystko certyfikować przez Sony, i mieć z nimi umowę - nie ma lekko. Na Xbox One jeszcze w miarę jest łatwo, ale też pod górę względem komputera
  13. Od 2-3 lat tylko takie gry wychodzą na Vitę. Jeżeli chcesz w nie zagrać, jedynym sposobem jest PlayStation Store dostępne z menu konsoli i zakup tych gier. Tu jest pełna lista, wg. daty premiery: https://store.playstation.com/pl-pl/grid/STORE-MSF75508-PLATFORMPSVITA/1?direction=desc&sort=release_date
  14. Skasuj ciasteczka dla domen yoyogames.com / spróbój w trybie incognito / spróbuj w innej przeglądarce. U nas naprawdę wszystko działa, a do tego z GMS też możesz marketplace przeglądać.
  15. Powiedz od początku gdzie wchodzisz i co próbujesz wcisnąć. Bo chyba robisz coś źle.
  16. @niebieskiBrylantGdzie masz "sell your assets" ? ani w IDE ani na stronie tego nie widzę.
  17. Przy okazji tego nowego releasu pewnie naprawili. Może nawet dla tego nie działało Zawsze można spróbować się przelogować w IDE.
  18. Że zacytuję klasyka U mnie działa.
  19. Jak przetłumaczysz plik CSV, to będzie
  20. Wydaje mi się, ze login to " Fervi_ "
  21. Napisz na twitterze, wspominając @YoYoGames i @YYGSupport - takie publiczne wypominanie pomaga Wygląda, że obecnie działa (chociaż u mnie wolno się ładuje).
  22. Analiza jest zrąbana, nie da rady za większy okres zobaczyć bo się serwer sypie.
  23. Nie no, marketplace jest na czwarty kwartał dopiero: https://help.yoyogames.com/hc/en-us/articles/231719448-RoadMap
  24. Ja to jakoś tak przerobiłem https://jsfiddle.net/c87a37m3/35/ i żadnego GIMPa nie trzeba.
×
×
  • Dodaj nową pozycję...