29. retina対応の仕方①
• AppDelegate.mの以下の行をコメントにす
ると、retina非対応になる。デフォルトでは
retinaがONになっている
• retina対応にする場合、全部の画像を用意す
る必要がある。画像が見つからない場合、小
さい画像が表示されるので注意しよう
// Enables High Res mode (Retina Display) on iPhone 4 and
maintains low res on all other devices
//if( ! [director_ enableRetinaDisplay:YES] ) ←コメントすると非対応
CCLOG(@"Retina Display Not supported");
30. retina対応の仕方②
• retina画像を用意する(通常画像の名前の
最後に-hdを付けたファイルを用意)
※AppDelegate.mで定義されているので変更可能
// On iPad HD : "-ipadhd", "-ipad", "-hd
// On iPad : "-ipad", "-hd
// On iPhone HD: "-hd
41. AppDelegate.mm
// Create an CCGLView with a RGB565 color buffer,
and a depth buffer of 0-bits
CCGLView *glView = [CCGLView viewWithFrame:
[window_ bounds]
pixelFormat:kEAGLColorFormatRGBA8 //
kEAGLColorFormatRGBA8
depthFormat:0 //
GL_DEPTH_COMPONENT24_OES
preserveBackbuffer:NO
sharegroup:nil
multiSampling:NO
numberOfSamples:0];
74. やってみよう④
sprite.position = ccp(p.x, p.y);
// Define the dynamic body.
//Set up a 1m squared box in the physics world
bodyDef.type = b2_dynamicBody;
bodyDef.position.Set(p.x/PTM_RATIO, p.y/PTM_RATIO);
body = world->CreateBody(&bodyDef);
// add the fixture definitions to the body
[[GB2ShapeCache sharedShapeCache] addFixturesToBody:body
forShapeName:name];
[sprite setAnchorPoint:[[GB2ShapeCache sharedShapeCache]
anchorPointForShape:name]];
[sprite setPhysicsBody:body];
77. MEMO
• 重力の指定(左右はなし、下方向に10の重
力)をしている部分
• 地球上の重力が大体10くらいだと思えばOK
• ゲームによって変えてみよう!
b2Vec2 gravity;
gravity.Set(0.0f, -10.0f);
world = new b2World(gravity);
78. MEMO
• doSleepがtrueだと、動きが止まった物
体について、計算を省略するようになる。
• 厳密に計算するならfalseだけど、多分す
る必要はない
// Do we want to let bodies sleep?
world->SetAllowSleeping(true);