Sminer Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 Witajcie! Poszukuje silniku do gry Pokemon. Zaczynam robic grę Pokemon i juz zrobilem ruzne zeczy i wogule ale chcialbym sprawdzic czy idzie to zrobic troche latwiej a niekturych rzeczy po prostu jeszcze zrobic nie umiem. Byc moze ktos czytajacy ten temat kiedys robil tez gre Pokemon i zna sie troche na zeczy wiec tez by mi mugl duzo pomoc. Glownie chodzi mi o : Chodzenie ludzika po kratkach 32/32 Gdy wchodzi nasz ludzik w trawe (Tak jak jest w prawie wszystkich wersjach pokemon) losowal sie pokemon i jego poziom. Menu do gry. Oraz zmienne w kazdym pokemonie (hp atak obrona) (Chodzi mi tylko o wzor jak to zrobic) Jezeli chcecie moge wam dac w linku to co juz zdazylem zrobic i wtedy moze byscie mieli pomysl aby cos zmienic. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 Wszystko masz w tutorialach na stronie. 1.grid(czyli np. x+=32 i y+=32) 2.funkcja random 3.też w tutorialach 4.w tutorialach albo na forum. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TO_mek Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 Chodzenie ludzika po kratkach 32/32 Gdy wchodzi nasz ludzik w trawe (Tak jak jest w prawie wszystkich wersjach pokemon) losowal sie pokemon i jego poziom. Menu do gry. Oraz zmienne w kazdym pokemonie (hp atak obrona) (Chodzi mi tylko o wzor jak to zrobic) Nie widziałem nigdy pokemona ani gry o pokemonach ale chodzenie pewnie jest na tej zasadzie: GML x=mouse_x div 32 *32 y=mouse_y div 32 *32 Wrzuć to do step dowolnego obiektu a mysz zacznie skakać co kratkę. Menu zazwyczaj robię na osobnym roomie na którym albo wstawiam obiekty reagujące na naciśniecie klawiszy myszy albo tylko rysuję i przy kliknięciu sprawdzam współrzędne. Co do zmiennych to daj w create zmienne hp, atak, obrona. Podczas tworzenia obiektów instance_create(x,y,obj) zwracane jest ID danego obiektu. Przechowuj te ID w tabeli. GML //Tworzy 10 instancji obiektu pokemon_obj for (i=0; i<10; i+=1){ tabela_z_id_pokemonow:=instance_create(((irandom(room_width) div 32) *32),((irandom(room_height) div 32) *32),pokemon_obj); Do zmiennych danego obiektu odwołujesz się poprzez ID.hp, ID.atak czyli: tabela_z_id_pokemonow[0].hp:=100; //nadaje hp=100 dla pokenona nr 0 tabela_z_id_pokemonow[5].atak:=250; //nadaje atak=250 dla pokenona nr 5 jaka_obrona:=tabela_z_id_pokemonow[8].oborna;//odczytuje do zmiennej jaka_obrona wartosc zmiennej obrona dla pokemona 8 Podobnie możesz operować na wszelkich zmiennych dostępnych dla każdego z obiektów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sminer Opublikowano 20 Sierpnia 2011 Autor Udostępnij Opublikowano 20 Sierpnia 2011 Tutaj jest link do tego co juz mam zrobione : http://www.megaupload.com/?d=CQ0MXCJ9 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 LoL nasrałeś jak... wszystko źle i większość niepotrzebne. Nie wiem gdzie uczyłeś się liczyć ale tabela_z_id_pokemonow[5].atak:=250 jest dla pokemona nr.6. Losowanie i nadawanie hp najlepiej robić w instancji. tabela_z_id_pokemonow[5].atak:=250 Dla czego po "atak" jest dwukropek? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TO_mek Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 LoL nasrałeś jak... wszystko źle i większość niepotrzebne. Nie wiem gdzie uczyłeś się liczyć ale tabela_z_id_pokemonow[5].atak:=250 jest dla pokemona nr.6. Losowanie i nadawanie hp najlepiej robić w instancji. Dla czego po "atak" jest dwukropek? Przecież wyraźnie liczyłem pokemony od ZERA. := to to samo co = { to to samo co begin } to to samo co end GML to język wielu składni C, Pascala itp. Ja mam przyzwyczajenia z pascala więc piszę z dwukropkiem. W delphi jesli napiszesz if costam=100 then {costam=200} nie zadziała bo powinno być if costam==100 then {costam:=200} == oznacza przyrównanie := oznacza przypisanie w GMLu jest to dowolne ale nie raz mniej czytelne. PS.Co niby jeszcze jest źle :)? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 offtop: THIS IS GML!!! To dziwnie liczysz, bo niema czegoś takiego jak zerowa instancja. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 Ale błędów człowieku idź po słownik! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 Niech każda instancja trawa, stworzy sobie jedną tablice 32x32.Następnie stwórz zmienną ruch=false w evencie create, jeżeli postać się poruszy, ruch ma być true, a jeżeli zachodzi kolizja z tablicą i postać się rusza, masz 1/5 (20%)szansy, że zajdzie walka.Chyba dobry pomysł, ale może ktoś inny jeszcze coś wymyśli. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sernat Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 Niech każda instancja trawa, stworzy sobie jedną tablice 32x32.Następnie stwórz zmienną ruch=false w evencie create, jeżeli postać się poruszy, ruch ma być true, a jeżeli zachodzi kolizja z tablicą i postać się rusza, masz 1/5 (20%)szansy, że zajdzie walka.Chyba dobry pomysł, ale może ktoś inny jeszcze coś wymyśli. Bez sensu :D . Czy nie uważasz, że to co napisałeś nie jest ani trochę logiczne? Tablica nie jest tutaj potrzebna, ba, nie ma nawet racjonalnego zastosowania. Dlatego uważałbym z podawaniem w odpowiedziach czystej teorii, bo gdybym teraz poprosił o przykład ilustrujący twoją ideę, byłoby nieciekawie. Wracając do problemu. Gdy zaczniesz się ruszać, wykonujesz: GML _event = true; A w samym stepie: GML if ( x div 32 * 32 == x && y div 32 * 32 == y && _event ) { _event = false; if ( random( 1 ) > 0.2 ) { FIGHT! } } Rozwiązanie proste, ale skuteczne. Po co utrudniać sprawę? Z pewnością sprawa byłaby 10 razy łatwiejsza, gdybyś podał cały kod. Później się dziwicie, że jest beznadziejny. 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ę