-
Postów
3 205 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
4
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Ranmus
-
"Tylko"? Nie myliłem się, bez napisania własnego dll'a się nie obędzie, ponieważ wyliczanie najkrótszej drogi algorytmem A* jest w GM za wooooolne. A gotową siatką w gm tego nie zrobisz, bo ona zwraca ścieżkę, która nie jest jest tablicą z kolejnym polami a zwykłą krzywą o długości od 0 do 1. Można by sprawdzać ułamkami czy to kolejny grid, ale przy większych dystansach to nie da zadowalającego efektu, tak więc "tylko" nie ma nic do rzeczy. Wątpie by ci ktoś ten przykład zrobił. :) Musisz w jakimś języku programowania napisać dll, który zawierałby engine siatki. Do tego skrypty odznaczania i zaznaczani pól, kreacji siatki o danych rozmiarach, wyliczający trasę oraz zwracający zserializowaną tablicę kolejnych pozycji (tablicę skonwertowaną na string, którą w gm znowu przerobisz na tablicę, bo z dll'a da się importować tylko zwykłe zmienne i stringi). Dopiero wtedy możesz zacząc myśleć o strzałeczkach.
-
Dzisiaj szukając dodatków do purebasica wstąpiłem przypadkiem na dobrze mi znaną listę basic'ów i zauważyłem, że dwie nowe pozycje zostały dodane. Na szczególną uwagę zasługuję jeden: Brutus 2D. Jest to nowy basic do tworzenia gier 2D. Oferuje: A wymaga: Nie znalazłem informacji czy to interpreter, ale wszystko na to wskazuje. Szkoda tylko, że nie można tworzyć exe w niezarejestrowanej wersji. Licencja natomiast jest tania bo tylko 10$! Jest to bardzo młody edytor, ale po opisach autora widzę, że nie próżnuje. Czy Brutus2D jest wart uwagi? Tak, jeżeli nie masz zasobnego budżetu, a chciałbyś się zaopatrzyć w oryginalny soft. Dlatego napisałem ten temat. ps. Ja i tak wolę purebasic, bo jest szybki jak c++ (czasem nawet i szybszy) i prawie tak prosty jak GM, ale będę się przyglądał rozwojowi Brutusa 2D. :-)
-
Bartoszwitek: Proste przykłady to ja rozumiem, ale nikt Ci nie będzie robił znacznego kawałka gry.
-
A skończyłeś chociaż tego pacmana? Bijatyka jest znacznie łatwiejsza.
-
No wiesz. Zawsze możesz tam wrzucić polskiego helpa i się podpisać. ;)
-
Mi dalej nie działa, bo brakuje jakiegoś dll'a nie będącego w tych rarach a nazwa podobna (nie pamiętam dokładnie bo już usunąłem). Następnym razem sprawdzaj co trzeba do uruchomienia progsa.
-
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.
-
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.
-
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. :]
-
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".
-
W Destroy klocka, tylko, ze tam jest blad. Powinno byc: if (instance_number(klocek)=1)...
-
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. :]
-
Ah, zbyt biedny. Potem probowalem docuwiki, ale cos system logowania nie dzialal. Potem chcialem tikiwiki w perlu napisane, bo to bardzo laaadny system. Okazalo sie, ze skrypty nie maja rozszerzen, a serwer probowal to odczytac jako katalogi. Poddalem sie i zainstalowalem mediawiki.
-
Jakby co, to wiki.gmclan.org juz dziala. Mozna wchodzic takze poprzez alias help.gmclan.org Aby moc edytowac strony, trzeba sie zarejestrowac. Aktualnie nie mam czasu na zmiane loga itd. Stosowne zmiany beda dokonywane w pozniejszym czasie. Mozna juz edytowac strony. Jak ktos chce, to niech zaprojektuje tresc strony glownej. :)
-
Utworzyc liste, do ktorej beda wrzucone obiekty kolidujace z myszka. Do listy wkladamy id obiektu oraz image_depth. Nastepnie sortujemy liste wedlug image depth i sprawdzamy czy dany obiekt jest na wierzchu tej listy, jesli tak to zmiana sprita.
-
Albo jeszcze lepiej: direction=180+random(90); image_angle=direction;
-
Kto jest za tym aby zrobić wspólne tłumaczenie helpa na zasadzie stron wiki? Liczę na Was, ponieważ ja mam mało czasu na takie rzeczy, ale sam chętnie od czasu do czasu coś napiszę. Chciałbym aby na Wiki nie znalazły się tylko definicje z helpa, ale również kursy, opisy ciekawych zagadnień itd. Jaką poddomenę przyporządkować temu projektowi? Sugestie: wiki.gmclan.org help.gmclan.org readme.gmclan.org Optuję za tym by użyć jakiegoś gotowego silnika. Ale nie może mediawiki, bo to zbyt duże jak na nasze potrzeby. Może lepiej: http://wikka.jsnx.com/HomePage
-
Ja tez mam oryginalne TA i to nie z CDA. Brat kupil za 150zl w dniu premiery czyli dobre pare lat temu. A najgorsze bylo to, ze gra zostala zamowiona z domu wysylkowego i ona doszla jak moj mlodszy braciszek byl jeszcze w szkole. Trzeba bylo zobaczyc jego mine po przyjsciu ze szkoly jak zobaczyl mnie zagrywajacego sie w TA w najlepsze, a siostra akurat konczyla czytac swiezutka instrukcje od deski do deski... a pudelko juz po kątach latalo. :D ps. A co do AOE 1 vs AOE 2 to oczywiscie, ze dwojka lepsza, bo nie dosc ze mury lepiej sie stawialo i byly bramy, to jeszcze jednostki sie ladnie formowaly i w ogole cud miod i orzeszki. :D ps 2. Jako administrator tego serwisu, nakladam klatwe na ET (czytaj nie pojdzie mi, wiec nie polecac prosze tego ani innyc fps, bo teraz jest gadka o rts'ach) ps 3. Czyli jutro gramy w TA. Ja moge stworzyc serwer jakby co. Mam zewnetrzne ip i szybkosc 512/512 niedzielone z innymi komputerami.
-
Ta, a niby Total Annihilation to nieludzka gra? Przeciez to jeden z wiekszych hitow. :) To moze red alert 2? Ale z dodatkiem i dodatkiem fanowskim, bo Westwood zawsze daje ciala przy balansowaniu gry. Albo Age of Empires 2 - najlepszy rts wszechczasow, az dziw bierze, ze to produkcja microsoftu. :-)
-
Ja proponuję by każdy skombinował sobie total annihilation (moze byc bez dodatku, bo w dodatku taka jedna jednostka to przesada...) i zagrac w to na 8 osob. :D
-
Gracie w coś czasem co nie jest FPS'em i soldatopodobne?
-
No dobra. Już zrozumiałem. Toli chce założyć open tibia server. Do tego musisz mieć zewnętrzne IP, a jak nie masz, to musisz mieć forwardowany port. Wystarczy, że powiesz administratorowi swojej sieci a on już będzie wiedział co zrobić. Jeżeli zaś masz Neostrade, Chello czy coś w tym stylu, że nie ma kontaktu z administratorem, to nie założysz otservera. W następnej kolejności zarejestruj się na forum otfans.net i wejdź do działu: http://otfans.net/index.php?showforum=62 Tam urzęduje Polak o ksywce brave. Poślij mu PM'a z tym pytaniem.
-
" server chcialbym stworzyc taki server" Yyyy, jaki serwer?
-
Żartowałem. Nie chcę, bo nie mam czasu na soldata. Ale mam czas na Age of Empires 2, Total Annihilation czy Red Alert 2. :D
-
A ja wchodzę do klanu. Z kim jestem? :P