cocos2d-x JavaScript Bindingsについて

20
cocos2d-x JavaScript Binding について 株式会社TKS2 清水友晶

description

cocos2d-x JavaScript Bindingsについて

Transcript of cocos2d-x JavaScript Bindingsについて

Page 1: cocos2d-x JavaScript Bindingsについて

cocos2d-x JavaScript Binding

について

株式会社TKS2 清水友晶

Page 2: cocos2d-x JavaScript Bindingsについて

�  株式会社TKS2 http://tks2.net

�  スマートフォンアプリ開発 (iOS, Android, Windows Phone 8) Webコンテンツ開発

�  cocos2d-xへの開発参加 cocos2d-xを利用したアプリ開発 講演活動 執筆活動

�  Twitter: tks2shimizu

�  Blog: http://tks2.net/memo �  SlideShare: http://www.slideshare.net/doraemonsss �  Facebook: http://www.facebook.com/doraemonsss

清水 友晶

Page 3: cocos2d-x JavaScript Bindingsについて

もうすぐ出版されます

ccooccooss22dd--xx入�門

CCOOMMIINNGG SSOOOONN

Page 4: cocos2d-x JavaScript Bindingsについて

�  http://cocos2d-x.jp

�  cocos2d-x開発元Chukong Technologies社公認

�  cocos2d-xのための自由なコミュニティー

�  入門者から上級者まで誰でもOK!!ぜひご参加を!

�  cocos2d-xに関することなら何でも投稿できます!!

�  https://www.facebook.com/groups/152840204871454/

Page 5: cocos2d-x JavaScript Bindingsについて

�  5/22 第8回 shinjuku.cocos2d-x

�  6/11 shinjuku.cocos2d-x初心者ハンズオン     ~MacでAndroidアプリ開発環境を作ろう!~

�  6/22 cocos2d-xハンズオン勉強会

�  6/25 第9回 shinjuku.cocos2d-x

�  7/M shinjuku.cocos2d-x初心者ハンズオン     ~WindowsでAndroidアプリ開発環境を作ろう!~

�  8/M shinjuku.cocos2d-x初心者ハンズオン     ~MacでiOSアプリ開発環境を作ろう!~

Page 6: cocos2d-x JavaScript Bindingsについて

目次 �  cocos2d-xにおけるC++とJavaScriptの違い

�  ゲームを作成してみよう!

�  JavaScriptを利用した機能

Page 7: cocos2d-x JavaScript Bindingsについて

cocos2d-xにおける C++とJavaScriptの違い

�  対応OS �  C++ iOS, Android, Win32, 他多数 �  JS iOS, Android, Win32

�  アプリのスタート �  C++ AppDelegate::applicationDidFinishLaunching(); �  JS main.js

�  クラス(基本的に似ている) �  C++ CCDirector, CCScene, CCLayer, CCSprite �  JS cc.Director, cc.Scene, cc.Layer, cc.Sprite

Page 8: cocos2d-x JavaScript Bindingsについて

ゲームを作成してみよう! �  作成するゲームは1~25を順番にタップするゲーム

Page 9: cocos2d-x JavaScript Bindingsについて

ゲームを作成してみよう! �  プロジェクト作成

�  project-creator �  cd ./cocos2d-2.1rc0-x-2.1.3/tools/project-creator �  ./create_project.py

-project nyan25js -package net.tks2.nyan25js -language javascript

�  プロジェクト �  cocos2d-2.1rc0-x-2.1.3/project/nyan25js

�  リソースの配置 �  http://tks2.net/other/cardsjs.zip �  nyan25js/Resources/res

�  Xcode上では参照型ディレクトリとして登録されているため、Xcode上での追加作業は不要

Page 10: cocos2d-x JavaScript Bindingsについて

カードを表示 �  キーポイント

�  CCDirector è cc.Director �  CCSprite è cc.Sprite �  CCP è cc.p

�  ソースはこちら https://gist.github.com/tks2shimizu/4daa18de6b892061c7dc

Page 11: cocos2d-x JavaScript Bindingsについて

タップ処理 �  キーポイント

�  this.setTouchEnabled(true); �  this.setTouchMode(cc.TOUCH_ONE_BY_ONE);

�  onTouchBegan �  onTouchMoved �  onTouchEnded �  onTouchCanceled

�  ソースはこちら https://gist.github.com/tks2shimizu/d9c1ca033fd873786c25

Page 12: cocos2d-x JavaScript Bindingsについて

ゲーム時間の表示 �  キーポイント

�  this.schedule(this.measureGametime); �  this.unschedule(this.measureGametime); �  measureGametime:function(dt)

�  CCLabelTTF è cc.LabelTTF

�  ソースはこちら https://gist.github.com/tks2shimizu/fa7735926c9cb9b502ec

Page 13: cocos2d-x JavaScript Bindingsについて

ハイスコアの表示 �  キーポイント

�  sys.localStorage

�  ソースはこちら https://gist.github.com/tks2shimizu/dd626d40d07c8e142c90

Page 14: cocos2d-x JavaScript Bindingsについて

リロードボタン �  キーポイント

�  cc.MenuItemLabel �  cc.Menu

�  ソースはこちら https://gist.github.com/tks2shimizu/28d5ac58d1e9a3b267c7

�  完成!!

Page 15: cocos2d-x JavaScript Bindingsについて

JavaScriptを利用した機能 ソースのダウンロード??

Page 16: cocos2d-x JavaScript Bindingsについて

ネイティブのアプリにおいて アプリの更新を瞬時に行う方法 �  iOSアプリにおいてアプリを更新するには、Appleによる審査が必要。è1~2週間

�  Androidアプリにおいてアプリを更新するには、反映されるまでに掛かる。è2~3時間

�  WebViewを利用しJavaScriptで記述する方法もあるが問題あり。 �  Appleの審査が通らない �  処理が遅い �  バージョンによって処理が微妙に異なる

�  これらを解決する方法は、cocos2d-xにあります。

Page 17: cocos2d-x JavaScript Bindingsについて

AssetsManagerクラス �  画面となるソースコード・リソースをダウンロードし、アプリを修正・拡張することができる

�  SpiderMonkey(JavaScriptエンジン)搭載

�  cocos2d-2.1rc0-x-2.1.3/samples/Cpp/AssetsManagerTest

�  必要なデータ �  ソースコード(JavaScript)・リソース �  バージョンファイル(1.0.1)

Page 18: cocos2d-x JavaScript Bindingsについて

iOS版リリースまでの流れ �  新規アプリ登録

アプリとして成立する 最小限の実装

アプリ 申請

アプリ 申請完了

アプリ リリース

アプリの追加実装

Page 19: cocos2d-x JavaScript Bindingsについて

メリット・デメリット �  メリット

�  アプリ更新の際、アプリ申請不要 �  Android版との同時リリースが容易

�  デメリット �  Android版においては、解析が容易(要root) �  iOS版においては、Jailbreakにより解析が可能 �  SpiderMonkey搭載のためアプリサイズが大きくなる

�  使いどころ �  ダウンロードコンテンツにより、他ユーザへ影響を及ぼさないもの

�  ゲームがアプリ内だけで完結する場合は適さない

�  備考 �  Appleにより弾かれたという報告は今のところない

Page 20: cocos2d-x JavaScript Bindingsについて

おわり

�  ありがとうございました