Amaterasu
-
Postów
390 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez Amaterasu
-
-
Potrzebujesz zmiennej 256-bitowej, jeżeli chcesz sprawdzić wszystkie znaki ASCII. GM obsługuje tylko do 64 bitów.
Możesz natomiast zrobić tablicę z 256 elementami i ustawiać wartość danej komórki na 1, jeśli naciśnięto klawisz i 0, gdy go puszczono, potem wystarczy sprawdzić wartość potrzebnej komórki.
Jeżeli nie są potrzebne wszystkie znaki ASCII, to możesz zrobić sobie ds_map, który przekieruje dany indeks tablicy na właściwy znak ASCII.
-
Nie znam się na wydajności poszczególnych shaderów. Nie pomoże rozwiązywanie równań liniowych zamiast liczenia kąta dla każdego piksela?
-
A nie można kompletnie ignorować teksturowania trójkątów i działać na samych pikselach? Chyba można jakoś zaimplementować, żeby dany piksel rysował się albo nie, zależnie od danego kąta.
-
Możesz odrzucić całkowicie fizykę Box2D i napisać własną. Box2D nie uznaje kompromisów i wszystko musi zachowywać się zgodnie z zasadami dynamiki Newtona. Nie ma czegoś takiego jak "całkowite zatrzymanie obiektu w jednym momencie", chyba że to sobie dokładnie wyliczysz.
Możesz też bawić się z siłami i impulsami czy też ograniczeniami (constraints), jeżeli chcesz koniecznie zostać przy Box2D, za wiele ci tu nie pomogę.
-
inne pytanko jak zrobić podział dmg chodzi o
hp=800//hp
shd=400//osłona
damage
osłona pochłania zależy jaka ileś tam % np 20/80 //poszycie/osłona i jak odejmować to od tego
Potrzebujesz dwóch funkcji.
GML//ta funkcja zwróci ci procent obrażeń otrzymywanych przez pancerz{
/*PRZYKŁAD
case "zielony pancerz": return 0.5 //liczba po return musi należeć do przedziału <0; 1>
case "czerwony pancerz": return 0.9
case 2: return 0.2
*/
}
GML//ta funkcja zada obrażenia bohaterowiratio = FunkcjaPowyżej(argument) //w zależności od tego, jaki typ pancerza ma postać, otrzyma on różne obrażenia
sh1 = aktualny_pancerz //pamiętaj, aby zmienić nazwy zmiennych, np. u ciebie "aktualny_pancerz" będzie "shd"
hp1 = aktualne_hp
dmg_hp = argument0*(1-ratio)
dmg_sh = argument0*ratio
if(sh1 < dmg_sh)
{
aktualny_pancerz = 0
dmg_hp += (dmg_sh-sh1)
dmg_sh = 0
}
aktualny_pancerz -= dmg_sh
aktualne_hp -= dmg_hp
if(aktualne_hp <= 0)
{
//kod umierania
}
Tę funkcję nazwij np. ZadajObrażenia(argument), argumentem jest ilość zadanych obrażeń, użyj tej funkcji za każdym razem, gdy postać otrzymuje obrażenia (np. w evencie kolizji z wrogiem/pociskiem).
-
@Fervi i ten drugi: zachowujecie się jak typowe menele, co to potrafią rozprawiać o polityce i sytuacji w kraju dwadzieścia cztery na dobę - i to jedyne, co potrafią.
-
Można tak zrobić, ale nie ma wtedy pewności, czy wczytany string rzeczywiście może być zamieniony na liczbę - nie można sprawdzić tego za pomocą is_real(real(get_string())), a użycie real(string_digits(get_string())) zamienia np. 89.22 na 8922. Oczywiście nic nie stoi na przeszkodzie, by napisać własny parser : P
-
get_rekt()
Nie ma funkcji get_real(), jest za to get_integer(), ktra przyjmuje tylko liczby całkowite, czyli twoje canvas_w, nie może przyjąć wartości np. 84.7
-
Trzeba pokombinować z parametrami tej funkcji, być może nie wszystko masz tak jak trzeba (np. czy argument col jest ustawiony na false itd.)
Ewentualnie możesz skorzystać z podobnej funkcji physics_joint_prismatic_create(), opis w dokumentacji.
-
Usuń tego gościa z logo pls
-
Każdy z obiektów potworów powinien mieć kod rysowania paska HP w swoim Draw. Pamiętaj, żeby zamiast draw_cośtam(200,200,itd.), co będzie rysowało te paski dokładnie w tej pozycji w roomie, pisać draw_cośtam(x+liczba,y+liczba,itd.), spowoduje to, że te paski będą rysowane w stałej odległości od danego obiektu.
-
Zamień 'sprite_add_sprite(spr_table2)' na 'sprite_index = spr_table2'
-
GMLnowy=surface_create(view_wview[0],view_hview[0])// tworzenie surface
alarm[0]=30
GMLsurface_set_target(nowy)draw_clear_(c_black);
if obj_player_self.latarka with(obj_player_self)
{
draw_set_blend_mode(bm_src_color)
draw_circle(x-view_xview[0], y-view_yview[0], 60, 0)
draw_set_blend_mode(bm_normal)
}
surface_reset_target()
W jakim obiekcie masz wykonywany ten kod? Czy robisz więcej niż jeden taki obiekt?
-
Jeśli to jedyny room, w którym masz włączony silnik fizyczny, to może być wina starego sprzętu.
-
A dokładniej
GMLvirtual_key_add(x, y, w, h, keycode); -
o wow
-
Czyli, że twoja postać 'wbija' się w obiekt, na który ląduje. Oznacza to m.in. że próba sprawdzenia, czy przed postacią stoi przeszkoda za pomocą place_free() jest z góry skazana na porażkę. Po kodzie lądowania daj:
GMLmove_outside_solid(90,vspeed)Pamiętaj też, żeby odpowiednim obiektom zaznaczyć solid.
-
Pokaż tę listę tutaj.
-
MUGEN-y stosują system 'stanów' i 'flag'. Każda kombinacja klawiszy zmienia stan postaci. Każdy stan posiada kod inicjujący, w nim można np. napisać, żeby przy zmianie stanu atakowało wroga przed postacią. Istnieje kilka globalnych stanów (mają przypisane ujemne liczby) oznaczające np. bezczynność, bycie martwym itp.
Flagi pozwalają jednemu stanowi przystosowanie się do zachowania postaci (np. stan 150 odpali tylko, gdy flaga 'AIR' jest włączona). Stany również mogą być flagami.
System jest bardzo złożony i nie ogranicza się jedynie do zmiany stanów (można też tworzyć nowe obiekty, klony, pociski), ale dzięki niemu można stworzyć dowolną postać z każdej istniejącej bijatyki.
-
Mam na myśli dokładne przekształcenie. Czyli dowolną sieć o N warstwach ukrytych można zamienić w sieć z jedną warstwą o tej samej funkcjonalności.
-
Ciekawostka: każda sieć wielowarstwowa z N warstwami ukrytymi może być przekształcona w sieć z jedną warstwą ukrytą
-
Perceptron może zwracać dowolną wartość od -1 do 1, zresztą ten zakres można dowolnie modyfikować. Poszukaj sobie różnych funkcji aktywacji, oprócz skokowych są też liniowe, sigmoidalne itp.
Sęk w tym, że pojedynczy perceptron nie nadaje się do tego typu zadań - jest to zbyt prosta struktura, żeby można nią było modelować złożone zachowania, zależne od dużej ilości bodźców.
-
Przy wczytaniu gry możesz dodać np. coś takiego:
GMLif(room = room1) muzyka = muzyka1//...i tak dalej, dla każdego roomu inna muzyka</span>
-
Cztery wyjścia to chyba nie tak dużo wg mnie
Edyt: a, o takie mrówki chodzi, z tym byłby problem
GM Studio - Spersonalizowanie obiektu
w Pytania zaawansowanych
Opublikowano
Wystarczy wywołać powyższy kod w danym obiekcie, pamiętając jednocześnie, aby stworzyć zmienną "zmienna" w evencie Create (i np. przypisać jej wartość "") w tym obiekcie.