Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9 825
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    144

Treść opublikowana przez gnysek

  1. Jeśli co step ustawiasz vspeed, to może tak to wyglądać, ponieważ: vspeed = 5; // prędkość pionowa 5 gravity_direction = 270; // w dół gravity = 0.1 // grawitacja = 0.1, zatem co krok zwększaj vspeed o 0.1 // koniec eventu step, następuje przesunięcie postaci o y += 5 // vspeed zostaje zwiększone o 0.1 (bo grawitacja działa w kierunku 270, o 0.1, ma przyspieszać opadanie // ... engine przechodzi przez kolejne eventy, w tym draw // ... wchodzi kolejny krok, znów wykonujemy event step // vspeed jest obecnie równe 5.1 vspeed = 5; // UPS! Mimo, że engine ustawił vspeed na 5.1, my w kolejnym kroku nadpisujemy tę wartość nim postać się ruszy! stąd wrażenie. gravity_direction = 270; gravity = 0.1; Jeszcze taki szybki kurs: 1) przesuwanie postaci: x += <wartość>; y += <wartość>; powoduje przesunięcie w tejże chwili i w kolejnej linijce kodu X i Y mają nowe wartości. 2) speed = 2; direction = 50; ustawione zostają: hspeed = lengthdir_x(speed, direction); vspeed = lengthdir_y(speed, direction); x i y zostają zwiększone na koniec eventu End Step o hspeed i vspeed 3) hspeed = 5; vspeed = 2; ustawione zostają automatycznie: speed = point_distance(0,0, hspeed, vspeed); direction = point_direction(0,0, hspeed, vspeed); x i y zostają zwiększone na koniec eventu End Step o hspeed i vspeed 4) po zmianie X i Y na koniec End Step, zostaje nadana wartość gravity: hspeed += lengthdir_x(gravity, gravity_direction); vspeed += lengthdir_y(gravity, gravity_direction); (speed i direction zostają zaktualizowane j.w.) a następnie friction: speed = (abs(speed) > friction) ? (speed - friction) : 0; (hspeed i vspeed zostają zaktualizowane j.w.) Mniej więcej działa to tak, aczkolwiek dla niektórych da się podawać ujemne wartości, więc jeszcze bardziej skomplikowanie to się przelicza, ale to powinno rozjaśnić wiele.
  2. Są globalne. Do zmiennej zostanie przypisany numer grida. Jak zrobisz to do tej samej zmiennej, to ten stary grid nadal istnieje, tylko nie masz zapisanego nigdzie jego numerka. Powiedzmy sobie, że każdy ds_xxx działa tak samo jak dodawanie sprite - dostajesz ID, ale jak znika zmienna to nie znika zasób i nadal wisi w pamięci. I jakbyś na chybił trafił tę cyferkę podał, to byś nawet odczytał te wartości?
  3. Hah, takie rzeczy to się zgłasza, żebym mógł naprawić Postaram się znaleźć przyczynę, ale to ma chyba jakiś związek z tworzeniem sesji, bo jak wchodzisz to nie ma też nicku na liście po prawej.
  4. Musiałbyś chyba całą obsługę protokołu dopisać (wysyłanie poleceń - https://en.wikipedia.org/wiki/List_of_FTP_commands), bo samo połączenie to nie jest jakiś problem, ale już wznawianie połączenia, wybieranie katalogów itp. to gorsza sprawa. Chyba łatwiej by było wysyłać HTTP+POST i plik jako Content.
  5. gnysek

    Bonfire

    To musi na komórki też wyjść, aż się prosi o sterowanie palcem i po 2-3 meczyki w autobusie rano i wieczorem
  6. żeby nie było, cały czas coś się w temacie dzieje: git aż pełen commitów
  7. No ale jak znasz wysokość i szerokość, to nadal jak wyżej. A jak nie znasz, to ciężka sprawa... chyba, ze to jedyny kształt w tym gridzie ? Wtedy będzie tak: var _w = ds_grid_width(index); var _h = ds_grid_height(index); var xstart = _w, xend = 0, ystart = _h, yend = 0; for(var i = 0; i < _w; i++) { for(var j = 0; j < _h; j++) { if index[# i, j] == 1 { xstart = min(xstart, i); xend = max(xend, i); ystart = min(ystart, j); yend = max(yend, j); } } } // ok, mamy juz prostokat w ktorym jest figura, teraz przesuwamy var offsetx = -1, offsety = -20; for(var i = xstart; i < xend; i++;) { for(var j = ystart; j < _yend; j++) { if index[# i, j] == 1 { index[# ((i + _w + xoffset) % _w), ((j + _h + yoffset) % _h)] = 1; index[# i, j] = 0; /* robimy operację modulo, żeby przenosiło na drugi koniec grida w przypadku, gdy np. litera zaczyna się na osi X w pozycji 2, a ustawisz offset na -5. ponieważ jednak modulo z liczb ujemnych nie jest tylko dopisaniem znaku - przed wartością, dodajemy pełną wysokość np. 3 % 10 = 3, ale -3 % 10 = 7, wystarczy jednak dodawać zawsze 10 do liczby i po sprawie (-3 + 10) % 10 = 3. */ } } } tu jest jeszcze taki jeden problem, że jak szerokość litery jest taka, ze po odjęciu offsetu nachodzi na siebie z drugiej strony, no to skasuje się część litery niestety - trzeba by wtedy do nowego grida po prostu przenosić i stary kasować.
  8. Ej, na telefony przecież jest od 3 lat dostępna. Może nie jako 100% pełna wersja, ale trochę rzeczy jest
  9. chciałby przenieść cały kwadrat w którym jest koło, wiec zakładam, że to róg kwadratu
  10. A spróbuj ten pierwszy kod dać do "Begin Step" ? Nie wiem, czy nie ma znaczenia i i tak wszystko jest aktywowane po "End Step", czy jest rozdział aktywacji na te 3 eventy. Jedyne inne rozwiązanie w tej sytuacji jakie mi przychodzi, to na bieżąco do jakiejś tablicy zapisywać pozycje obiektów i zapisywać tablicę.
  11. Strzelam, że osiągi wypadną na korzyść Unity wręcz miażdżąco, ale jak kolega mówi - pod względem wizualnym skoro GM wygrywa przy jednej to i przy większej wygra
  12. Przykład z blogu yoyogames nie korzysta z surface. Ze zmiany blendingu, ale przez to nie obsłguje kanałów alpha.
  13. Co do malowania krwi, to albo https://www.yoyogames.com/blog/430/dynamic-rendering-masks albo gra ink która była w humble bundle (tam był chyba kod źródłowy) ?
  14. masz taką nazwę usera, "-" ?
  15. Fajne wykorzystanie 3D z tymi chmurami
  16. czy Tobie też pokazuje "Wednesday" zamiast środa ?
  17. Masz ukryty znak: A pierwsze zwraca pewnie błąd, bo zamiast JSONa dostaje " syntax error, unexpected T_STRING, ...."
  18. jeśli chodzi o muzykę to: a) zmień rodzaj kompresji b ) muzyka działa dopiero jak dotkniesz wnętrza karty przeglądarki palcem - takie zabezpieczenie, żeby się samo w tle nie odpalało wszystko jak leci
  19. Ktory GM? Bo dwójka inaczej zapisuje nowe linijki i stąd może wynikać problem.
  20. W sumie to nie wiem jak jest teraz, ale kiedyś, jak robiłeś "create executable" to chyba po prostu gra się wywalała do Androida, a nie pokazywała komunikatu - takowe były tylko gdy grę "testwałeś" (Run/Debug w IDE).
  21. Jest taka możliwość. Zrób grę tak, żeby nie było błędów
×
×
  • Dodaj nową pozycję...