mm4tt / yapg

Yet another phone game
2 stars 0 forks source link

i004_z003(Save Game nie działa) #21

Closed mm4tt closed 11 years ago

mm4tt commented 11 years ago

Przy badaniu sprawy niedziałającego tombstoneningu, zauważyłem, że przestało działać zapisywanie. Rzuca SecurityException. Należy to naprawić

mzglicz commented 11 years ago

Naprawie to dzisiaj. To jest pewnie spowodowane tym ze ktos probuje zapisac nie publiczna własność

Przy badaniu sprawy niedziałającego tombstoneningu, zauważyłem, że przestało działać zapisywanie. Rzuca SecurityException. Należy to naprawić

Reply to this email directly or view it on GitHubhttps://github.com/bbsszz/yapg/issues/21 .

mzglicz commented 11 years ago

Dobra naprawiłem tzn. Doprowadziłem do stanu w którym jesteśmy wstanie zapisać i wczytać ponownie.

Błędy jakie wyszły i które można było uniknąć: Błąd ten SecurityException był, rzucany ponieważ klasy Bomber i Ghost nie były publiczne. Wniosek : klasa ma być serializowana (tym DataContractSerializer) musi być publiczna. Oczywiście kochany visual studio mi nie raczył powiedzieć gdzie ten błąd jest i w kodzie pojawiło się mase debugu.

Kolejny błąd/ (moim zdaniem bug a nie feature) To jest to ze Panel jest jedynie tworzony w Generatorze poziomów ? Dlaczego? On jest tak prosty, że moim zdaniem powinien być tworzony w kodzie Engine, raczej nie planujemy mieć Engina bez panelu ? Bo przy wczytywaniu z pliku musze go inicjalizować bo był nullem. Robie to w funkcji fixStuff() wybaczcie nie miałem lepszego pomysłu na nazwe,.

Musiałem jescze kilka pól dopisać andotacje [Data coś tam] . Np Ghost i Bomber ich np nie mieli wogole adnotacji, że mieli się serializować + musiłem pozupełniać wiedze o dziedziczeniach.

Po tejstujcie. Pewnie coś przeoczyłem kod znajduje się w : i004_z003

MaciejPuczkowski commented 11 years ago

Kiedy Panel był tworzony w enginie, wtedy rzucał nullem w przypadku kiedy player umierał i gracz chciał rozpocząć nową grę. Dlatego doszedłem do wniosku, że będę go tworzył razem z planszą. Oczywiście nie pomyślałem o Twoim przypadku.

W dniu 18 maja 2013 23:16 użytkownik IIUJ-MaciejZgliczynski < notifications@github.com> napisał:

Dobra naprawiłem tzn. Doprowadziłem do stanu w którym jesteśmy wstanie zapisać i wczytać ponownie.

Błędy jakie wyszły i które można było uniknąć: Błąd ten SecurityException był, rzucany ponieważ klasy Bomber i Ghost nie były publiczne. Wniosek : klasa ma być serializowana (tym DataContractSerializer) musi być publiczna. Oczywiście kochany visual studio mi nie raczył powiedzieć gdzie ten błąd jest i w kodzie pojawiło się mase debugu.

Kolejny błąd/ (moim zdaniem bug a nie feature) To jest to ze Panel jest jedynie tworzony w Generatorze poziomów ? Dlaczego? On jest tak prosty, że moim zdaniem powinien być tworzony w kodzie Engine, raczej nie planujemy mieć Engina bez panelu ? Bo przy wczytywaniu z pliku musze go inicjalizować bo był nullem. Robie to w funkcji fixStuff() wybaczcie nie miałem lepszego pomysłu na nazwe,.

Musiałem jescze kilka pól dopisać andotacje [Data coś tam] . Np Ghost i Bomber ich np nie mieli wogole adnotacji, że mieli się serializować + musiłem pozupełniać wiedze o dziedziczeniach.

Po tejstujcie. Pewnie coś przeoczyłem kod znajduje się w : i004_z003

— Reply to this email directly or view it on GitHubhttps://github.com/bbsszz/yapg/issues/21#issuecomment-18108137 .

mzglicz commented 11 years ago

A nie myślałeś o leniwej ewaluacji ? tzn w geterze (bo mamy) sprawdzać czy jest nullem ? jeśli jest to go stworzyć a i zwrócić Panel?

mzglicz commented 11 years ago

Z mergowałem swojego brancha do i004.

mm4tt commented 11 years ago

Sprawdziłem i działa. Nie zamykam jeszcze, niech wisi ten bug, sprawdzimy ponownie na finalnym kodzie i004 czy znowu jakieś regresji nie było

mzglicz commented 11 years ago

Wystąpił błąd mianowicie (Maciej P. go zauważył). Był rzucany wyjątek SecurityException czy jakoś tak. To się wzieło z powodu, że próbowaliśmy zapisać nie publiczne pole w klasie podczas serializacji a w Windows phone 7 działamy w partial trust i coś tam coś tam. Najłatwiej jest dawać dostęp jako public, żeby nie mieć żadnego problemu. pole PreviousPosition nie było publiczne.

Zauważyłem jeszcze kolejny błąd przy testowaniu, mianowicie wczytywanie rzucało wyjątkiem gdy zapisaliśmy gre w momencie kiedy wybuchała bomba Okazało się, że zapomniałem serializować list fire. Naprawiłęm to. Zmiany są w i004

mzglicz commented 11 years ago

Tym razem błędy wynikły z tego, że :

mzglicz commented 11 years ago

Wystąpił problem przy zapisywaniu. Mianowice po (Load)wczytaniu gry Bomber wykonuje jeden ruch. i potem stoi w miejscu. @IIUJ-StefanDomanski mógłbyś na to spojrzeć, w którym miejscu decydujesz jaki ruch zrobić? Czego po zapisaniu i wczytaniu nie masz a potrzebujesz ?

stefuncho commented 11 years ago

Już się za to zabieram. Wydawało mi się, że wcześniej działał dobrze, więc musiałem coś zepsuć w tej iteracji.

mzglicz commented 11 years ago

Raczej nie. Sprawdzalem tez w ioo4 i wydawalo mi sie ze nie dzialal On May 31, 2013 1:33 PM, "IIUJ-StefanDomanski" notifications@github.com wrote:

Już się za to zabieram. Wydawało mi się, że wcześniej działał dobrze, więc musiałem coś zepsuć w tej iteracji.

Reply to this email directly or view it on GitHubhttps://github.com/bbsszz/yapg/issues/21#issuecomment-18739768 .