-
Postów
1 472 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Muuuuczek567
-
Lol, to się nie sprawdzi do efektu, który MB22 chce uzyskać. Przede wszystkim: przyspieszenie zależy od prędkości (opór powietrza), mocy, aerodynamiki i masy pojazdu. Prędkość maksymalna jest ograniczona jedynie przez opór powietrza i obroty pojazdu. Zmiana biegu na wyższy spowoduje zmniejszenie przyspieszenia, ale wzrost prędkości maksymalnej. Siła hamowania zależy od mocy hamulców i od prędkości - im szybciej jedziesz, tym mocniej będziesz hamował (opór powietrza ma bardzo dużo do gadania). Żeby jechać do tyłu, trzeba też zaprogramować bieg wsteczny, co jest trudniejsze od jazdy do przodu - dla image_angle prędkość nie jest ujemna. Będziesz miał sporo roboty, ale z tymi wskazówkami zrobisz realistyczny model jazdy. :)
-
Jeśli masz taką możliwość, użyj systemu cząsteczkowego. Jeśli nie, to daj eventy Draw obu obiektów.
-
Musi być. Prześlij mi projekt na PW, to znajdę błąd. Chyba, że podejrzewasz jakiś kod, to podaj go tu na forum.
-
No problemo, amigo. W Create dodaj następującą linijkę: GML czy_h = 0 A w Animation End: GML if(sprite_index = anim2)&&(czy_h) { sprite_index = anim3; czy_h = 0} W naciśnięciu litery H: GML if(sprite_index = anim2) czy_h = 1 W końcu naciśnięcie G: GML if(sprite_index = anim1) { sprite_index = anim2 } W klamrach możesz też pododawać swoje image_speed, image_index itd.
-
Z grywalnością jest lepiej niż mogłem się spodziewać! Przyszedł mój kolega i zobaczył grę, a po 2h zadzwonił jego tata, żeby wracał do domu - był w dniu 50. Przez 2h nie oderwał się od monitora! To o czymś świadczy - jest to jedna z niewielu gier, które mogą odnieść sukces poza GMClanem. Ale żeby nie było - wychwyciłem buga: Gdy chcę najechać na ikonkę tego globu ziemskiego, wtedy wyskakuje mi ten błąd. Czcionka też fajniejsza niż na screenie.
-
No, teraz działa. Gra bardzo wciąga, a więcej powiem, jak ją przejdę.
-
Nie działa. Po włączeniu Launchera tworzy się plik current, plik version i error_log z pierwszym błędem. Po naciśnięciu 'Graj' Launcher wyłącza się, a error_log jest uzupełniany o drugi błąd.
-
No bardzo mi przykro, ale Launcher powinien chyba sprawdzać, czy w folderze znajduje się plik exe. Ten nic nie pobiera, bo sądzi, że gra jest zaktualizowana.
-
Eee... coś jest nie tak, bo Turris nie chce mi się włączyć. Gdzie jest Turris.exe?
-
Na razie nie chce mi się pobierać, może później (jutro, za 3 dni, za tydzień?). Przejdę więc do tego, co widać na screenie. Łączenia wież paskudne. Wieże cieniowane niezależnie od źródła światła. Same wieże też cudem piękności nie są. Cienia (choćby szczątkowego) brak. Cieniowania może bym nie zrobił, wyglądu wież nie zmieniałbym, jeśli styl grafiki tego wymaga, ale łączeń i braku choćby ciemnienia terenu pod wieżą nie daruję. Ikony ładne, czcionka pasująca, drzewka prześliczne (ale znowu - brak cienia). Z kolei ludziki niezgrabne, a śnieg bierze się znikąd. Grafikę (ze screena w 1st poście (poscie? postcie?)) oceniam na 3+, a grę ocenię po zagraniu.
-
Przeszukiwanie pliku txt
Muuuuczek567 odpowiedział(a) na Muchaszewski temat w Pytania zaawansowanych
GML //wyrazy w słowniku powinny byc oddzielane spacja var a,plik,linia,wyraz,znak,szukaj,dlugosc,lit1,lit2; a = ds_list_create() plik = file_text_open_read('tekst.txt') //tekst.txt - plik przeszukiwany linia = '' wyraz = '' znak = '' szukaj = 0 dlugosc = 6 //dlugosc wyrazu lit1 = 'K' //lit1 lit2 = 'k' //lit2 while(!file_text_eof(plik)) { linia = file_text_read_string(plik) file_text_readln(plik) for(i = 1; i <= string_length(linia)+1; i += 1) { znak = string_char_at(linia,i) if(znak = lit1) { szukaj = 1 wyraz = lit1 } else if(znak = lit2)&&(szukaj = 1) { if(string_char_at(linia,i+1) = ' ')||(!ord(string_char_at(linia,i+1))) { wyraz += lit2 if(string_length(wyraz) = dlugosc) ds_list_add(a,wyraz) wyraz = '' } } else if(znak != ' ')&&(znak != ' ') { wyraz += znak } else { wyraz = '' szukaj = 0 } } linia = '' znak = '' wyraz = '' } file_text_close(plik) for(i = 0; i < ds_list_size(a); i += 1) znak += ds_list_find_value(a,i)+' ' show_message(znak) Prawda, jakie to proste? :D -
Pamiętam, że Almora 0.8 była zapowiadana na wrzesień - ale ubiegłego roku... Jeśli data rzeczywistego wydania gry jest zgodna z pierwotnie planowaną datą wydania gry - gra jest na 90% do kitu.
-
Po szeroko zakrojonej akcji medialnej dochodzę do wniosku, że największe szanse na kontynuowanie projektu ma ta gra a la Space Invaders. Pomyślałem jednak, iż umieszczenie linku w shoutboksie to trochę za mało :) Dlatego zrobiłem ten temat. Oceńcie każdą z gier, a ta najlepsza będzie kontynuowana. Pozostałe projekty trafią do zamrażarki lub mogę je komuś przekazać. Link do gier Info nt. gier znajdziecie w pliku, a klawiszologię każdej gry - po naciśnięciu F1. Najlepsza gra dostanie osobny temat. To chyba tyle. Wiem, że nie ma szablonu, ale tak na dobrą sprawę, to te gry nie mają nawet tytułów, a tutaj dopiero wybiorę tę, którą będę robił dalej - w osobnym temacie. Jak będzie trzeba, to dam screena każdej gry.
-
O ile wiem, starali się zrobić rozpoznawanie głosu w EndWarze i w HAWX, ale nie najlepiej im to wyszło (a to tylko parę wyrazów, co by było, gdyby miał rozpoznawać zdania). Biblioteka różnych efektów graficznych (blur, motion blur, hair particles)?
-
Na 3D się nie znam, ale wg mnie, point_direction powinno działać. Czy model obraca się 'skokowo', czy płynnie, ale obrócony np. 180 stopni od kierunku do punktu? Może być też zależne od tego, od jakich punktów używasz funkcji point_direction.
-
Po użyciu global.back1 = background_add(ścieżka obrazka+rozszerzenia,pozostałe argumenty) w Create lub w Creation Code, możesz używać zmiennej global.back1 do dowolnej funkcji itp., ktora dotyczy backgrounda, np. draw_background(global.back1,x,y) lub background_index[0]=global.back1.
-
Możesz dać to w Create albo w Creation Code rooma. Potem wszystkie funkcje z backgroundami działają z global.back1.
-
global.back1 = background_add(ścieżka obrazka+rozszerzenia,pozostałe argumenty) Potem wszelkie funkcje itp. z backgroundem działają, jeśli jako id podasz global.back1. Np. background_index[0]=global.back1
-
Nie... Myślę, że trzeba zrobić trzeci view i surface'a, który kopiowałby ten obszar ekranu, który chcesz (czyli ten prostokąt). Teraz wystarczy tylko rysować surface'a w tym 3-cim viewie. Uwaga, będzie to dosyć powolne.
-
Też się przyznałeś :D No ale nie podaliby przecież fałszywych wyników...
-
Nieprawda.
-
Zapewne do akcji wkroczy zaraz admin, ale póki co, dodam parę słów od siebie. Pewnie nigdy nie dowiemy się, w ilu wymiarach żyjemy. Nasze oczy są ograniczone do patrzenia w 3D, Einstein - skądinąd geniusz - dodał wymiar czasu. Czy obraz, który widzimy, to tylko wrażenie? Być może. Nie widzimy samych obiektów, tylko odbite od nich światło. Są źródła, z których można się dowiedzieć, że niedługo powstaną urządzenia zdolne oszukać wzrok, np. tworząc obiekt w miejscu, w którym go normalnie nie ma, poprzez zakrzywianie cząstek elementarnych w tym obszarze. Już teraz prowadzone są badania nad 'niewidzialnością' przez stosowanie materiałów lewoskrętnych potrafiących zmienić bieg fotonów. Obraz trójwymiarowy widzimy dzięki temu, że mamy dwoje oczu, a nasz mózg potrafi dość dokładnie interpretować wynik obserwacji. Niestety, jak wynika z badań, ponad 12% badanych Anglików nie widzi głębi... @ALT - twój Szpan przy tym to kicha. E: rozmowy o 3D można spokojnie przenieść do tematu na Valhalli, nawet taki jeden był niedawno. Taki apel do admina/moda.
-
Wydajność i Optymalizacja w grach
Muuuuczek567 odpowiedział(a) na krzysio664 temat w Pytania zaawansowanych
Na pierwszy ogień idzie dezaktywacja/aktywacja obiektów. Można niszczyć obiekty, gdy wyjdą poza room. Rysowanie tekstów można zostawić surface'om, jeśli wartości wyświetlanych tekstów nie zmieniają się często. No i tak jak napisał Moe, zwięzłość kodu. -
Pomijając już, że rekurencja jest o wiele wolniejsza i że w pętli można po prostu sprawdzić, czy przypadkiem nie ma w linii prostej od bohatera przeszkody. Aha, i zmieniam kod: GML if(zaznaczony) { for(i = -2.5; i <= 2.5; i += 1) for(j = -2.5; j <= 2.5; j += 1) if(!collision_line(x,y,i*32,j*16,przeszkoda,1,1)) draw_sprite(sprite18,0,x-i*32,y-j*16) for(i = -2; i <= 2; i += 1) for(j = -2; j <= 2; j += 1) if(!collision_line(x,y,i*32,j*16,przeszkoda,1,1)) draw_sprite(sprite18,0,x-i*32,y-j*16) } To nie jest trudne.