๊ธ€

Cocos2d-x ๋ฉ”๋ชจ๋ฆฌ๊ด€๋ฆฌ

Objective-C ๊ธฐ๋ฐ˜์˜ ๋ฉ”๋ชจ๋ฆฌ๋ชจ๋ธ์ธ Reference Counting https://www.programering.com/a/MTN3cjMwATg.html cocos2d-x์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ์ž˜ ์ •๋ฆฌ๋œ ๊ธฐ์‚ฌ๋ฅผ ๋ฐœ๊ฒฌ. ์ฐธ๊ณ ์šฉ์œผ๋กœ ๋ฒˆ์—ญ(์˜์—ญ)ํ•ด์„œ ์ •๋ฆฌํ•œ๋‹ค. Object-C ๋กœ๋ถ€ํ„ฐ ์ด์‹ ๋œ cocos2d-x์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š”, ๊ทธ ๋™์•ˆ, Object-C์— ๋Œ€ํ•ด ์ ‘์ ์ด ์—†์—ˆ๋˜ C++ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ํฐ ํ˜ผ๋ž€์„ ์•ˆ๊ฒจ์ค๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ดํ•ด ์—†์ด ์ข‹์€ C++ ํ”„๋กœ์‹œ์ ธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜๋Š” ์—†๊ธฐ์—,  ์ €๋Š” OC์™€ cocos2d-x ์–‘์ชฝ ๋ชจ๋‘์— ๊ฒฝํ—˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, cocos2d-x๊ฒŒ์ž„์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์„๊นŒ ํ•˜๋Š” ๋งˆ์Œ์œผ๋กœ ์ด ํฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. C++์˜ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š”, '๋ˆ„๊ฐ€ ๋ˆ„๊ตฌ์—๊ฒŒ Release ์›์น™์„ ์ ์šฉํ•˜๋Š”๊ฐ€' ์ฆ‰, 'Object๋ฅผ ์ƒ์„ฑํ•˜๋Š” new ์—ฐ์‚ฐ์ž๋ถ€ํ„ฐ, ์‚ญ์ œํ•˜๋Š” delete ์—ฐ์‚ฐ๊นŒ์ง€, ๋ˆ„๊ฐ€ ์ฑ…์ž„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€ ' ์— ์ฃผ์š” ๋…ผ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.  ๋งŒ์•ฝ function ์•ˆ์—์„œ object์˜ life-cycle์ด ๋ชจ๋‘ ์ด๋ฃจ์–ด์ง„๋‹ค๋ฉด, ๊ทธ์ € function์˜ return๋ฌธ ์ง์ „์— ์‚ญ์ œํ•˜๋Š” ๊ฒƒ ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.  ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ, ์šฐ๋ฆฌ๋Š” new๋กœ๋ถ€ํ„ฐ function body ๋ฐ–๊นŒ์ง€์˜ life-cycle์„ ๊ฐ€์ง€๋Š” function์„ ๋งŒ๋“œ๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์šฐ๋ฆฌ๋Š” Object๋“ค์„ Stack์— ์ง์ ‘ ์ƒ์„ฑํ•จ์œผ๋กœ์จ, Dynamic Memory(Heap)์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ๋ฐœ์ƒํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๋ฌผ๋ก , ์Šคํƒ์— ํฐ Object๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ์˜ณ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.) ๋งŒ์•ฝ, function ๋ฐ–์—์„œ life-cycle์„ ๊ฐ€์ง€๋Š” Object๋ฅผ ๋‹ค๋ฃฌ๋‹ค๋ฉด, ์šฐ๋ฆฌ๋Š” ๋ˆ„๊ตฌ์—๊ฒŒ Release ์›์น™์„ ์ ์šฉ์‹œ์ผœ์•ผ ํ• ์ง€ ์• ๋งคํ•ด ์งˆ ๊ฒƒ์ด๊ณ , Object๋ฅผ Release ์‹œํ‚ฌ ์ ์ ˆํ•œ (๋‹ค๋ฅธ) ์žฅ์†Œ๋ฅผ ๊ฐ€์ ธ์•ผ๋งŒ ํ•  ๊ฒƒ์ด๋ฉฐ, ๋งŒ์•ฝ ๊ทธ Object๊ฐ€ ๋‹ค์–‘ํ•œ Obj...

