ZyperPL Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 Okey, cześć i od razu proszę o pomoc. Chciałem pobawić się silnikiem fizycznym Extreme Physics i stworzyłem małą gierkę. Więc tak: Mam obiekt ctrl, który tworzy zmienną global.world. Obiekty box powinny odczytywać tą zmienną ale tak się nie dzieje. Nie wiem w czym leży problem. Wszystko działało od razu po zrobieniu obiektu ctrl, a po kilku uruchomieniach gry wszystko się popsuło. Gdy zrobię ten obiekt na nowo, to za którymś razem znowu wszystko jest OK, ale po chwili znowu się psuje :( ___________________________________________ ERROR in action number 1 of Create Event for object box: Error in code at line 1: body = ep_body_create_dynamic(global.world,false); ^ at position 38: Unknown variable world Wyskakuje mi takie coś, gdy klikam ignore to nic nie pomaga. Błąd nadal wyskakuje, a obiekty nie działają :( Nie wiem czy to jakiś błąd Game Makera, czy coś robię źle. Używam GameMakera 8 Pro..
karolo320 Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 Zgaduję, ale wykasuj wszystkie boxy, postaw CTRL i od nowa postaw boxy :) Bo pierwsze postawiłeś boxy, i najpierw dla nich wykonuje się kod. E: Albo deklaracje zmiennej daj w GAME STARt
ZyperPL Opublikowano 12 Lipca 2011 Autor Opublikowano 12 Lipca 2011 Nie nie nie. Nie działa. Kody obu obiektów wykonują się w Create. Gdy ustawiam w Game Start, albo w innej kolejności wkładam do rooma, nie pomaga :(
ediepl Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 a objekt ctrl na pewno tworzy taką zmienna w create?
ZyperPL Opublikowano 12 Lipca 2011 Autor Opublikowano 12 Lipca 2011 GML global.world = ep_world_create(); Więc raczej tak. Gdyby tak nie było to bym zauważył. Poza tym czasami wszystko działa ok, a dopiero po chwili i którymś tam uruchomieniu gry wszystko się psuje :( Bardzo dziwny błąd. Na prawdę. Jakby co to pytajcie o wszystko, nie mam pojęcia w czym leży problem :(
ediepl Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 Dodaj to ep_world_destroy(global.world); do eventa room end
ediepl Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 Wyślij mi exe zobaczę czy mi się tak też dzieje
ZyperPL Opublikowano 12 Lipca 2011 Autor Opublikowano 12 Lipca 2011 Za dużo z tym roboty. Może ktoś inny ma jakieś pomysły?
karolo320 Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 Narysuj gdzieś ID wszystkich tych obiektow i sprawdz czy to CTRL'a jest najmniejsze, to nie może być coś innego. E: Albo zamiast create bloxów daj alarm=1 i w alarmie daj to create i zobacz czy działa :P
ZyperPL Opublikowano 12 Lipca 2011 Autor Opublikowano 12 Lipca 2011 No więc tak. W jednym roomie 'ctrl' ma id mniejsze od boxów, a w drugim odwrotnie. W obu roomach wyskakuje mi błąd, więc... Wrzucam jednak to exe: http://www.speedyshare.com/files/29396963/ns1TESTbyZyper.exe
ediepl Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 W objekt box przekopiuj wszystko z create do alarm[0] i z create go wywołaj(alarm[0]=1).
ZyperPL Opublikowano 12 Lipca 2011 Autor Opublikowano 12 Lipca 2011 Dzięki. Niby działa. Tylko teraz, gdy po raz pierwszy włączam grę, to nic nie działa (tzn. błąd nie wyskakuje, tylko obiekty nie działają tak jak powinny, jeden obiekt box ma pozycję myszki) i dopiero gdy zrobię room_restart(); wszysciutko działa jak należy. Mógłbyś może wytłumaczyć w czym leżał problem i dlaczego opóźnienie pomogło?
ediepl Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 Prawdopodobnie obiekt ctrl nie nadążał z tworzeniem zmiennej global.world
ZyperPL Opublikowano 12 Lipca 2011 Autor Opublikowano 12 Lipca 2011 A jak naprawić to, że zawsze na początku gry, wszystko jest popsute, tak jakby obiektu ctrl nie było. Jednak obiekty box oddziałowują na siebie i dopiero po restarcie wszystko działa? :S
karolo320 Opublikowano 12 Lipca 2011 Opublikowano 12 Lipca 2011 zresetuj w alarmie ^^ Te funkcje ep_body coś tam pewnie były za wolne, a o tym alarmie pisałem parę postów temu ^^
ZyperPL Opublikowano 12 Lipca 2011 Autor Opublikowano 12 Lipca 2011 Dobra, dziękuję wszystkim za pomoc. Jakby co, to trzeba uważać na GML ep_world_set_sleeping Pozdrawiam i zamykam.
Rekomendowane odpowiedzi