-
Postów
1 970 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Dawidds
-
Nie :P sprite_set_alpha_from_sprite() wystarczy użyć raz, nawet w Game Start, i sprite już dla wszystkich obiektów będzie posiadał ustawiony kanał alpha. TO co wyżej, jedyna różnica może być w wydajności, choć i tak wydaje mi się, że sprite będzie wydajniejszy... a poza tym mniej roboty z tym będzie :P Dokładnie? Namaluj sobie jakiś kwadrat, w Step daj image_angle+=0.1, a w Create daj texture_set_interpolation(1). Sorry, ale po formacie jeszcze GM'a nie zainstalowałem ^_^ Ale chyba gdzieć pisałem mój AA na tym forum, zaraz poszukam... Edit: Mam :P https://forum.gmclan.org/index.php?showtopi...mp;#entry206489 Edit2: Tylko w Twoim przypadku nie mam "zwykłej" linii tworzonej dynamicznie, a własny sprite pioruna z ustawionym wcześniej kanałem alpha. A, i z originem na środku :P
-
To jest cały GM :) A tak serio - zamiast wywoływania kodu masę razy zrób jednego sprite'a, daj mu kanał alpha z innego sprite'a (w sumie to może na blend mode'ach było by wydajniejsze...? A nieważne :P), i maluj tą kreskę z odpowiednią skalą i odpowiednim image_angle, poprzedzone włączeniem GM'owej interpolacji (texture_set_interpolation(1)) - na dodatek AA będziesz miał :P Mam nadzieję, że wiesz, o co mi chodzi...
-
Pola Tekstowe
Dawidds odpowiedział(a) na pablo1517 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Żeby mu warna zdjęto...? ^_^ A co do przykładu - fajnie fajnie, ale nadal brakuje zaznaczania :P Liczę na kolejny konkurencyjny temat... :) -
Pole Tekstowe Bez Dll'a
Dawidds odpowiedział(a) na Pieter temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Trochę zbyt proste toto, daj chociaż zaznaczanie myszką/shiftem i będzie git ... :) Jak na razie, to 7/10 -
propa, co go tak bronisz :P ? Robił bijatykę, temat został zamknięty, robił Dzielnice, podobnie, i jakoś nie próbował wypowiadać się na ten temat :P :D
-
The Legends of Arkanoid Public Beta
Dawidds odpowiedział(a) na g-Enjoy temat w Dema gier i programów
A ja się czepie tego, czego już się czepiałem, czyli motion blura :P Może i gra jest dynamiczna, ale mimo wszystko nudzi... Co jeszcze? Mała kontrola nad kątem odbicia piłeczki, niezbyt cieszące bonusy (nawet nie patrzę, co dają, tylko zbieram, tak dużo ich jest...), no i ogólnie, gra zaczyna nudzić, nie da się tego wyjaśnić. Przynajmniej to już nie jest komercyjna gra, bo tak, to bym musiał wyśmiać. 7+/10... więcej nie dam. -
Albo bohatera nie ma w roomie.
-
A że tak zapytam... jak stoicie z serwerem...? Będzie trzeba dołączać przez Hamachi... :) ? A projekt - nie wiem, co tu oceniać. Podobny pomysł miał chyba każdy obecny na tym forum. No ale cóż, pozostaje życzyć Ci powodzenia... :P
-
Jeny, po prostu daję Kubie radę, iż to jest na dłuższą metę niewydajne - jakby tego nie wiedział. Niech sobie chłopka przeanalizuje plusy i minusy i sam stwierdzi, czy warto tego używać. Ty wskazałeś plusy (1 - wygoda), ja musiałem wskazać minus (też jeden - wydajność (choć to akurat wina GM'a)). Ja nie lubię rozpoczynać "flamewarów" - to wy lubicie je znajdować w moich postach... :) PS: Tymon, fajny opis :P
-
Pental - ty wiesz, że to będzie z 10x mneij wydajne, niż po prostu na elseif-ach...? Wygoda to nie wszystko...
-
Ehhh... Nie wiem do końca, co masz na myśli przez płynność. Do długości płynności (że tak to nazwę :P) zmieniającej się dynamicznie najlepiej pasuje najlepiej chyba właśnie dzielenie wartości... ;P Przyjrzyj się np. takiemu kodowi: GML mx = max(min(mouse_x, view_xview[0]+ 800), view_xview[0]); //Nie patrz na ten kod - to jest po prostu pozycja myszki. Ale aby nie można było się rozglądać tak daleko, aby nie było widać na ekranie gracza - zabezpieczam pozycję myszki przed wyjściem poza obszar view'a. my = max(min(mouse_y, view_yview[0]+600), view_yview[0]); if(1) //O lol, nie patrz na to :P tu kiedyś był kod, ale w czasie pisania usunąłem warunek, a później nie chciało mi się tabulatorów cofać xd... { xx = (obj_player.x+mx)/2; //To jest CEL (do tego ma się ekran płynnie przesuwać, to jest jakby "koniec" ruchu) yy = (obj_player.y+my)/2; //To samo, tyle, że y if(xx < x){ xx -= (xx-x)/1.1; } //Tego wyjaśniać mi się nie chce - musisz sam przeanalizować. Od wartości 1.1 zależy płynność ruchu. if(xx > x){ xx += (x-xx)/1.1; } if(yy < y){ yy -= (yy-y)/1.1; } if(yy > y){ yy += (y-yy)/1.1; } x = xx; //zamiast x powinno być view_xview[0], ale, aby kod nie był zbyt długi dałem to jako x. y = yy; } //(object following jest ustawiony na obj_camera) To jest kod na przesuwanie się viewa zależnie od pozycji myszki - żeby w widoku topdown można się było jakoś "rozglądać". Takie proste, a jak umila życie... przy okazji jest tam płynność ruchu. Nie będę ci pisał tego odrazu pod direction - pomyśl trochę sam... :) Edit: Co się stało z kolorowaniem składni... Oo
-
Albo najlepiej daj wersję bez muzyki... ^_^ Ja np. i tak nie słucham muzyki w grach (chyba, że gra wciągająca... ;P)
-
Rapidshare won... :F Myśl też o innych ;(
-
A umiesz...? Bo jeśli to ma działać na zasadzie, że gra będzie lepsza, jeśli będzie napisana w C++, to ja dziękuję... Na razie pokazałeś nam tylko mizerne demko, nie świadczące zbyt dobrze o Twoich umiejętnościach, a tu już chcesz przepisywać grę...? I wcale Ci ie ubliżam - po prostu, jeśli wolisz, rób grę w GM'ie... :) Samo użycie C++ nie świadczy o tym, że gra będzie super.
-
Jeny... GML //angle_difference(dir1, dir2); return (((argument0 - argument1) mod 360) + 360+180) mod 360) - 180; //Step: if(angle_difference(my_dir, cel_dir) < 0){ my_dir += 1; } else if(angle_difference(my_dir, cel_dir) > 0){ my_dir -= 1; } Edit: Czasem warto przed jakąkolwiek operacją na kątach dać zwykłe while(dir < 0){ dir += 360; } ...bo czasami się błędy robią :P
-
Najprościej? 1. Robisz sobie funkcję angle_difference() (to chyba umiesz zrobić...?) 2. I porównujesz - jeśli po dodaniu do zmiennnej dir dowolnej wartości (niech będzie 1, cho w rzeczywistości pewniej jest dać 0.000001 :P) jest ona bliżej celu ( if(angle_difference(dir, cel_dir)+1 < angle_difference(dir, cel_dir)) ) (czyli różnica od mojego dira do celu jest mniejsza, niż normalnie), to znaczy, iż muszę do zmiennej dodawać wartość. Jeśli nie jest większa, muszę odejmować. To najprostsze rozwiązanie (inaczej - najprostsze do zrozumienia) - mogę tu zarzucić kodem, ale chcę, abyś coś zrozumiał... ;P edit: Lol, co ja gadam... ;P Wystarczy porównać, czy różnica kątów jest mneijsza, czy większa od 0... -.-' Coś mi się pokiełbasiło :D
-
Stoper
Dawidds odpowiedział(a) na I am vader temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
I chcesz, żeby Ci za to zdjęto warna... OO ? To jest po prostu tandetny przykład mierzenia czasu. Wybacz, ale taka prawda... Po 1. To co się stanie, jeśli fps spadnie do powiedzmy 50, bo gra ma wysokie wymagania...? Po kilku sekundach będziemy mieli przekładanie rzędu 1s. Po 2. To dlaczego to działa na 60fps...? A co, jeśli jakiś user chce, żeby jego gra działała na 50 fps...? A na zakończenie dodam, iż w GM'ie liczba klatek równa room_speed wcale nie oznacza sekundy - dlaczego - tego nawet Chuck Norris nie wie... (napisz se "normalny" stoper oraz taki wykorzystujący jako podstawę czasu GM'owy fps - zostaw kompa włączonego na godzinę i porównaj wyniki (znaczy w jednej aplikacji)...) -
Kuba, myślałem, że "lepszy" jesteś :P Najprostszym rozwiązaniem jest nadanie obiektowi maski o długości równej jego prędkości. A z wykorzystaniem collision_line(): GML if(collision_line(xprevious, yprevious, x, y, obj, <jakieś inne argumenty - bodajże precision i notme - nie pamiętam dokładnie :P>)){ //koliduje } Edit: A najlepszym i na dłuższą metę najprostszym rozwiązaniem jest napisanie własnej grawitacji/vspeed/hspeed/direction/speed - takiego, co automatycznie się w pętli zatrzyma na pozycji przed solidem... :)
-
Apokalipsa... global.nOboje...?
-
Ale po cholerę to? Jak ktoś korzysta z GM6 to ma pecha, będzie musiał więcej szukać, aby znaleźć coś dla siebie - trzeba było korzystać z GM7. Choć z drugiej strony - nikomu to nie będzie przeszkadzać, a jeśli ma komuś pomóc, to dobrze... :P Chć administracji nie będzie się i tak chciało tego wprowadzać... :)
-
Przepraszam że się wtrącę, ale czemu, do cholery, on za to warna nie dostał? Arogant zakichany... Co do gry - niestety, ale odnoszę wrażenie, że jesteś zbyt... nazwijmy to, niedoświadczony, aby robić taką grę. Albo dostaniesz od kogoś super-grafikę, albo Twoja gra będzie... no, niezbyt popularna ;/ Bo naprawdę, choćbyś zrobił super fizykę aut, misje, fabułę, to z taką grafiką możesz co najwyżej... a nie wiem :P A ty drobiu - zobaczymy, jak ci pójdzie fizyka aut. Mam dziwne przeczucie, że albo wykorzystasz gotowy przykład, albo auta nie będą miały fizyki... (mam tu na myśli kolizje) Ehkem... BO MASZ KOMPA ZRĄYPANEGO
-
OO' if(warunek && alarm[n] < 0) { akcja alarm[n] = x; }
-
Przykład czytania kodu GML z pliku txt
Dawidds odpowiedział(a) na Skovv temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Abo while(2) :) -
Jeny, i to i to naraz, po co komplikować sobie życie :P ? Pograłem trochę dłużej, było troszkę błędów ale już nie chce mi się wymieniać. Lawa jest fajna, ale jeśli ktoś nie chce zdobywać diamentów banalnie prosta. E, nudzi mi się, to zaraz zrobię Ci jakiś prosty system rzucania kamieniami... :P
-
Mało dynamiczna, bezcelowa, z badziewnym systemem rzucania kamieniami, niewygodnym sterowaniem (ja nie toleruje strzałem w grach, w których trzeba używać myszki :P), a wszystko wykańcza fakt, że jak raz niechcąco dotknąłem od dołu znikającej platformy to musiałem zaliczać całą grę od nowa. A i do mojej listy można jeszcze dodać zrąbany system kolizji... :P Jutro spróbuję jeszcze trochę pograć - z włączonym debug mode, co mi daje możliwość zrestartowania roomu... :)