SlideShare a Scribd company logo
cocos2d-x 3.0
新しい物理演算クラスの利用
株式会社TKS2 清水友晶
清水 友晶
—  株式会社TKS2
スマートフォンアプリ開発
Webコンテンツ開発

—  日本cocos2d-xユーザ会代表
講演活動
執筆活動

—  チラ裏開発メモ: http://tks2.net/memo
—  SlideShare:
http://www.slideshare.net/doraemonsss
—  6/25発売

—  6/18発売

—  2,800円 + 税

—  2,980円 + 税

—  400ページ

—  312ページ

—  日経ソフトウェア
2014年2月号
—  日本cocos2d-xユーザ会
http://cocos2d-x.jp

—  cocos2d-x開発元Chukong Technologies社公認
—  cocos2d-xのための自由なコミュニティー
—  入門者から上級者まで誰でもOK!!ぜひご参加を! (1100人以上参加)
—  cocos2d-xに関することなら何でも投稿できます!!
—  https://www.facebook.com/groups/cocos2dxjp/
—  1/23 第16回 shinjuku.cocos2d-x
—  2/20 第17回 shinjuku.cocos2d-x
—  3/M 第18回 shinjuku.cocos2d-x
目次
—  cocos2d-xの物理演算エンジンについて
—  Chipmunkについて
—  物理空間の基本
—  新しい物理演算用クラスについて
— 
— 
— 
— 

