-
Postów
39 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez Hawaxi
-
-
Próbowałem na wszelkie sposoby zmodyfikować kod niestety nic to nie dało, walcze dalej. Ktoś ma inne pomysły?
Podsyłam kod shaderu, może uda się komuś coś zdziałać.
varying vec2 v_vTexcoord; varying vec4 v_vColour; uniform float Position; vec3 rgb2hsv ( vec3 color ) { vec4 K = vec4 ( 0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0 ); vec4 p = mix ( vec4 ( color.bg, K.wz ), vec4 ( color.gb, K.xy ), step ( color.b, color.g ) ); vec4 q = mix ( vec4 ( p.xyw, color.r ), vec4 ( color.r, p.yzx ), step ( p.x, color.r ) ); float d = q.x - min ( q.w, q.y ); float e = 1.0e-10; return vec3 ( abs ( q.z + ( q.w - q.y ) / ( 6.0 * d + e ) ), d / ( q.x + e ), q.x ); } vec3 hsv2rgb ( vec3 hsv ) { vec4 K = vec4 ( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0 ); vec3 p = abs ( fract ( hsv.xxx + K.xyz ) * 6.0 - K.www ); return hsv.z * mix ( K.xxx, clamp ( p - K.xxx, 0.0, 1.0 ), hsv.y ); } void main ( ) { gl_FragColor = texture2D ( gm_BaseTexture, v_vTexcoord ) * v_vColour; vec3 hsv = rgb2hsv ( gl_FragColor.rgb ); vec3 shifted_color = vec3 ( hsv.x + Position, hsv.y, hsv.z); gl_FragColor.rgb = hsv2rgb ( shifted_color ); gl_FragColor *= v_vColour; }
-
Witam,
Podczas eksportowania projektu do ios'a, przezroczyste tło w gifach staje się czarne. Jest to wina shaderów zmieniających hue owych gifów(gdy je usuwam tło staje się przezroczyste i wszystko działa poprawnie). Natomiast przy tworzeniu aplikacji na windowsa lub inna platformę problem ten nie występuje. Spotkaliście się z podobną komplikacją? Jakieś pomysły?
Próbowałem usunąć kolor czarny w kodzie shaderu, wystąpił ten sam problem.
kod:
if(vec3(gl_FragColor) == vec3(0.0)) gl_FragColor.a = 0.0;
Proszę o szybką pomoc.
-
Okej, głupia literówka wtargnęła do kodu. Już wszystko działa, dzięki za pomoc ;)
-
Dzięki za pomoc! Na 2 tych samych obiektach działa ale chciałbym teraz dodać inny obiekt.
Niestety przy 2 różnych obiektach nic się nie dzieje. Jakiś pomysł?
-
Witam,
Mam dużo różnokolorowych tych samych obiektów w pokoju i chciałbym aby gra robiła coś, gdy obiekty o tym samym kolorze się zderzą.
Niestety poniższy zapis nie działa, ma ktoś jakąś alternatywę?
Collision event
GMLif image_index == other.image_index{room_restart();
}
-
Super, wszystko śmiga dzięki za pomoc. :)
-
no właśnie chodzi o obiekt z najmniejszym depth pod myszką.
-
Witam,
W pokoju tworzy mi się pełno tych samych obiektów obj_black one się przemieszczają i czasami na siebie nachodzą. Chce aby po kliknięciu lpm obiekt na wierzchu się usuwał.
W create:
GMLdepth = irandom_range(1,999999);lista = ds_list_create();
W left pressed:
GMLds_list_add(lista,depth);ds_list_sort(lista, true); //sortuj najmniejszy ---> najwiekszy
global.szukam = ds_list_find_value(lista,1); // 1- najmniejszy
if depth = global.szukam
{
instance_destroy();
global.szukam = 0;
}
W tym kodzie muszę klikać 2 razy lpm (nie wiem dlaczego), do tego czasami nawet obiekty nie na wierzchu się usuwają.
-
Okej, przypisałem wszystko do zmiennych dzięki za radę ;)
-
Okej zrobiłem Alarm i troche opóźniłem działanie teraz wszystko działa
dzięki za pomoc :)
-
Okej dzieki wszyskim za pomoc, ale wciąż mam z tym problem.
Mógłby mi ktoś wytłumaczyć co robię źle?
HTTP:
GMLstrona = http_get("https://eune.api.pvp.net/api/lol/eune/v1.4/summoner/by-name/hawaxi?api_key=")wynik = json_decode(strona);
gracz = wynik[?"hawaxi"]
Draw:
GMLdraw_text(x,y,gracz[?"summonerLevel"])Wywala mi błąd z draw_text:
Push :: Execution Error - Variable Get 100000.gracz(100002, -2147483648)
at gml_Object_object0_DrawEvent_1 (line 1) - draw_text(x,y,gracz[?"summonerLevel"])
Jak wrzuciłem wszystko do draw event, pokazywalo undefined...
Pozdrawiam Hawaxi :)
-
Witam,
Czytałem dużo tematów i natknąłem się na to json_decode ale nie za bardzo rozumiem jak działa, a w dokumentacji nie mogłem go znaleść.Chciałem pobrać informacje ze strony i później wyświetlać je w mojej grze.
Czy moge wyjąć informacje z tej strony jeśli jej kod zródłowy wygląda tak:
{"hawaxi":{"id":28669616,"name":"Hawaxi","profileIconId":552,"summonerLevel":30,"revisionDate":1432142221000}}
Mój kod:
GMLAsynchronous HTTP event:strona = http_get("https://eune.api.pvp.net/api/lol/eune/v1.4/summoner/by-name/Hawaxi?api_key=");
wynik = json_decode(strona);
draw event:
draw_text(x,y,wynik);
Pozdrawiam Hawaxi
-
Hmm wczesniej próbowałem z file_text_open_read ale cos nie działało, teraz działa.
Zrobiłem przedchwila nowy projekt z tym samym kodem tylko file_text_open_read i znowu ten sam błąd.
Nie rozumiem O.o mógłbyś sprawdzić na swoim komputerze czy game maker tak samo reaguje?
-
Witam,
Ostatnio zacząłem się bawić funkcjami plików tekstowych no i ciągle pokazuje mi
błąd: File is not opened for reading.
Nie rozumiem jak nie jest otwarte jeśli używam funkcji file_text_open_write.
Mój kod:
GMLpass = file_text_open_write(working_directory + "\pass.txt");message = file_text_read_string(pass);
show_message(message);
file_text_close(pass);
Stworzyłem pass.txt w tym samym folderze w którym jest moja gra (.project).
-
Dzieki stary, bardzo mi pomogłeś :lol: 3 dni nad tym siedziałem a rozwiazanie było tak proste.
-
Okej, problem polega na tym że tworzy to kopie jednego obiektu obj_wall a nie wszystkich.
Mój kod:
obj_controller > mouse global right button
GMLwith(obj_wall){
instance_create(obj_wall.x+64,obj_wall.y+64,obj_wall);
}
obj_controller > mouse global left button
GMLinstance_create(floor(mouse_x/64)*64,floor(mouse_y/64)*64,obj_wall);No i jeszcze obiekt obj_wall który nosi sprite o wielkości 64x64.
Prosze o pomoc!
-
Witam,
chciałbym skopiować wszystkie obiekty w roomie które są obiektami typu obj_wall.
Zrobiłem tak ale coś mi tutaj nie działa, wydawało mi się że to przechodzi przez wszystkie obiekty ale chyba jest inaczej
skoro nie działa:
with(obj_wall)
{
...
}
-
Miałeś racje używałem draw_sprite a nie instance_create :P
Dzieki wszystkim za pomoc już wszystko działa.
-
To musi być object a nie sprite.
-
okej zrobiłem 5 obiektów żeby to przetestować dodałem je do listy,stworzyłem pętle itd. ale i tak wyświetlają się zupełnie inne obiekty których nie dodałem do listy...
w dokumentacji pisze że mam wpisać wartość:
ds_list_add(id, wartość)
ale jaką wartość? Próbowałem wpisać w tym miejscu zamiast nazwy obiektów ich id lecz to też nie zadziałało.
-
Okej ale głupi błąd zrobiłem...
Nie ma błędu ale też nic się nie wyświetlało.
Zmieniłem event z create na draw i teraz wyświetla się zupełnie inny obiekt
którego wcale nie dodałem do ds_map...
-
Skorzystałem z twojej porady i zrobiłem to z ds_map:
GMLinv = ds_map_create();ds_map_add(inv, object, 1);
ds_map_add(inv, object100, 1);
ds_map_add(inv, object101, 1);
ds_map_add(inv, object102, 1);
ds_map_add(inv, object103, 1);
for (i=0;i<ds_map_size(inv);i++)
{
if i != ds_map_size(inv)-(ds_map_size(inv)+1) // Sprawdzam czy to jest pierwszy obiekt w pętli
{
item = ds_map_find_next(inv, object);
draw_sprite(item, 1, x+(i*65), 64);
}
else
first = ds_map_find_first(inv);
draw_sprite(first, 1, x+(i*65), 64);
}
Zrobiłem to całe zmieszanie z tym if w pętli bo nie wiedziałem czy ds_map_find_next zalicza też 1 obiekt.
W tym kodzie wyskakuje mi coś przy zmiennej first:
Push :: Execution Error - Variable Get -1.first(100039, 0)
at gml_Object_obj_inv2_Create_0 (line 20) - draw_sprite(first, 1, x+(i*65), 64);
I mam jeszcze jedno pytanko, czy jak zrobie:
GMLdraw_sprite(ds_map_find_first(inv), 1, x+(i*65), 64);Zamiast:
GMLfirst = ds_map_find_first(inv);draw_sprite(first, 1, x+(i*65), 64);
Czy to ma jakieś znaczenie czy też to jest poprostu ze względów stylistycznych (żeby łatwiej się odczytywało kod)?
-
Aha i chcę później dodać sklep do mojej gry i chciałbym żeby te obiekty które tam kupisz też się pojawiały na tej liście (dopiero jak je kupisz).
Jak patrzyłem w internecie to nie żauważyłem opcji która dawała by możliwość dodania pojedyńczego obiektu do tego stacka.
Jeśli jest to mnie poprawcię.
-
Nie wiem dlaczego ale ten kod co mi podałeś Threef, on nie działa.
A twojego sposobu id nie użyłem bo id moich obiektów nie są po kolei...
samoczynna zmiana przezroczystości na kolor czarny
w Pytania zaawansowanych
Opublikowano
Problem rozwiązany,
wystarczyło discardować pixele z alphą <= 0, może nie jest to wydajne rozwiązanie ale działa.
if (gl_FragColor.a <= 0.0) {
discard;
}