Filar Społeczności Ranmus Opublikowano 5 Sierpnia 2005 Filar Społeczności Udostępnij Opublikowano 5 Sierpnia 2005 Oj ludzie, ludzie. Rozstrzygnę ten spór. :) CREATE paletki: ms=5; //maksymalna szybkosc paletki END STEP paletki: if (pilka.direction>180) x+=min(max(abs(pilka.hspeed)/2,ms),abs(x-pilka.x))*sign(pilka.x-x); A teraz wersja z poślizgiem: CREATE paletki: ms=5; //maksymalna szybkosc paletki friction=0.1; END STEP paletki: if (pilka.direction>180) hspeed=min(max(abs(pilka.hspeed)/2,ms),abs(x-pilka.x))*sign(pilka.x-x); Kodu tymona nie mam zamiaru poprawiac, bo za duzy i jakos nie dziala. Natomiast kod bartowiszka pod wzgledem optymalizacji jest tragiczny. Powinien wygladac tak: if ( pilka.direction>180 ) { if ( pilka.x>x ) { x+=min(ai,pilka.x-x); } else { x-=min(ai,x-pilka.x); } } Efekt ten sam. To byl wlasnie kurs ZOPTYMALIZOWANEGO pisania w GML. :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bartoszwitek Opublikowano 5 Sierpnia 2005 Udostępnij Opublikowano 5 Sierpnia 2005 Pod względem kodu wygrywa Ranma_man... :P Kodu tymona nie mam zamiaru poprawiac, bo za duzy i jakos nie dziala. Natomiast kod bartowiszka pod wzgledem optymalizacji jest tragiczny. Czyli mój kod był lepszy... :D EDIT A tak przy okazji, to czy mógłbyś Ranma_man'ie wytłumaczyć funkcje użyte w twoich skryptach? Najbardziej chodzi mi tu o: min, max, abs i sign. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 6 Sierpnia 2005 Autor Udostępnij Opublikowano 6 Sierpnia 2005 nie wiem jak zrobić po zbiciu wszystkich klocków restart gry i wyskoczenie tablicy wyników. próbowałem coś z tym zrobić ale jakoś nie wychodziło. prosze o pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bartoszwitek Opublikowano 6 Sierpnia 2005 Udostępnij Opublikowano 6 Sierpnia 2005 Destroy klocka: if (instance_number (klocek)=1) { highscore_show(score); game_restart(); } Pozdro! :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 6 Sierpnia 2005 Autor Udostępnij Opublikowano 6 Sierpnia 2005 tak ale ten numer podziała tylko na jednego klocka ja mam ich więcej Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 6 Sierpnia 2005 Autor Udostępnij Opublikowano 6 Sierpnia 2005 if instance_number(object42)=0 and instance_number(object43)=0 and instance_number(object44)=0 and instance_number(object45)=0 game_end zrobiłem taki przykład ale coś nie wchodzi nie wiem gdzie zrobiłem błąd Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 6 Sierpnia 2005 Filar Społeczności Udostępnij Opublikowano 6 Sierpnia 2005 Tak się nie robi. Utwórz nowy obiekt, którego nie będziesz wstawiał na planszę, nawet nie musi mieć sprite'a. Nazwij go "klocki". Teraz wszystkim typom klockow, ktore maja byc wliczane, wybierz parent "klocki". Teraz w instance_number daj "klocki". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bartoszwitek Opublikowano 6 Sierpnia 2005 Udostępnij Opublikowano 6 Sierpnia 2005 Daj ten kod w End Step innego obiektu: if instance_number(klocek1)=0 && instance_number(klocek2)=0 && instance_number(klocek3)=0 && instance_number(klocek4)=0 { game_end(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 6 Sierpnia 2005 Filar Społeczności Udostępnij Opublikowano 6 Sierpnia 2005 Wytłumaczę co robi ta linijka: if (pilka.direction>180) x+=min(max(abs(pilka.hspeed)/2,ms),abs(x-pilka.x))*sign(pilka.x-x); ms to maksymalna szybkosc, pilka.hspeed to pozioma szybkosc pilki (pozycja x zostaje zawsze przesunieta o wartosc hspeed). Dziele ja na 2, zeby paletka miala jakies spowolnienie wzgledem pilki. Funkcja abs sluzy do pobierania wartosci absolutnej, poniewaz jezeli pilka leciala by w lewo z szybkoscia 5, to jej hspeed = -5. Ten minus przeszkadza w tym etapie w wyliczeniach, bo on tylko oznacza kierunek ruchu w lewo, a sila to 5. Funkcja max wybiera maksymalna liczbe ze wszystkich argumentow. W tym wypadku wybieram albo wyliczona szybkosc paletki albo maksymalna szybkosc, poniewaz jezeli ta pierwsza wartosc jest mniejsza od mozliwosci "biegania" paletki, to musze wybrac ms. Zalozmy, ze juz wybralem szybkosc poruszania sie paletki w poziome. Teraz czas sprawdzic czy przypadkiem liczba pikseli, o ktora zostanie przesunieta paletka nie jest wieksza niz odleglosc pozioma miedzy pileczka i paletka. Jesli by byla za duza, to paletka by wyprzedzila pileczke, potem poleciala w odwrotnym kierunku, potem znowu na odwrot. Chodzi o zapobiezenie drganiu. Posluzylem sie funkcja min, ktora dziala analogicznie jak max, tylko z argumentow wybiera najmniejsza liczbe. Jedna z nich jest nasza wyliczona szybkosc paletki, a drugim argumentem jest wlasnie pozioma odlegosc miedzy interesujacymi nas obiektami. Dzieki temu jezeli paletka jest za szybka, skrypt wybierze maksymalna mozliwa odleglosc do przesuniecia tak by paletka nie wyprzedzila pileczki. W ten oto sposob mamy juz wyliczona odlegosc do przesuniecia paletki. Tylko nie wiemy w ktora strone. Zamiast posluzyc sie warunkiem if, cala liczbe mnozymy przez sign(pilka.x-x). Sign zwraca znak. Jezeli argument jest mniejszy od 0, to zwracane jest -1, jezeli >0 to 1, a jezeli =0 to zwraca 0. W argumencie widzimy, ze odejmuje x paletki od x pilki. Jezeli pilka jest na prawo od paletki, to sign zwroci 1, jezeli pilka jest na lewo od paletki, to sign zwroci -1. Czyli, jezeli pilka jest na lewo od paletki, to mnozymy liczba * -1 i staje sie ona ujemna. Wskutek tego x+=(-liczba) da nam x-=liczba, bo + i - daje +. Nastepnym razem prosze czytac helpa. :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bartoszwitek Opublikowano 6 Sierpnia 2005 Udostępnij Opublikowano 6 Sierpnia 2005 Serdecznie dziękuję za odpowiedź, ale z czytaniem helpa się wstrzymam, dopuki nie wyjdzie wersja PL... :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 6 Sierpnia 2005 Filar Społeczności Udostępnij Opublikowano 6 Sierpnia 2005 Nie lubie poprawiac, ale widze, ze musze. game_end jest funkcją, więc powinno być game_end() Natomiast & to operacja bitowa and, tutaj nam jest potrzebne zwykłe and czyli "and" lub &&. Ludzie, sprawdzajcie czasem wlasne skrypty. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 6 Sierpnia 2005 Udostępnij Opublikowano 6 Sierpnia 2005 1. Po kiego zakładać setki tematów "arkanoid" jak można ciągnąć rozmowę w jednym. 2. Kurde starajcie się kożystać z opcji "szukaj". Może taki temat już istnieje. Apeluje tutaj do tych nowych użytkowników. 3. Możecie też z GG skorzystać. Przecież po to są profile. Ranma możesz wrzucić ten regulamin ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 6 Sierpnia 2005 Autor Udostępnij Opublikowano 6 Sierpnia 2005 dzięki. mam jeszcze jeden kłopot zrobiłem dwie kampanie i chce żeby były oddzielne tabelki z punktami do tych kampani Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 6 Sierpnia 2005 Autor Udostępnij Opublikowano 6 Sierpnia 2005 mam jeszcze jedną sprawe. czy przy niezarejestrowanej wersji gm można robić gry nawet do 30mb bo mi przy kilkunastu mb sie gra nie chce włączyć Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 6 Sierpnia 2005 Udostępnij Opublikowano 6 Sierpnia 2005 Można, można. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 6 Sierpnia 2005 Filar Społeczności Udostępnij Opublikowano 6 Sierpnia 2005 rowr44: Nie chce sie wlaczyc bo masz za malo ramu. Wszystkie zasoby w GM sa domyslnie ladowane od razu do pamieci przy starcie gry. Zauwaz, ze gry komercyjne laduja rozne zasoby miedzy etapami itd, a potem je usuwaja z pamieci. W twoim przypadku tez bedziesz musial tak zrobic. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 6 Sierpnia 2005 Udostępnij Opublikowano 6 Sierpnia 2005 Pewnie dałeś do gry bardzo dużo muzyki w mp3. Najlepiej obniż jakość, albo daj, żeby odczytywało tą muzykę z dysku. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 7 Sierpnia 2005 Autor Udostępnij Opublikowano 7 Sierpnia 2005 dzięki. to powiecie mi jak zrobić dla dwóch kampani oddzielne tabele z punktami Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 7 Sierpnia 2005 Udostępnij Opublikowano 7 Sierpnia 2005 Uhuhu, w tym momencie chcesz korzystać z dość zaawansowanej sfery Game Makerowania. Do tego potrzebujesz DLLa GM Database (czy jak on się tam zwie). Niestety bez pełnej wersji się nie obejdzie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 7 Sierpnia 2005 Autor Udostępnij Opublikowano 7 Sierpnia 2005 chce sobie w arkanoidzie zrobić możliwość kupywania za punkty ale nie wiem jak zrobić żeby np. coś kosztuje 100 punktów a mamy 90 to żeby nie można było tego kupić Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 7 Sierpnia 2005 Autor Udostępnij Opublikowano 7 Sierpnia 2005 i nie wiem jak zrobić żeby przy kliknięciu na jakiś obiekt pojawiały się inne ale określona liczba i żeby nie nachodziła na inne obiekty Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 7 Sierpnia 2005 Udostępnij Opublikowano 7 Sierpnia 2005 Pamiętaj ! -><- A żeby stworzyć kilka obiektów : repeat(10) instance_create(random(room_width),random(room_height),obiekt); Ten kod tworzy ci 10 obiektów w losowej pozycji na planszy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Vardi Opublikowano 7 Sierpnia 2005 Udostępnij Opublikowano 7 Sierpnia 2005 Zacznij korzystać z opcji edit i pomyśl trochę sam, a nie jak czegoś niewiesz to odrazu pytasz. Wystarczy chwile pomyśleć, ułożyć sobie algorytm we własnym języku (np. jeżeli coś tam to się dzieje coś innego w przeciwnym razie nic sie nie dzieje itp.), a potem przekształcić to na GML i wstawić do gry. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rower44 Opublikowano 7 Sierpnia 2005 Autor Udostępnij Opublikowano 7 Sierpnia 2005 dziełki tymon. ale obiekt nachodzą na siebie czego nie chce. na kodowaniu nie znam sie za dobrze więc takich żeczy to za bardzo nie umiem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gooman Opublikowano 8 Sierpnia 2005 Udostępnij Opublikowano 8 Sierpnia 2005 Panowie komandorbrudnegacie i rower44 dostają po ostrzeżeniu za tworzenie nowych tematów o arkanoidach - wystarczy dopisać do starego tematu nowe pytanie następne takie przekroczenie skończy się dla was BANEM Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się