PhysicsWorld
PhysicsBody
PhysicsContact
PhysicsJoint
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)
—  今日のハンズオンで紹介
Chipmunkについて
—  http://chipmunk-physics.net
—  C言語で開発された2D向け物理演算エンジン
—  無償で利用可能
—  有償版もある
—  Unity向け(C#)
—  PRO版
物理空間の基本
—  物理空間(world)を用意する
—  オブジェクトに対して、物理構造(body)を用意する
World(Space)	

それぞれに物理構造(body)を与える
新しい物理演算用クラスについて
—  cocos2d-x 2.x系までは、Box2DやChipmunkが用意して
いるメソッド・構造体などを直接(CCPhysicsSpriteクラス
を含む)利用する必要があった(3.x系でも利用可能)

—  cocos2d-x 3.x系より、Chipmunkを知らなくても物理演算
用のクラスを利用することで、物理エンジンを利用するこ
とが可能になった
—  Sceneクラスには、標準で物理空間(world)を用意できるメ
ソッドが追加された
—  Spriteクラスには、標準で物理構造(body)を設定できるメソッ
ドが追加された
—  その他、便利なクラスが多数用意されている
今日使う画像
—  ボール
http://goo.gl/gfCcL3
PhysicsWorld
—  物理空間に相当する
—  worldは、Sceneクラスが保持する
—  Sceneクラスのインスタンスを生成するとき、次のメ
ソッドを実行する
—  Scene::createWithPhysics()

—  そのインスタンスに対して、getPhysicsWorld()メ

ソッドを実行することで、PhysicsWorldを取得できる

—  重力は、PhysicsWorldに対してsetGravity()メソッド
により設定する
PhysicsBody
—  物理構造に相当する
—  PhysicsBody::create()メソッドの他に、次のような
メソッドが用意されている
—  createCircle()
—  createBox()
—  createEdgeBox()
—  createPolygon()

—  SpriteクラスのsetBodyメソッドの引数に、

PhysicsBodyクラスのインスタンスを渡すことで、オ
ブジェクトに対して物理構造を与えることができる
PhysicsContact
—  物理構造を持ったオブジェクト同士が、衝突したときのイベ
ントを受け取ることができる

—  イベントリスナーを利用する
—  EventListenerPhysicsContact

—  受け取るイベントは次の4つ
— 
— 
— 
— 

onContactBegin
onContactSeperate
onContactPreSolve
onContactPostSolve

—  特定のオブジェクト同士が、衝突したときのイベントのみを
受けることも可能
PhysicsJoint
—  2つのオブジェクトを連結することができる
—  PhysicsJointクラスを利用することで様々な連結を行
うことができる

—  ただし振る舞いを想像しにくい。。。&説明しにくい
—  サンプルを見たほうが、理解しやすい
—  cocos2d-x TestCPP - PhysicsTest
おわり
—  次回、CocoStudioとcocos2d-xの連携2

More Related Content

PDF
Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから
PDF
cocos2d-x 3.0による変更点
PDF
実はかんたん!ゲームエンジンCocos2d-x入門
PDF
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
PDF
cocos2d-xを利用したパズドラ風ゲームの作成
PDF
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
PDF
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
PDF
CocosBuilderとcocos2d-x JSB
Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから
cocos2d-x 3.0による変更点
実はかんたん!ゲームエンジンCocos2d-x入門
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
cocos2d-xを利用したパズドラ風ゲームの作成
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
CocosBuilderとcocos2d-x JSB

What's hot (20)

PDF
Cocos2d-x 3D Extension
PDF
cocos2d-xにおけるBox2Dの利用方法および便利なツール
PDF
Cocos2d-x 3.2 Eclipseを利用したAndroid開発環境の構築
PDF
cocos2d-xとCocos Code IDE
PDF
cocos2d-x開発事例勉強会
PDF
cocos2d-xおよび開発ツールについて
KEY
Cocos2d-xのかんたんな紹介
PDF
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
KEY
Cocos2d xのススメ
PDF
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
PDF
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
PDF
CocosBuilderを利用した開発の進め方
PDF
cocos2d-xの開発に欠かせないCocosBuilderについて
PDF
Cocos2d-x公開講座 in 鹿児島
PDF
Windowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築について
PPTX
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
PPTX
Cocos2d-x(JS) ハンズオン #13「SNS対応(Twitter, Facebook)」
PDF
cocos2d-x JavaScript Bindingsについて
PDF
cocos2d-xのサーバ連携について
PDF
CocoStudioとcocos2d-xの連携2
Cocos2d-x 3D Extension
cocos2d-xにおけるBox2Dの利用方法および便利なツール
Cocos2d-x 3.2 Eclipseを利用したAndroid開発環境の構築
cocos2d-xとCocos Code IDE
cocos2d-x開発事例勉強会
cocos2d-xおよび開発ツールについて
Cocos2d-xのかんたんな紹介
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Cocos2d xのススメ
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
CocosBuilderを利用した開発の進め方
cocos2d-xの開発に欠かせないCocosBuilderについて
Cocos2d-x公開講座 in 鹿児島
Windowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築について
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #13「SNS対応(Twitter, Facebook)」
cocos2d-x JavaScript Bindingsについて
cocos2d-xのサーバ連携について
CocoStudioとcocos2d-xの連携2
Ad

Similar to cocos2d-x 3.0 新しい物理演算クラスの利用 (19)

PDF
cocos2d-xで利用できる暗号化
PDF
cocos2d-xの概要とこれまでの進化・これからの展開
PDF
cocos2d-xにおけるマップエディタの利用
PDF
cocos2d-xにおけるデータ管理
PDF
cocos2d-xのいろいろなオブジェクトの利用
PDF
cocos2d-xとspine
PDF
Cocos Code IDEを使ってみた
PDF
CocoStudioの紹介
PDF
CocoStudioとcocos2d-xの連携
PPTX
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
PPTX
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
PDF
cocos2d-xとCocosBuilder
PDF
かんたんなcocos2d-xの紹介
PDF
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
PPTX
Cocos2d-x(JS)の紹介
PDF
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
PDF
cocos2d-xハンズオン勉強会 in 名古屋
PDF
Cocosサービスについて
PDF
GTMF2015: Cocos最新情報と日本展開 | Chukong Technologies Japan株式会社
cocos2d-xで利用できる暗号化
cocos2d-xの概要とこれまでの進化・これからの展開
cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるデータ管理
cocos2d-xのいろいろなオブジェクトの利用
cocos2d-xとspine
Cocos Code IDEを使ってみた
CocoStudioの紹介
CocoStudioとcocos2d-xの連携
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
cocos2d-xとCocosBuilder
かんたんなcocos2d-xの紹介
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
Cocos2d-x(JS)の紹介
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
cocos2d-xハンズオン勉強会 in 名古屋
Cocosサービスについて
GTMF2015: Cocos最新情報と日本展開 | Chukong Technologies Japan株式会社
Ad

More from Tomoaki Shimizu (11)

PPTX
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
PPTX
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
PPTX
Cocos2d-x(JS) ハンズオン #10「3D機能とVR機能」
PPTX
Cocos2d-x(JS) ハンズオン #09「ラベル・テキストボックス」
PPTX
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
PPTX
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
PPTX
Cocos2d-x(JS) ハンズオン #04「タッチイベントの使い方」
PPTX
Cocos2d-xにおけるモバイル開発〜将来を見据えた開発〜
PPTX
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
PPTX
Cocos2d-x(JS) ハンズオン #02 「画像表示とアクション」
PDF
タワーオブスペルズ x cocos2d-x
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
Cocos2d-x(JS) ハンズオン #10「3D機能とVR機能」
Cocos2d-x(JS) ハンズオン #09「ラベル・テキストボックス」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #04「タッチイベントの使い方」
Cocos2d-xにおけるモバイル開発〜将来を見据えた開発〜
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
Cocos2d-x(JS) ハンズオン #02 「画像表示とアクション」
タワーオブスペルズ x cocos2d-x

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