Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Usuwanie rzeczy z listy w C++ a Mac


  • Zaloguj się, aby dodać odpowiedź
9 odpowiedzi w tym temacie

#1 pawelnr1

pawelnr1
  • 138 postów
  • SkądWrocław

Napisano 07 maja 2011 - 11:17

Zacząłem kodzić silnik do strzelanki w którym pociski są trzymane w liście. Moj problem polega na tym, że po opuszczeniu ekranu pociski powinny znikać żeby opróżnić pamięć. Robię to w ten sposób:
if ((*i).pocisk.GetPosition().y<0 || (*i).pocisk.GetPosition().y>480 || (*i).pocisk.GetPosition().x<0 || (*i).pocisk.GetPosition().x>640) {
				i=pociski.erase(i);
			}
Dla testu dałem ten kod znajomemu do skompilowania na Windowsie i gra zjadała około 8mb ramu. Na macu po każdej serii pocisków zużycie pamięci wzrasta więc wymazywanie pocisków z listy chyba nie działa. Czy ktoś wie jak to zmusić do działania na Macu?

Tak wygląda cały kod: http://wklej.org/id/525236/

#2 konrado0905

konrado0905
  • 361 postów

Napisano 07 maja 2011 - 13:12

Nie robiłem jeszcze nic w SFML, ale spróbuj sprites.remove_if(warunek);

#3 ciasteczkowy666

ciasteczkowy666
  • 187 postów

Napisano 07 maja 2011 - 19:26

Na macu po każdej serii pocisków zużycie pamięci wzrasta więc wymazywanie pocisków z listy chyba nie działa.


Pamięć nie musi być od razu zwracana do systemu operacyjnego. Stronnicowanie i te sprawy.

Inna sprawa, że sprawdzanie zarządzania pamięcią przez "patrzenie na zużycie pamięci" to nie najlepszy pomysł. Lepiej np. w destruktorze wypisać komunikat i patrzeć czy się wywołują destruktory (już abstrahując od narzędzi w stylu Valgrind).

#4 Roberto

Roberto
  • 13 752 postów
  • SkądWrocław

Napisano 07 maja 2011 - 19:28

proponowałbym jednak do tego narzędzie Instruments który jest razem z XCode.

#5 kanior

kanior
  • 48 postów

Napisano 08 maja 2011 - 14:40

Ja mam takie pytanie - troche z innej beczki czy za pomoca Interface Buildera można tworzyć interfejs do programów C++ czy tylko Objc. C?

#6 Roberto

Roberto
  • 13 752 postów
  • SkądWrocław

Napisano 08 maja 2011 - 14:43

Cocoa. Czyli Obj-C ale można mieszać Obj-C z C++ AFAIR.

#7 kanior

kanior
  • 48 postów

Napisano 08 maja 2011 - 14:44

Eee. Mógłbyś mi jeszcze wyjaśnić co to i czym się rózni Cocoa od Obj-C?

#8 Roberto

Roberto
  • 13 752 postów
  • SkądWrocław

Napisano 08 maja 2011 - 14:55

Cocoa to framework, API. Obj-C to język programowania.

#9 kanior

kanior
  • 48 postów

Napisano 08 maja 2011 - 15:19

Ale do ogarnięcia Cocoa (słóży do iOS tak?) potrzebna jest znajomość Obj - C? Załóżmy, że zacznę od C++ (jeszcze w niczym nie programowałem) to czy później będzie mi łatwo przejść na OBJ - C?

#10 macieks72

macieks72

  • 9 873 postów

Napisano 15 maja 2011 - 21:31

1. Tak Cocoa jest pisana w obj-c, także tak, musisz znać obj-c jeśli chcesz używać Cocoa. Acha i Cocoa nie służy TYLKO do pisania pod iOS. 2. Język jak język, można każdy poznać dość szybko, różnią się tylko składnią, ale tu nie o to chodzi, bo w samym języku wiele nie zdziałasz, chodzi o poznanie frameworka, a dzisiejsze frameworki czy to Cocoa, .NET czy nawet phpowy Zend są bardzo rozbudowane, także poznać je dobrze to NIE JEST prosta i szybka sprawa. Źle po prostu zadajesz pytanie, albo źle to wszystko rozumujesz, bo sam język programowania to jest pikuś. Taki przykład abyś zrozumiał idee: Znam dobrze php i kohana framework (framerowk do php), nie znam kompletnie Zenda (też framework do php). I teraz jeśli dostanę projekt do napisania w Zendzie, pomimo że znam dobrze php to rozkładam ręce i nic nie zrobię bo kompletnie nie znam Zenda. Tylko, że tutaj w obj-c praktycznie nie ma takich dylematów, bo ucząc się obj-c uczysz się też Cocoa, inaczej to jest lekko bez sensu. Taki to nierozłączny komplet jak C# i .NET. Mam nadzieję że wszystko już jasne.




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych