2월, 2013의 게시물 표시

cocos2d-x Enable OpenGLES Stencil Buffer

이미지
cocos2d-x Sample의 ClippingNodeTest 쪽을 보면 위와같이 스텐실 버퍼와 관련된 샘플을 확인할 수 있습니다. 이번 신규 프로젝트가 이 스텐실 버퍼를 사용하고 있어서 약간의 수정이 필요하더군요.


iOS


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    // Add the view controller's view to the window and display.
    window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
    EAGLView *__glView = [EAGLView viewWithFrame: [window bounds]
                                     pixelFormat: kEAGLColorFormatRGBA8
                                     depthFormat: GL_DEPTH_COMPONENT16
                              preserveBackbuffer: NO
                                      sharegroup: nil
                                   multiSampling: NO
                                 numberOfSamples:0 ];

 위 부분에서 볼드 처리한 부분을 GL_DEPTH24_STENCIL8_OES 로 변경하면 됩니다.

Android
///< import 추가 import org.cocos2dx.lib.Cocos2dxGLSurfaceView;

node.js Connect 모듈 테스트중 has no method 'router'

이미지
iisnode encountered an error when processing the request.
HRESULT: 0x2 HTTP status: 500 HTTP reason: Internal Server Error You are receiving this HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled configuration setting is 'true'.
In addition to the log of stdout and stderr of the node.exe process, consider using debugging and ETW traces to further diagnose the problem.
The last 64k of the output generated by the node.exe process to stderr is shown below:
Application has thrown an uncaught exception and is terminated: TypeError: Object function createServer() { function app(req, res, next){ app.handle(req, res, next); } utils.merge(app, proto); utils.merge(app, EventEmitter.prototype); app.route = '/'; app.stack = []; for (var i = 0; i < arguments.length; ++i) { app.use(arguments[i]); } return app; } has no method 'router' at Object.<anonymous> (C:\Users\wwforever.NOWCOM\Documents\My Web Sites\鍮� �ъ씠��server.js:3…

TileMap Tools Research

이미지
개인 프로젝트를 진행하는데 있어서 타일맵툴이 필요하게 되었습니다. 이미 어떤툴을 사용할지는 정해졌지만, 그래도 어떤것들이 있는지 리서치 해본것을 정리해봅니다.

1. Tiled
 이게 제가 사용할 Tiled라는 타일맵툴입니다. 일반 타일이나 스샷과 같은 isometric 맵도 지원해줍니다. tmx라는 파일 포맷으로 저장되는데 뭐니뭐니해도 cocos2d 시리즈들도 지원해주기 때문에 이 녀석으로 결정했습니다. 0.9 버전이 최신이고 계속 꾸준히 업데이트 되네요.


2. tIDE( Tilemap Integrated Development Environment)
 Tiled와 비슷한 기능들을 지원해주고 있네요. tIDE 라는 타일맵 에디터와 xTile이라는 타일 렌더링 엔진등이 있는데 지금은 망해가는? XNA 기반으로 되어있네요.


3. Tile Studio
 타일맵 제작은 기본이고 타일을 자체 제작까지 할 수 있는듯 한데 tmx가 아닌 tsd라는 포멧으로 저장하나 보내요. 고로 cocos2d-x에는 맞지 않을듯.


4. D2D Map Editor
 이것도 자체 포멧인 듯.


5. iTileMaps
 iPad나 iPhone에서 직접 에디팅이 가능한 툴입니다. 영상 하나로 설명이 되네요. 무료도 있지만 유료라는게...


6. TileME(Tile Map Editor)
 J2ME기반 인듯한데 뭔가 업데이트가 중단된거 같네요.


7. GPU Tile Map demos
 툴은 아니고 웹기반에서 GPU로 타일맵을 빠르게 처리하는 분이 계시는군요. 관련 테스트는 여기서 보시면 됩니다.. 마우스 스크롤 해보시면...


8. BXG HTML5 Game Engine
 HTML5기반으로 되어있는 게임엔진인듯 하네요. 맵, 레벨에디터가 있고 HTML5 기반이라 웹브라우저에서 실행을 합니다.


9. Mappy Editor
 뭐랄까 Windows95 시절에 만들어진건가?

 처음에도 언급했듯이 첫번째 Tiled 맵 에디터를 사용해서 진행해 볼까합니다. 아래 링크에 타일맵 관련 강좌 영상이 총 24개나 있네…

node.js ejs 모듈 Unexpected token = 에러

iisnode encountered an error when processing the request.

HRESULT: 0x6d HTTP status: 500 HTTP reason: Internal Server Error You are receiving this HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled configuration setting is 'true'.
In addition to the log of stdout and stderr of the node.exe process, consider using debugging and ETW traces to further diagnose the problem.
The last 64k of the output generated by the node.exe process to stderr is shown below:
Application has thrown an uncaught exception and is terminated: SyntaxError: Unexpected token = at Object.Function (unknown source) at exports.compile (C:\Users\wwforever.NOWCOM\Documents\My Web Sites\鍮� �ъ씠��node_modules\ejs\lib\ejs.js:234:12) at Object.exports.render (C:\Users\wwforever.NOWCOM\Documents\My Web Sites\鍮� �ъ씠��node_modules\ejs\lib\ejs.js:273:10) at C:\Users\wwforever.NOWCOM\Documents\My Web Sites\鍮� �ъ씠��server.js:8:21 at fs.readFile (fs.js:176:14) at Object.oncomplete (…

WebMatrix Local Project에 node.js 외부 모듈 설치

이미지
지난 포스팅에서 웹매트릭스 확장 갤러리 기능으로 node.js 외부 모듈 설치를 해봤었습니다. 근데 만든 프로젝트의 하위 폴더의 node_modules에 외부 모듈이 설치되는게 아니고 글로벌한 위치?인 Users에 설치된다는게 좀 그랬었죠. 따로 복사를 해줘야했으니까요. 그런데 좀 더 만지다보니 로컬 프로젝트에 쉽게 설치할 수 있더군요.

  node.js 빈 사이트인데요, 마우스 우클릭 -> 새 폴더를 클릭해 node_modules 디렉터리를 만들어준 후 NPM Gallery에서 원하는 외부 모듈을 설치해주면 됩니다.

 ejs가 설치되었습니다. 좀 알아서 자동으로 node_modules 디렉터리 생성해주면 안되나...

WebMatrix의 Extension 기능으로 node.js 외부 모듈 설치해보자

이미지
node.js 외부 모듈인 ejs, jade, connect를 R&D중에 있습니다. 웹매트릭스에 위 스샷과 같이 ejs가 되는지 볼려고 했더니 안되는군요. 뭐 기본적으로 패키지가 설치가 안 되어있겠죠.

 본격적으로 진행하기에 앞서 npm으로 ejs, jade, connect를 설치해줘도 됩니다. 하지만 이번에는 웹매트릭스에 있는 플러그인 관리기능인 확장 갤러리를 써서 패키지를 설치하고 적용하는 것을 정리해보겠습니다.


1. NPM Gallery 설치

 웹매트릭스 제일 오른쪽 위에 있는 확장 버튼을 클릭합니다.

 검색바에 npm을 입력해 찾은 후 설치를 클릭합니다.

 NPM Gallery 정보가 나옵니다. 설치를 클릭합니다.

 라이센스 내용인데 동의함을 클릭합니다.

 잠시 후 설치가 완료됩니다.

 확장 갤러리 버튼 옆에 NPM Gallery 버튼이 생겼습니다.


2. node.js 외부모듈설치

 node.js 외부 모듈중 ejs를 설명해보겠습니다. 나머지도 같은 방법으로 진행하시면 됩니다.

 NPM Gallery 버튼을 클릭 해 ejs를 검색 후 Install을 클릭합니다.

 ejs 패키지에 대한 간단한 설명입니다. Yes를 눌러 패키지를 설치합니다.

 라이센스 화면입니다. I Accept를 클릭해 설치를 마무리합니다.


3. node.js 외부 모듈 적용

 이런식으로 connect와 jade까지 모두 설치하면 스샷 왼쪽에 보이는 것처럼 c:\Users\account\node_modules 라는 디렉터리안에 설치가 됩니다. 물론 처음 말했듯이 콘솔에서 직접 npm 명령어로 설치해도 이곳에 설치가 됩니다. 그런데 패키지를 설치하면 자동으로 적용되는줄 알았는데 아니더군요.

 설치한 패키지를 적용하려면 개발중인 node.js 프로젝트 디렉토리에 node_modules 디렉토리를 만들어 필요한 외부 패키지를 그 안에 복사해줍니다. 위 스샷에서 오른쪽에 보이는 것이 node.js 프로젝트입니다.

 웹매트릭스에서 F5 키를 눌러 갱신하면 왼쪽처럼 node_modules …

WebMatrix에서 node.js x64 버전 사용하기

이미지
구름IDE를 사용중에 아직은 정식버전이 아니라 이런저런 문제도 있고 사실 클라우드 환경의 통합 개발 환경은 현재 필요가 없죠. 그래서 인텔리센스도 지원해준다는 WebMatrix(웹매트릭스)로 급 전향했습니다.

The iisnode module is unable to start the node.exe process. Make sure the node.exe executable is available at the location specified in the system.webServer/iisnode/@nodeProcessCommandLine element of web.config. By default node.exe is expected to be installed in %ProgramFiles%\nodejs folder on x86 systems and %ProgramFiles(x86)%\nodejs folder on x64 systems.

 node.js 템플릿으로 빈 사이트를 만들어 실행했더니 뜨라는 Hello, world!는 안뜨고 위와 같은 메세지가 뜨네요. iisnode가 node.js x86버전만 지원해서 생기는 문제랍니다. 기존에 전 node.js 64bit를 설치했었습니다. 해결방법은 총 3가지가 있네요.


해결1

 node.js x86버전을 설치해주면 간단히 해결됩니다.


해결2

 진행중인 사이트의 web.config 파일에 보면 위와같이 iisnode관련 설정들이 주석되어 있습니다.


<iisnode
          nodeProcessCommandLine="\program files\nodejs\node.exe"
        />

 위에것이 node관련 path 설정부분입니다. 이것만 일단 추가해주면 해결됩니다.


해결3

 x64 디렉터리를 x86 디렉터리에 기호화된 링크를 만듭니다.

 cmd를 관리자권한으로 실행하신 후 mklink /d "c:\Program Files (x86)\nodejs" &q…

node.js 500 Error: Cannot find module 'ejs'

이미지
구름IDE에서 열심히 node.js R&D 중에 있습니다. node.js 기본 모듈을 끝내고 외부모듈인 ejs, jade, connect를 테스트 하려고 구름에서 지원하는 node.js Express Project를 만들었습니다. 참고로 Express는 ejs, jade, connect를 모두 포함하는 웹 개발 프레임워크라고 하네요.


Express500 Error: Cannot find module 'ejs'at Function.Module._resolveFilename (module.js:338:15)at Function.Module._load (module.js:280:25)at Module.require (module.js:362:17)at require (module.js:378:17)at new View (/usr/local/lib/node_modules/goorm/node_modules/express/lib/view.js:42:49)at Function.app.render (/usr/local/lib/node_modules/goorm/node_modules/express/lib/application.js:486:12)at ServerResponse.res.render (/usr/local/lib/node_modules/goorm/node_modules/express/lib/response.js:753:7)at exports.index (/usr/local/lib/node_modules/goorm/workspace/wwforever_testExpress/routes/index.js:7:7)at callbacks (/usr/local/lib/node_modules/goorm/node_modules/express/lib/router/index.js:161:37)at param (/usr/local/lib/node_modules/goorm/node_modules/express/lib/router/index.js:135:11)

500 …

Undefined symbols for architecture armv7

이미지
Undefined symbols for architecture armv7 또는 Undefined symbols for architecture i386 에러가 Xcode에서 빌드시 발생할 수 있습니다.


Undefined symbols for architecture i386:   "aaa::bb()", referenced from:       eee::~eee() in eee.o   "aaa::ccc(aaaa)", referenced from:       fff::fff() in fff.o   "aaa::ddd()", referenced from:       fff::ggg() in fff.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

 이런식으로 로그가 생기죠.

 원인은 Xcode에 소스코드 추가할 때 Add to targets의 체크를 해제하고 추가하면 이런 문제가 생기네요.

 프로젝트 네비게이터에서 문제가 되는 파일을 선택하고 오른쪽에 보이는 유틸리티의 Target Membership에서 프로젝트에 체크를 하고 빌드하면 에러가 해결됩니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

이미지
맥에 클라우드 통합 개발 환경인 구름 IDE를 설치했었습니다. 이번에는 구름 IDE를 익힐겸 간단하게 node.js 프로젝트를 만들어 Hello World를 띄워주는 심플한 웹서버를 만들어보겠습니다. 언제나 그렇듯? 이슈 내용도 같이 정리해나갑니다.


1. node.js 프로젝트 생성

  파일 -> 새로 만들기 -> node.js Project를 하시거나 Alt + N을 눌러 새 프로젝트 선택 창을 띄웁니다. Express Project는 node.js를 이용한 웹 프레임워크중 하나라고 하네요. 간단하게 할 것이므로 Nodejs Project를 선택하고 다음을 클릭합니다.

 프로젝트 이름과 내용을 입력 후 확인을 클릭합니다.

 그런데 생성이 안되네요. 처음엔 프로젝트 내용에 . 이나 한글을 넣어서 안되는줄 알았는데 프로젝트 생성자에 한글이 있어서 안되는 것 같습니다. 유저 정보를 변경해야겠네요.

 계정 -> 계정 정보를 클릭하거나 커뮤니케이션에 보이는 아이디 목록에서 마우스 우클릭 -> 유저 정보를 클릭합니다.

 계정 정보창이 뜨는데 정보 변경을 클릭해 이름을 영문으로 변경합니다. 다시 프로젝트 생성을 시도해봅니다.

 이번에는 Server can not response가 뜨네요. 구름 질문 게시판에 문의해보니 구름이 설치된 경로에 workspace 디렉터리를 생성해보라고 하네요. 그러고보니 구름 실행시에 나왔던 터미널 로그중에,

Ahnui-Mac-mini:/ ahnsanghak$ goorm start
Do you want to send server information to developer?(yes/no) yes
Information was sent.
goormIDE:: loading config...
--------------------------------------------------------
workspace_path: /usr/local/lib/node_modules/goorm/workspace/
temp_dir_path: /u…

Mac OSX에 클라우드 통합 개발 환경을 세팅해보자. goorm(구름) IDE 설치하기

이미지
node.js 개발에 적합한 IDE가 뭔가 있는지 리서치 했었습니다. 결론은 한국의 멋진 대학생들에 의해 만들어진 goorm(구름) IDE를 사용하기로 결정했습니다. 구름이 맥과 우분투만을 지원하기 때문에 맥에 설치하는 과정을 정리해봅니다.


1. node.js 및 npm 설치

 기존에 Windows 환경에 node.js와 npm 설치하는 것을 정리했었는데요, 맥에 설치하는 것도 이와 비슷하므로 따로 정리는 하지 않겠습니다.


2. npm으로 구름 IDE 설치

 터미널에서 스샷과 같이 sudo npm install goorm -g 를 입력해 npm 중앙 저장소에 있는 구름 최신버전을 받아 설치를 합니다. 많은 것들이 자동으로 설치 됩니다.


3. MongoDB 설치

 구름은 몽고DB를 사용한다네요. 맥에 홈브류를 사용해서 몽고DB 설치하는 것을 따로 정리했으니 링크를 참고하세요.


4. 구름 실행

구름 사이트의 설치가이드에 보고


/Users/ahnsanghak
Ahnui-Mac-mini:~ ahnsanghak$ node goorm.js start

 위와같이 터미널에서 실행을 했더니,

module.js:340
    throw err;
          ^
Error: Cannot find module '/Users/ahnsanghak/goorm.js'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)


 위와같은 에러가 나면서 실행이 안되더군요. 아무래도 goorm.js를 못 찾는듯해서 다른 실행방법인 goorm start로 실행했더니


Ahnui-Mac-mini:/ ahnsanghak$ goorm start
Do y…