Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

cocos2d-x 3.0 新しい物理演算クラスの利用

6,213 views

Published on

cocos2d-x 3.0 新しい物理演算クラスの利用

Published in: Technology
  • Be the first to comment

cocos2d-x 3.0 新しい物理演算クラスの利用

  1. 1. cocos2d-x 3.0 新しい物理演算クラスの利用 株式会社TKS2 清水友晶
  2. 2. 清水 友晶 —  株式会社TKS2 スマートフォンアプリ開発 Webコンテンツ開発 —  日本cocos2d-xユーザ会代表 講演活動 執筆活動 —  チラ裏開発メモ: http://tks2.net/memo —  SlideShare: http://www.slideshare.net/doraemonsss
  3. 3. —  6/25発売 —  6/18発売 —  2,800円 + 税 —  2,980円 + 税 —  400ページ —  312ページ —  日経ソフトウェア 2014年2月号
  4. 4. —  日本cocos2d-xユーザ会 http://cocos2d-x.jp —  cocos2d-x開発元Chukong Technologies社公認 —  cocos2d-xのための自由なコミュニティー —  入門者から上級者まで誰でもOK!!ぜひご参加を! (1100人以上参加) —  cocos2d-xに関することなら何でも投稿できます!! —  https://www.facebook.com/groups/cocos2dxjp/
  5. 5. —  1/23 第16回 shinjuku.cocos2d-x —  2/20 第17回 shinjuku.cocos2d-x —  3/M 第18回 shinjuku.cocos2d-x
  6. 6. 目次 —  cocos2d-xの物理演算エンジンについて —  Chipmunkについて —  物理空間の基本 —  新しい物理演算用クラスについて —  —  —  —  PhysicsWorld PhysicsBody PhysicsContact PhysicsJoint
  7. 7. cocos2d-xの物理演算エンジンについて —  cocos2d for iPhoneやcocos2d-x (C++)では、次の2D向 け物理演算エンジンが利用できることが知られている —  Box2D —  Chipmunk —  JavaScript Bindings(JSB)においては、Box2Dでのパ フォーマンスが悪いため、Chipmunkのみが利用されていた —  cocos2d-x 3.0 betaでは、3種類の物理演算エンジンの利 用方法がある —  物理演算エンジンを直接利用する (Box2D, chipmunk) —  PhysicsSpriteクラスの利用 (Box2D, chipmunk) —  こちらの方法は、日経ソフトウェア2014年2月号で紹介 —  PhysicsWorld, PhysicsBodyクラスなどの利用(chipmunk) —  今日のハンズオンで紹介
  8. 8. Chipmunkについて —  http://chipmunk-physics.net —  C言語で開発された2D向け物理演算エンジン —  無償で利用可能 —  有償版もある —  Unity向け(C#) —  PRO版
  9. 9. 物理空間の基本 —  物理空間(world)を用意する —  オブジェクトに対して、物理構造(body)を用意する World(Space) それぞれに物理構造(body)を与える
  10. 10. 新しい物理演算用クラスについて —  cocos2d-x 2.x系までは、Box2DやChipmunkが用意して いるメソッド・構造体などを直接(CCPhysicsSpriteクラス を含む)利用する必要があった(3.x系でも利用可能) —  cocos2d-x 3.x系より、Chipmunkを知らなくても物理演算 用のクラスを利用することで、物理エンジンを利用するこ とが可能になった —  Sceneクラスには、標準で物理空間(world)を用意できるメ ソッドが追加された —  Spriteクラスには、標準で物理構造(body)を設定できるメソッ ドが追加された —  その他、便利なクラスが多数用意されている
  11. 11. 今日使う画像 —  ボール http://goo.gl/gfCcL3
  12. 12. PhysicsWorld —  物理空間に相当する —  worldは、Sceneクラスが保持する —  Sceneクラスのインスタンスを生成するとき、次のメ ソッドを実行する —  Scene::createWithPhysics() —  そのインスタンスに対して、getPhysicsWorld()メ ソッドを実行することで、PhysicsWorldを取得できる —  重力は、PhysicsWorldに対してsetGravity()メソッド により設定する
  13. 13. PhysicsBody —  物理構造に相当する —  PhysicsBody::create()メソッドの他に、次のような メソッドが用意されている —  createCircle() —  createBox() —  createEdgeBox() —  createPolygon() —  SpriteクラスのsetBodyメソッドの引数に、 PhysicsBodyクラスのインスタンスを渡すことで、オ ブジェクトに対して物理構造を与えることができる
  14. 14. PhysicsContact —  物理構造を持ったオブジェクト同士が、衝突したときのイベ ントを受け取ることができる —  イベントリスナーを利用する —  EventListenerPhysicsContact —  受け取るイベントは次の4つ —  —  —  —  onContactBegin onContactSeperate onContactPreSolve onContactPostSolve —  特定のオブジェクト同士が、衝突したときのイベントのみを 受けることも可能
  15. 15. PhysicsJoint —  2つのオブジェクトを連結することができる —  PhysicsJointクラスを利用することで様々な連結を行 うことができる —  ただし振る舞いを想像しにくい。。。&説明しにくい —  サンプルを見たほうが、理解しやすい —  cocos2d-x TestCPP - PhysicsTest
  16. 16. おわり —  次回、CocoStudioとcocos2d-xの連携2

×