Skocz do zawartości

SimianVirus7

Użytkownicy
  • Postów

    264
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    31

Treść opublikowana przez SimianVirus7

  1. Dobry Wieczór Panom ^_^ Jest jeszcze przed północą, zdążę zapisać się na konkurs? Nie jestem wielkim rywalem, moje umiejętności są znikome, ale postaram się najbardziej jak potrafię. Pozdrawiam forumowiczów :bye1:
  2. Nie do końca rozumiem jak działa Twój skrypt ale wszystko ładnie chodzi ^_^ Dziękuje.
  3. Tylko, że ja mam trochę kod z alphą napisany niefajnie i gdy zwiększę wyszukiwanie do 16px to alpha cienia strasznie klatkuje. Mogę co najwyżej wyszukiwać co 5px, żeby zachować płynność przechodzenia alphy. GML if(i > 0 && i <= 20) then sh_alpha = 1; if(i > 20 && i <= 25) then sh_alpha = 0.9; if(i > 25 && i <= 30) then sh_alpha = 0.8; if(i > 30 && i <= 35) then sh_alpha = 0.7; if(i > 35 && i <= 40) then sh_alpha = 0.6; if(i > 40 && i <= 45) then sh_alpha = 0.5; if(i > 45 && i <= 50) then sh_alpha = 0.4; if(i > 50 && i <= 55) then sh_alpha = 0.3; if(i > 55 && i <= 60) then sh_alpha = 0.2; if(i > 60 && i <= 64) then sh_alpha = 0.1; if(i > 64 && i <= 65) then sh_alpha = 0; Jestem przekonany, że to jest najszybszy ale i najgorszy sposób, jednak nie wpadłem na coś innego :/
  4. Zrobiłem o 3px i cień miał drgawki, wyglądało to okropnie. Później zauważyłem, że nie posłuchałem samego siebie, bo początkowe założenia były takie, żeby cień rysował się na ID.y, a ja rysowałem go po wysokości Y z collision_line. Tak było: GML for ( var i = 0; i < 65; i += 3 ) sh_dis = i; [...] draw_sprite_ext(sShadow,0,x,y+sh_dis,1,1,0,c_white,sh_alpha) ,a tak jest: GML draw_sprite_ext(sShadow,0,x,ID.y-(ID.sprite_height/2),1,1,0,c_white,sh_alpha); Teraz wszystko płynnie się przesuwa i cieszy oko. Dziękuje ^_^
  5. Uzjel: No cóż, dobrze, że się o to zapytałeś. Sprawdziłem i okazało się, że gra zwiesza totalnie. I am Lord: Tak zrobiłem. Nie tylko wizualnie pasuje mi lepiej (poprzednio były małe błędy z alphą cienia) ale pewnie, tak jak wspomniałeś, gra zyska na optymalizacji ^_^ Ostatecznie (chyba) wygląda to tak: GML for ( var i = 0; i < 65; i += 1 ) { var ID = collision_line(x, y, x, y+i, oSolid, 0, 1); if ( ID != noone ) { draw_line(x,y,x,y+i) // rysuj linie (dla debugu) sh_dis = i; draw_sprite_ext(sShadow,0,x,y+sh_dis,1,1,0,c_white,sh_alpha) break; } }
  6. Dzięki mistrzu! Zrobiłem to trochę krócej i chciałbym, żebyś zobaczył czy w kodzie nie ma ewentualnych błędów. Jak na razie ich nie widzę i wszystko chodzi pięknie. Dzięki jeszcze raz. GML sh_dis = 0; while(!collision_line(x, y, x, y+sh_dis, oSolid, 0, 1)) { //draw_line(x,y,x,y+sh_dis) // rysuj linie (dla debugu) sh_dis += 1; } draw_sprite_ext(sShadow,0,x,y+sh_dis,1,1,0,c_white,sh_alpha) PS: czy break; kończy pętle for? tak z ciekawości ^_^
  7. Hmm... z matmy to ja buc jestem (tak, jutro matura z matmy) A gdyby tak bohater miał wystający z siebie colission_line skierowany w dół. Gdyby napotkał instancję, pobierałby ID. Cień byłby rysowany na tym obiekcie (id.x, id.y). Gdyby nie znajdował instancji, to cień przylepiałby się do bohatera (, bo i tak alpha cienia byłaby już z wartością 0) fioletowa linia - colission_line Dobry tok myślenia, czy nie za bardzo i mam zacząć rozkminiać Twoją odpowiedź (,bo dla mnie to wszystko za mądrze brzmi :mellow: )
  8. Witam, to znowu Ja :mellow: Powoli sobie dziubie w kodzie i natrafiam na nowe problemy, a na problemy z Game Makerem najlepsi są ludzie z tego forum :thumbsup: Chciałbym zrobić(właściwie to już troche zrobiłem) cień bohatera. Miałby on być ciągle na podłożu i podążać za bohaterem. Problem jest taki, że to nie top down tylko platformówka. Poradników nie ma (albo jestem ślepy), a sam od godziny dobrnąłem do tego miejsca: - z alfą dla cienia - bez afly dla cienia (i się jakoś zepsuła -.-) A chciałbym, żeby to wyglądało tak: GML ///Draw shadow sh = sprite_height/2; sw = sprite_width/2; if(collision_rectangle(x-sw/2,y,x+sw/2,y+sh+4,oSolid,true,true)) { if(sh_alpha != 1) then sh_alpha += 0.1; } if(!collision_rectangle(x-sw/2,y,x+sw/2,y+sh+1,oSolid,true,true)) { if(sh_alpha != 0) then sh_alpha -= 0.1; } draw_sprite_ext(sShadow,0,x,y+4,1,1,0,c_white,sh_alpha) sh_alpha (shadow_alpha) - ustawiony w create na 1; Czyli gracz posiada cień, który jest do niego przylepiony, a powinien być ciągle na podłożu. Gdy collision_rectangle nie wykrywa podłoża zmniejsza alpha spritu, a gdy wykrywa, zwiększa go. Próbowałem to na masę sposobów: a) distance_to_object B) distance_to_point c) lenghtdir_y d) stworzyłem obiekt (ale tworzenie dla każdego stworka byłoby chyba mało optymalne) e) stworzyłem zmienną, która wzrastała gdy yprevious != y (i tu było stosunkowo najbliżej celu) Nie ma jakieś funkcji typu "distance_to_object" ale tylko dla y? Byłbym wdzięczny za pomoc, nakierowanie.
  9. Nie, with(other) nie działa. Ponadto, jeśli zastosuję tą funkcje to kod w jej bloku wykonuje się na przeciwniku i prawdopodobnie na jajku ale pomija kolizje (odbicie od przeciwnika). Musi pozostać with(oEgg.id).
  10. Za jakieś 40 minut sprawdze jeszcze raz, czy może ten with(other) jednak działa ale mam wrażenie, że próbowałem tego rozwiązania i nie działało.
  11. No właśnie też mnie to zdziwiło. Wiem, że z instance_destroy() zawsze się to robi, żeby ta przeciwna instancja się zniszczyła. Mam na myśli to: GML with(other) { instance_destroy(); }
  12. Cóż, męczyłem się z tym forcem ale na próżno. Zrobiłem to z pomocą phy_speed_x i w sumie dało pożądany efekt. Nie wiem dlaczego od razu na do nie wpadłem, a jak widać, najciemniej pod latarnią. Nie chcę rozpoczynać kolejnego wątku więc dam tutaj drugie pytanie. Czy można zrobić blok kodu, który będzie wywoływany w instancji other (nie potrafię tłumaczyć) np. GML other.phy_speed_x = -3 other.phy_speed_y = -3 Czy można to zamienić na coś w stylu: GML with(oEgg) { phy_speed_x = -3 phy_speed_y = -3 } ,bo problem z powyższym kodem jest taki, że działa na każde jajko w roomie, a nie na tą jedną instancję. With(other) nie działa, próbowałem coś takiego, ale też bez skutku GML var oID = other.id with(oID) { phy_speed_x = -3 phy_speed_y = -3 } EDIT: Dobra mam. Wszystko działa tak jak chciałem. Dziękuje za odpowiedzi. GML with(oEgg.id) { phy_speed_x = -3 phy_speed_y = -3 }
  13. Witam. Proszę o pomoc z fizyką wbudowaną w game makerze. To mój pierwszy projekt w którym ją wykorzystuje. Mam problem z odbijaniem się jajek od przeciwników. Mianowicie chciałbym, aby jajko trafione w przeciwnika odbiło się w przeciwną stronę, trochę ku górze. Przesyłam film, niestety w słabej jakości, ponieważ na szybko pobierałem darmowy program do obróbki wideo i nie miałem czasu go ogarnąć. Tak jest: https://www.youtube.com/embed/YbjvPYI2v9Q A takie są założenia: Jajko ma skrypty zbudowane na phy_speed_x / phy_speed_y. Alarm ustawiony na około 2 sekundy, żeby zmienił trase jajka do gracza. Myślałem nad physics_apply_impulse albo physics_apply_local_force ale nic mi się nie udawało. Jajko zachowywało się dziwnie; wybijało w kosmos. Ktoś ma jakieś pomysły albo rady?
  14. Moja odwieczna zagwozdka. Jak zrobić taki przycisk ON/OFF Nie wiem jak to wytłumaczyć. Pewnie kod powie więcej niż Ja GML var on = false; if(keyboard_check_pressed(vk_f2)) { if(on==false) { on=true; } else on=false; } Myślałem, że if (ten drugi) wykona się raz i weźmie pod uwagę albo pierwszy warunek albo elsa. Mogłem nie unikać lekcji informatyki (technikum) Nevermind, ogarnąłem. Wystarczyło nie robić zmienną tymczasową, bo zawsze ustalała zmienną na false :|
  15. Ooo, dziękuje za odpowiedzi. Nie miałem czasu, żeby tu wpaść, a widzę, że ruch spory w tym poście. Jak przysiądę na trochę dłużej do gm'a, to napisze, co mi się udało naskrobać. Dziękuje jeszcze raz za odpowiedzi. Najbardziej spodobało mi się rozwiązanie ediegopl, co nie znaczy, że inne odpowiedzi się nie przydały. Dzięki jeszcze raz, miło znowu wrócić na to forum. PS: Tak, rozwiązałem mój problem ;)
  16. Skoro taki człowiek jak I am Lord, mówi, że nie ma na to żadnego pomysłu, to wiem, że czas zrezygnować z tego pomysłu.
  17. Witam. Od wczoraj męczę się z pewnym problemem (nie mów :V). Chciałbym zrobić rękę podążającą za kursorem. Jest ona podzielona na trzy części: ramię, ręka1 (do łokcia), ręka2 (od łokcia, wraz z dłonią). Próbowałem to zrobić jointami i coś tam w miarę wychodziło, ale nie do końca (wszystko już usunąłem). Chciałem to zrobić tak: Ramię - statyczne Ręka1 - swobodna lewitacja, oddziaływuje na nią grawitacja Ręka2 - podąża za kursorem Umieszczam gify, które mogą nieco rozjaśnić mój tok myślenia (,bo niewielu ludzi potrafi go ogarnąć) LEGENDA: Ramię - czarne Ręka1 - zielona Ręka2 - niebieska Połączenia jointów - pomarańczowa PS: Wiem, że programista powinien potrafić logicznie myśleć, ale u mnie trochę z tym ciężko :| Próbowałem też trochę lengthdirami, ale wychodziło średnio. Bawiłem się jointami pierwszy raz w życiu, więc mogę trochę nie ogarniać.
  18. eh, no dobra :/ może i masz racje z tą licencją ale ta gra i tak nie ujrzy światła dziennego.
  19. Dzień dobry! Cześć! Ludzie pomocy :) Chcę umieścić wideo w grze, ale jak powszechnie wiadomo, gm:s nie oferuje takich przyjemności. Plik mp4 konwertowałem na .swf i nic to nie dało, błąd. Konwertowałem na .gif (rozmiar 9mb) i "out of memory" albo "gm:s przestał działać". No więc znalazłem niby fajny dodatek w markecie: O, kliknij mnie prosze :). Tylko pytanie, jak tego używać? Autor podał tylko komendy i to wszystko. Ktoś tego używał? Mam wersje PRO wraz z możliwością exportu do html'a :thumbsup:
  20. Chyba najbardziej zapadło mi w pamięć :D . Gdzieś to widziałem w przykładach i chyba zaczne tego używać, bo jak narazie, nie mam jakiś gigantycznych projektów. Dzięki za wyjaśnienia i pomoc, zawsze chciałem coś takiego zrobić i wkońcu mi się udało :P
  21. Magia, działa :) Szkoda tylko, że efekt uzyskałem poprzez losowe wstawianie liczb i funkcji, więc był to czysty przypadek, że mi się udało. Musze troche poczytać o tych lengthdirach. Tak z ciekawości, często się ich używa ? na przykład do czego ? Kod: GML draw_sprite(sEye,1,x+lengthdir_x(5,point_direction(self.x,self.y,mouse_x,mouse_y)),y+lengthdir_y(5,point_direction(self.x,self.y,mouse_x,mouse_y))) Efekt: Zastrzeżenia ? PS: Zapomniałbym podziękować ^^, a więc, dziękuje :P
  22. Witam. Chce zrobić oczy, które będą podążać za kursorem (myszką: mouse_x, mouse_y). Jak narazie wystarczy mi podpowiedź, jakie funkcje miałbym do tego użyć. Próbowałem z "move_towards" aby oczy podążały za myszką, oraz "place_meeting", aby oczy podążały za kursorem tylko wtedy kiedy dotykają głowy.
  23. Znacie moze jakieś darmowe programy do animacji szkieletowej. Chyba, ze Spine w wersji trial mozna uzywać legalnie tzn. Gdy wystawie swoją gre, nie będę miał problemy z prawem (wciąz się gubie z pojęciem "licencja komercyjna")
  24. Na moje, to musisz sprawdzić czy objekt istnieje zanim go stworzysz. Jeśli nie istnieje = stwórz, jeśli istnieje = nie twórz. Spróbuj z instance_exists(objekt), coś w stylu GML if !instance_exists(wino) then instance_create(wino) gdzie znak ! oznacza negacje.
  25. Dobra działa :3 . Dzięki za pomoc, jak zwykle :P. Przychodze tu od 3-4 lat, a forum o dziwo zawsze skłonne do pomocy :)
×
×
  • Dodaj nową pozycję...