-
Postów
1 970 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Dawidds
-
Dajesz sobie jakiś kodzik typu: GML vspd += grav; hspd = min(maxhspd, max(hspd, minhspd)); vspd = min(maxvspd, max(vspd, minvspd)); if(vspd > 0) { vspd_round += vspd-floor(vspd); if(vspd_round >= 1) { repeat(floor(vspd)+1) { if(place_free(x, y+1)){ y += 1; }else{ vspd = 0; } } vspd_round -= 1; } else { repeat(floor(vspd)) { if(place_free(x, y+1)){ y += 1; }else{ vspd = 0; } } } } else if(vspd < 0) { vspd_round += abs(vspd)-floor(abs(vspd)); if(vspd_round >= 1) { repeat(floor(abs(vspd))+1) { if(place_free(x, y-1)){ y -= 1; }else{ vspd = 0; } } vspd_round -= 1; } else { repeat(floor(abs(vspd))) { if(place_free(x, y-1)){ y -= 1; }else{ vspd = 0; } } } } if(hspd > 0) { hspd_round += hspd-floor(hspd); if(hspd_round >= 1) { repeat(floor(hspd)+1) { if(place_free(x+1, y)){ x += 1; }else{ hspd = 0; } } hspd_round -= 1; } else { repeat(floor(hspd)) { if(place_free(x+1, y)){ x += 1; }else{ hspd = 0; } } } } else if(hspd < 0) { hspd_round += abs(hspd)-floor(abs(hspd)); if(hspd_round >= 1) { repeat(floor(abs(hspd))+1) { if(place_free(x-1, y)){ x -= 1; }else{ hspd = 0; } } hspd_round -= 1; } else { repeat(floor(abs(hspd))) { if(place_free(x-1, y)){ x -= 1; }else{ hspd = 0; } } } } W Create zadeklaruj odpowiednie zmienne. Ogólny bajerek jest taki, że te jeśli sobie ustawisz np. hspd (odpowiednik hspeed) na 100, to postać zatrzyma się i tak co do piksela na przeszkodzie. Inaczej mówiąc - nawet, jeśli postać cały czas będzie miała np. vspd równy 10, to i tak zatrzyma się na "podłodze". No. Zrobienie ruchu platformowego na tym to aż ustawienie grav, i manipulacja hspd/vspd, dla poruszania się i skoków. PS: Wiem, że kod zarypiście niezoptymalizowany i długi - mam go na kompie od chyba 2 lat, ale jakoś nie chce mi się go poprawiać... xd Ed: Jakbyś się nie skapnął - to na końcu Stepa albo w End Stepie, jak Ci bardziej pasuje.
-
To ściągnij portabla.
-
Nietypowe ładowanie
Dawidds odpowiedział(a) na Matyxon temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Jeezuu. Ja nie mówię, że nie da rady, tylko mówię, że mniejsza ilość amunicji będzie się "przeładowywać" szybciej. A to by było trochę bez sensu. -
Nietypowe ładowanie
Dawidds odpowiedział(a) na Matyxon temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Co w tym jest fajnego :x ? Nietypowy, lol. Zrobienie własnego "efektu" przeładowywania nie nazywaj czymś "nietypowym" od razu... =| a dodatek to jest bez sensu, otóż jeśli chcielibyśmy zrobić przeładowywanie "na życzenie" (np. po wciśnięciu klawisza R), to przeładowanie magazynka po stracie jednego strzału trwałoby 30 razy (czy ile tych naboi tam dałeś) krócej niż przeładowanie magazynku po stracie wszystkich strzałów... :| Pała. -
Falowanie na moim iWave'ie, lub, jak nie przeszkadza ci parę parę plików więcej w folderze z grą (dll), to na PsichiXowym falowaniu (czytaj temat na arenie "Contest of Graphical Effects"). Z tym, że on chyba źródła nie dał... :P A rozmycie, poszukaj na gmc (tym z yoyogames :P). Stawiam, ze wiele tego tam jest.
-
One versus One Volleyball: New Edition
Dawidds odpowiedział(a) na RaV Royal temat w Gotowe gry i programy
Fizyka do pupy :[ Pograj dłuższą chwilę w Hairy Harry, a potem w Twoją grę. Ja grając w Hairy Harrego dość długo (jak się nudze to se pykam z kompem/ze sobą), a jak jest jakiś chętny do gry kumpel to z nim. I jakoś po chwili grania w tą grę było mi jakoś... głupio... :/ No i ogólnie, gra jakoś mało dynamiczna, i chodzi głównie o to, aby po prostu przebić piłkę na pole przeciwnika i liczyć, że nie odbije :x A skoki są za niskie. I na dodatek nie wiem po co dałeś blokadę pójścia za planszę - jak się ma pecha, to piłka się tak odbije, że prez to już nie da się jej odbić na pole przeciwnika. Ed: 3/30 -
Eh, bumpmapping bidny jest =d Zrób, żeby był rysowany "od środka" (kurna, wiesz, o co mi chodzi :P (to, co w moim wyszło niewydajne)). Bo taki, gdzie światło pada z jednej strony jest trochę bez sensu :/
-
A ja dodam od siebie, że with w przypadku podania obiektu a nie instancji wykonuje się tyle razy, ile jest aktywnych instancji danego typu w roomie, czyli jeśli masz w roomie 100 obj_cegla, to kod w nim wykona się tyle razy, ile jest tych cegiełek. Przykład zastosowania: GML global.count = 0; //Ustawiam globalna zmienna count na 0 with(obj_cgela) { global.count += 1; //Dodaje do zmiennej 1 - a skoro kod ten wykona się tyle razy, ile jest cegielek w roomie, wiec w praktyce //zmienne ta bedzie tak duza, ile owych cegiel jest. { show_message("Cegielek w roomie jest: "+string(global.count)); Oczywiście, ten od jest czysto abstrakcyjny, aby łatwiej Ci było zrozumieć with - nie korzystaj z niego do liczenia instancji :P Ed: :[
-
"create random" Jak zrobić 5 obiektów?
Dawidds odpowiedział(a) na WojtekO temat w Pytania początkujących
Źle. Wtedy 1 i ostatni obiekt mają 2x mniejsze szanse na pojawienie się niż te ze środka. A jak już się bawimy tak, to jak dla mnie lepiej: GML list = ds_list_create(); //Tworzymy liste obiektow, ktore mozna wylosowac ds_list_add(list, obiekt1); //Dodajemy do listy wsyztskie potrzebne nam obiekty ds_list_add(list, obiekt2); ds_list_add(list, obiekt3); ds_list_add(list, obiektn); ds_list_shuffle(list); //"przetasowujemy" liste - wszystkie pozycje w niej beda sie znajdowaly na losowych pozycjach instance_create(x, y, ds_list_find_value(list, 0)); //ds_list_find_value(list, 0) - ta funckja pobieramy pierwsza pozycje z naszej listy obiektow (a, ze jest ona juz przetasowana, to w praktyce pobieramy losowa jej pozycje)</span></span> Lepiej normalnie losując, ale tak (wydaje mi się przynajmniej, lol) łatwiej będzie to zrozumieć Wojtkowi... ^_^ A i nauczy się czegoś przy okazji (tzn. mam nadzieję =d) Ed: I jeszcze jedna wersja :P -
"create random" Jak zrobić 5 obiektów?
Dawidds odpowiedział(a) na WojtekO temat w Pytania początkujących
Najprościej: instance_create(x, y, choose(obiekt1, obiekt2, obiekt3, ...)); -
Jeśli prywatne w sensie "szyfruj zawartość aby zabezpieczyć dane" to masz pecha ^_^
-
Mi efekty PsichiXa działają. Najbardziej kozacki black&white :D No, i cartoon. Gaussblur jakiś głupi jedynie :P Efekt do pupy, a fpsy straszne (w porównaniu do reszty znaczy sie). I nie wiem czy to tylko ja, ale na wszystkich efektach raz na ~5 sekund ekran mi miga, na czarno albo na biało O.o
-
Najprościej - w create bloczku twórz instancję innego obiektu, która będzie miała mniejszy depth i będzie malowała daszek. Bądź inna opcja - jedna instancja obj_daszek, która będzie miała mniejszy depth i będzie malowała wszystkie daszki.
-
A ja sądzę to co Flaque, skopałeś potencjał :/ 6/10
-
Pieter, ja bym się słownictwem bardziej przejął... :x Bo żeby nazywać promień "linią koła" czy "tą taką kreską co wychodzi ze środka", a obwód "pozaginaną kreską" czy "kreską od koła", to ja nie wiem... :/ I on chyba chce obliczyć tylko ten kawałek obwodu, (czyli 2*pi*100)/8 = 25*pi Hmm... chyba że mówiąc "każda kreska" ma na myśli średnicę...
-
A co Ci w Googlowym nie pasuje :/ ?
-
Na razie kontynuuję serię przekształceń obrazków... ^_^ Autor: Dawidds Efekt: Spirala na obrazku (xd) Opis: Surfejsy i malowanie ich części. Ciekawy efekt, można go zastosować jako efekt przejścia, wejście bohatera w jakiś portal czy cuś :P Oczywiście, w grze było by to szybsze - tu dałem powolne, aby można było sobie popatrzeć na to :D Używa: Only GML Download: http://eportal.boo.pl/upload/file.php?id=spiral.exe Screeny: 1
-
number = get_integer("Podaj liczbe", 0); show_message(string(number)+"*2 = "+string(number*2)); Na gmowych okienkach.
-
iWave
Dawidds odpowiedział(a) na Dawidds temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Nie, to jest mulaste, wiem o tym :P Ja w wersji z "poprawką Nobodiego" (co się czepiłeś, że prawe i lewe krawędzie są brzydkie) mam 120, bez niej - 200. Ale obawiam się, że nie wymyślę tu żadnej cudownej metody optymalizacji :/ -
Nie zauważyłem tematu :P Narazie na pewno: Autor: Dawidds (po kija to pole :P ?) Efekt: Falowanie (?) Opis: Falowanie a'la woda :D Użyte jedynie GMowe surfejsy oraz draw_sprite_part() Używa: Only GML Download: http://eportal.boo.pl/upload/file.php?id=iwave_demo.exe Screeny: 1 2 Mają o być tylko efekty polegające na przekształceniu obrazka, czy mogą być też jakieś inne?
-
iWave
Dawidds odpowiedział(a) na Dawidds temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Poprawka do frosta: http://eportal.boo.pl/upload/file.php?id=frostv2.gmk Teraz frost nie jest losowany (czyli nie "rusza się", jest statyczny) :D Jedząc obiad wpadłem na to, że przecież nie muszę tworzyć mapy przesunięcia (tak se to nazwałem :x) dla całego ekranu - wystarczy stworzyć mały fragment, i powielać o dla innych części ekranu. Ponadto, jeśli zmodyfikujemy mapę przesunięcia, żeby nie byłą losowa, a podliczana według jakiegoś naszego algorytmu, możemy uzyskać ciekawe efekty typu: http://eportal.boo.pl/upload/file.php?id=6.png Cóż, teraz tylko trzeba wymyślić jakiś cudowny sposób optymalizacji tego... :D -
+2 krodzik, +1 Jypy. Gdybym mógł dałbym jeszcze jeden propie :P Korodzik po prostu najbardziej zaskoczył :P
-
iWave
Dawidds odpowiedział(a) na Dawidds temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Górne i dolne krawędzie są takie, jak trzeba :P Jak już się czepiasz szczegółów: GML //frost(surf) surface_set_target(sfrost); draw_surface(argument0, 0, 0); //202, 248 rndragex = 5; rndragey = 3; rndragex2 = 1; xx = 0; repeat(799) { draw_surface_part(sfrost, xx, 0, 1, 600, xx, 0-rndragex+random(2*rndragex)); xx += 1; } yy = 0; repeat(599) { draw_surface_part(sfrost, 0, yy, 800, 1, 0-rndragey+random(2*rndragey), yy); yy += 1; } xx = 0; repeat(799) { draw_surface_part(sfrost, xx, 0, 1, 600, xx, 0-rndragex2+random(2*rndragex2)); xx += 1; } surface_reset_target(); draw_surface(sfrost, 0, 0); Masz. Ale kosztem wydajności, która zresztą i tak jest już mizerna :P -
iWave
Dawidds odpowiedział(a) na Dawidds temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
No lol, przecież nie walnę tam filmiku :P btw, a gdzie ten temat : d ? -
iWave
Dawidds odpowiedział(a) na Dawidds temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Wczoraj przez to zasnąłem o 1 ;[ (bo myślałem nad tym, lol) A wybrałem i tak najprostszy sposób, który mi do głowy wpadł :D http://eportal.boo.pl/upload/file.php?id=frost.gmk Stałego przekształcenia (no, żeby frost nie zmieniał się co stepa, bo to wygląda głupio) nie chce mi się robić - nie wiem, ile gm by zapisywał tablicę dwuwymiarową 800x600 :D A innej możliwości zrobienia, żeby to było w gołym gmie chyba nie ma. Najlepszy efekt byłby, gdyby przejechać to pętlą nie dwa a trzy razy - teraz prawe i lewe krawędzie nie są do końca sfrostowane, ale powiedzmy umownie, że nie widać tego aż tak bardzo :P Ed: O kurde, robi się coraz ciekawiej :D Mogę wykorzystywać grafiki, tak :P ?