SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

cocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツールcocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツール
Tomoaki Shimizu
 
cocos2d-x開発事例勉強会
cocos2d-x開発事例勉強会cocos2d-x開発事例勉強会
cocos2d-x開発事例勉強会
Tomoaki Shimizu
 
Cocos2d-xのかんたんな紹介
Cocos2d-xのかんたんな紹介Cocos2d-xのかんたんな紹介
Cocos2d-xのかんたんな紹介
Tomoaki Shimizu
 

Tendances (20)

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

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

cocos2d-xとCocosBuilder
cocos2d-xとCocosBuildercocos2d-xとCocosBuilder
cocos2d-xとCocosBuilder
Tomoaki Shimizu
 
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋
Tomoaki Shimizu
 

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

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

Plus de Tomoaki Shimizu

Plus de Tomoaki Shimizu (11)

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

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