C++ ๋™์ ์œผ๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋งŒ๋“ค ๋•Œ, Vector๋ฅผ ์จ์•ผํ• ๊นŒ ๊ทธ๋ƒฅ ๋ฐฐ์—ด์„ ์จ์•ผํ• ๊นŒ?

Static/Dynamic Array? The C++ array classes are better behaved than the low-level C array because they know a lot about themselves, and can answer questions C arrays can't. They are able to clean after themselves. And more importantly, they are usually written using templates and/or inlining, which means that what appears to a lot of code in debug resolves to little or no code produced in release build, meaning no difference with their built-in less safe competition. All in all, it falls on two categories: Dynamic arrays Using a pointer to a malloc-ed/new-ed array will be at best as fast as the std::vector version, and a lot less safe (see  litb's post ). So use a std::vector. Static arrays Using a static array will be at best: as fast as the  std::array  version and a lot less safe. So use a  std::array . Uninitialized memory Sometimes, using a  vector  instead of a raw buffer incurs a visible cost because the  vector  ...

๊ฐ์ฒด๋ฐฐ์—ด (๋™์ /์ •์ )์ดˆ๊ธฐํ™”

class Test { public : Test( int a, int b ); }; ์œ„ ํด๋ž˜์Šค ์ฒ˜๋Ÿผ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฃผ๊ณ  ์‹ถ์€ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ. Test test( 1, 2 );  ์œ„ ์™€ ๊ฐ™์ด ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ  ๋งŒ์•ฝ ์ด ํด๋ž˜์Šค๋ฅผ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋™์ ํ• ๋‹น์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. Test test[10];                                      //์—๋Ÿฌ ๋ฐœ์ƒ, ๋””ํด๋“œ ์ƒ์„ฑ์ž ์—†์Œ Test test[2] = { Test( 1, 1 ), Test( 2, 2 ) };    //๊ฐ€๋Šฅ Test* test = new Test[10];                     //์—๋Ÿฌ ๋ฐœ์ƒ, ๋””ํด๋“œ ์ƒ์„ฑ์ž ์—†์Œ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ class Test { public : Test(); Test( int a, int b ); }; Test* test = new Test[10];     10๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ธด ํ•˜์ง€๋งŒ Test( int a, int b ) ๋ฅผ ํ˜ธ์ถœ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ํ•ด์„œ ๋ฐฐ์—ด ์ˆ˜ ๋งŒํผ ์ดˆ๊ธฐํ™”๋ฅผ ์‹œ์ผœ ์ฃผ์–ด์•ผํ•œ๋‹ค. for ( int i = 0 ; i < 10 ; ++i ) { test[i].Initialize( 10, 10 ); }

Visual Studio์—์„œ Cocos2d-x ์ฝ˜์†”์ฐฝ ๋กœ๊ทธ ๋„์šฐ๊ธฐ

1. win32/main.cpp #pragma comment(linker, "/entry:wWinMainCRTStartup /subsystem:console"); ์ถ”๊ฐ€ํ•œ๋‹ค. 2. ํ”„๋กœ์ ํŠธ ์†์„ฑ -> ๋ง์ปค -> ์‹œ์Šคํ…œ  -> ํ•˜์œ„์‹œ์Šคํ…œ ์ฝ˜์†”(SUBSYSTEM::CONSOLE) ๋กœ ๋ณ€๊ฒฝ

Cocos2d-x / c++ casting์— ๋Œ€ํ•˜์—ฌ..

http://sweeper.egloos.com/m/1907485 ๋ช…์‹œ์  ํƒ€์ž…์บ์ŠคํŒ…์— ๋Œ€ํ•˜์—ฌ..