메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

오늘에서야 안 것인데,

cocos2d에는 가비지 컬렉터가 존재한다.


스프라이트를 생성하고 Node에 연결하지 않으면,

얼마 후 가비지 컬렉터가 이를 지워 버린다.

스프라이트를 생성하면 바로 Node에 연결해줘야 한다는 것이다.


내 경우, 게임 중에 메모리 할당을 하는 것은 조금이라도 속도에 영향을 준다고 생각해서

스테이지 로딩 시에 미리 스프라이트들을 생성,

플레이 중에는 이를 처리하느냐 마느냐를 나타내는 플래그만 조절함으로

빠른 속도로 스프라이트가 나타나고 사라지게 만들었다.


하지만 가비지 컬렉터가 존재하기 때문에 노드에 연결해 놓지 않으면 사라져 버리고,

노드에 연결하면 화면에 보이고, 업데이트 부분에서 처리되기도 한다.

물론 위치를 화면에서 아주 밖으로 줘서 보이지 않게 하거나,

특별 처리 코드를 추가하는 방법도 있지만,

쓸데없이 코드가 복잡해지고, 복잡해짐 = 버그 발생율 증가이므로 그다지 마음에 들지 않는다.


가비지 컬렉터를 OFF시키는 옵션이 있을지는 모르겠지만,

메모리 관리상 있는게 깔끔할 것 같기도 하고,

크게 속도에 영향을 안 미친다면 그냥 생성해서 바로바로 노드에 붙여주는 식으로 만드는 게

Cocos2d에서는 순리인 듯 하다.


이걸 몰라서 만들어 둔 스프라이트들이 사라지는 바람에

어디서 에러나는지 이해를 못하고 몇시간을 헤멨다.

태그 :
조회 수 :
1967
등록일 :
2012.02.07
05:31:33 (*.140.69.176)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=469395
List of Articles
번호 제목 글쓴이 날짜 조회 수
125 cocos2d-x Clipping Layer 수정 똥똥배 2013-09-10 670
124 cocos2d-x 게임을 iOS에 이식할 때 생기는 문제들 똥똥배 2013-08-26 544
123 cocos2d-x에서 schedule_selector 정의 변화 [1] 똥똥배 2013-08-19 523
122 QT 프로젝트 배포에 필요한 거 똥똥배 2013-07-11 606
121 cocos2d-x 외부파일을 이용한 한글 처리 [1] 똥똥배 2013-07-08 1943
120 중력 처리할때 캐릭터가 낍니다. [2] ㅁㄴㅇㄹ 2012-02-12 1396
» cocos2d의 가비지 컬렉터 똥똥배 2012-02-07 1967
118 TinyXML의 한계 [2] 똥똥배 2011-12-11 3785
117 cocos2d-x 터치와 업데이트 활성화 시키기 똥똥배 2011-10-27 10668
116 lua와 C의 연동에서 상수(define이나 enum) 값처리 똥똥배 2011-05-25 3461
115 2중 for문을 돌릴 때 [3] 똥똥배 2011-04-06 2539
114 DirectX 창모드에서 화면 지워지는 문제 [7] file 똥똥배 2010-12-12 2793
113 조금씩 게임 소스가 완성 되어 가는데요. [2] 짜스터 2010-11-16 2190
112 데이터 축소에 대하여 [2] 짜스터 2010-10-13 2430
111 SRPG을 구현하게 되면 ... [3] 짜스터 2010-10-05 2710
110 흥크립트 질문. 글자에 관해서 [1] 에리 2009-03-21 3430
109 문D라이브로 만드는 더블드래곤.. 질문입니다 [4] 하와이안 2009-01-15 5558
108 C++ 질문 2 [3] A.미스릴 2008-12-22 3565
107 C++ 질문 [1] A.미스릴 2008-12-21 3818
106 또질문 [2] 쿠로쇼우 2008-09-29 2854