Kobold2d users_guide_japanese

45
cocos2dユーザーのための Kobold2D入門

description

for Japanese developer.Kobold2D User Guide Japanese.I joined Kobold2D member today.Japanese documentation coming soon...http://www.kobold2d.com/display/KKSITE/Home

Transcript of Kobold2d users_guide_japanese

cocos2dユーザーのためのKobold2D入門

自己紹介

@Seasonscocos2d AUTHOR

Blog:Seasons.NET•cocos2dリリース情報の翻訳•テクニカル情報の翻訳

@cocos2dfan_jp 管理人•cocos2dに関する情報を不定期にポスト

iOSでの代表作

ライター業務2011年9,10月号は、IMPACT特集書きました!!

自己紹介

Kobold2Dとは?

• cocos2dベース• MIT ライセンス、オープンソース• 2Dゲームフレームワーク• 各種サードパーティライブラリ込み• インストーラー付き!• アップデーター付き!• ドキュメント整備されてる!• http://www.kobold2d.com

Kobold2Dとは?

• cocos3d(3D)• wax(Lua,スクリプト)• iAd(広告)• iSimulator(加速度センサー)• SneakyInput(ジョイスティック)• cocos2d extensions(各種拡張)• Chipmunk(物理エンジン)• Box2D (物理エンジン)• ObjectAL(サウンドライブラリ)• CocosDension(サウンドライブラリ)

Built in!!

Kobold2Dとは?

cocos2dの不満を解消すべく現れた新星!!

1.初心者に易しく2.サポートも手厚い3.サンプルゲームも豊富

Awesome!!

Kobold2Dの作者

@gaminghorror氏

cocos2dを最もよく知る方

cocos2d本原書の著者!!

さて、本日のお話

cocos2d → Kobold2D 乗り換えのUsers Guideを日本語翻訳したよという大事なお話とお知らせ

Kobold2Dに必要な環境

最低構成• Xcode 4.0• iOS 4.3• Mac OS X Snow Leopard(10.6)• 500MB以上のディスクスペース

推奨構成• Xcode 4.1 or それ以上• Mac OS X Lion(10.7)• Objective-C プログラミング経験あり

Kobold2Dインストール環境

主な手順• Kobold2Dインストーラーパッケージをダウンロード• Kobold2D.pkgを起動• 画面の案内に従ってインストール作業!!• 終わり=素敵 :)

Kobold2Dインストール環境

インストール完了後

~/Kobold2D/

※必要なファイルが全てここにインストールされます。

Kobold2D新規プロジェクト作成方法

主な手順• Kobold2D Project Starter.appを起動• テンプレート一覧から選ぶ• [任意]➡ Add to Workspaceでワークスペースを選択➡ 新規ワークスペース作成の場合は名前を入力

• New Project Nameにプロジェクト名を入力

Create Projectボタンを押す前にXcodeは閉じておくこと!!

※Xcode 新規プロジェクトテンプレートには未対応

Kobold2Dプロジェクトファイル構成

Kobold2Dのコミッタとして、ソースコードに手を加える権限でない限り、基本的に__Kobold2D__内の

ソースコードは変更しないこと。

※__Kobold2D__には、Kobold2Dに関する全てのソースコードが含まれています。

Kobold2Dプロジェクトファイル構成

※Kobold2Dのプロジェクト(Project)• Kobold2Dをインストールした直後は、ライブラリのソースのみ• Kobold2Dのワークスペースは、Xcode 4.0,それ以上で開ける• Xcode用Schemeが用意されており、変更も簡単

※Kobold2Dのワークスペース(Workspace)• Kobold2D-X.Y形式の命名規則• デフォルトワークスペースには全てのプロジェクトが含まれる➡ 分けたい場合は新規ワークスペースとして作成すること

Kobold2Dプロジェクトアップグレード方法

※アップグレード専用のアプリが付属してきます。

アップグレードなプロジェクトがハイライトで表示!!(アプリがプロジェクトの状態をスキャン)

Kobold2Dプロジェクトアップグレード

※Kobold2D アップグレーダーの仕事• アップグレード可能なプロジェクトをスキャン&表示• アップグレーダー後は、既存のプロジェクトを上書き&Xcode再起動➡ アップグレード前にXcodeは必ず閉じておくこと!!

※Kobold2D アップグレードの注意点• アップグレードとKobold2D API互換性は関係なし➡ アップグレーダーは、ユーザーのソースコードを自動で変更しない➡ API互換性の対応は、Kobold2Dリリースノートを見ながら手動で対応

【Xcode4の特徴】Xcodeは、最近開いたプロジェクトを開き直します。つまりアップグレード後は、一度手動で最新のKobold2Dのプロジェクト(ワークスペース)を開き直しておく必要がある。そうしないと実は作業していたワークスペースが2世代前だった...ということが発生してしまう。

cocos2dプロジェクトからの移行作業

How to migrate???

cocos2dプロジェクトからの移行作業

※cocos2dプロジェクト以降作業の注意点1. 全てのcocos2dのプロジェクトが移行可能なわけではない➡ もし問題がある場合は、Kobold2Dフォーラムに報告してください

2. マスターが近いプロジェクトの移行作業は避ける➡ プロジェクト互換性に時間を割くことになり、現実的ではない➡ 可能な限り次のプロジェクトからKobold2Dで新規作成をオススメする

3. 利用中のサードパーティライブラリのバージョンの違いに気を付ける➡ Kobold2D標準で搭載されているバージョンの違いを把握して便宜上対応する

cocos2dプロジェクトからの移行作業

Hello-Kobold2d templateを利用した、_Particle_Effects_template_の作成例について

cocos2dプロジェクトからの移行作業

1. Kobold2D projectのお掃除

• 新規プロジェクトを作成して、次のファイルを削除HelloWorld.h/m , Pow.caf , ship.png➡ 消す時は、参照を消すのではなく、ファイルそのものを削除すること

config.luaは、重要なので消さないこと!!

cocos2dプロジェクトからの移行作業

2.プロジェクト専用ソースコードを追加

• 自分のプロジェクトで追加したコードを追加➡ Xcode 「Add Files to」メニューからファイルを選択、Destinationのチェックを入れてiOS , Macのターゲットそれぞれにファイルを追加

•GameConfig.h•(ProjectName)AppDelegate.*•RootViewController.*•main.m•(ProjectName)_Prefix.h•ライブラリソースコード(cocos2d,box2d,etc...)

次のファイルは追加しない!!

cocos2dプロジェクトからの移行作業

3.リソースファイル

• プロジェクト専用で用意したリソースファイルも同様に追加

•Info.plist•Default.png , Icon.png( @2xファイル含む )

次のファイルはこの時点では、追加しない!!

上記標準のリソースファイルを変更している場合は、メモを取ります。あなたは人間ですし、人為的なミスというのは避けることはできません。標準のリソースは、Finderを使って確実にコピーします。また、Info.plistは、追加/変更したものをしっかりメモしておきます。

cocos2dプロジェクトからの移行作業

3.リソースファイル(Info.plist)

Kobold2Dのプロジェクトには、2つのInfo.plistが含まれています。それは、iOS , Macです。

もし、あなたが両方のプラットフォームに対応するつもりならば両方変更する必要があります。

cocos2dプロジェクトからの移行作業

4. config.luaを設定

• config.luaに、プロジェクトやリソースに関する設定を記述

以下、各種設定プロパティの解説

•FirstSceneClassName➡最初に動作させるクラス名

•EnableUserInteraction,EnableMultiTouch➡マルチタッチやユーザー割り込みを有効にするかどうか

•DefaultTexturePixelFormat➡テクスチャのデフォルトフォーマット

•GLViewColorFormat➡OpenGLのカラーバッファフォーマット

•GLViewDepthFormat➡OpenGLの深度バッファフォーマット

cocos2dプロジェクトからの移行作業

•GLViewPreserveBackBuffer➡OpenGLのバックバッファを保存するかどうか

•GLViewMultiSampling➡OpenGLのマルチサンプリングを有効にするかどうか

•GLViewNumberOfSamples➡マルチサンプリング有効時のサンプル数[補足]YESの時、実行時にサンプル可能な最大数を取得し、ユーザーが設定しようとしている値と比較して、最大数を超えないようにしている。

•Enable2DProjection➡3Dビュー(デフォルト)ではなく、正射影を用いる場合

•EnableRetinaDisplaySupport➡RetinaDisplayに対応させるかどうか(素材などは別途用意する必要あり)

•DeviceOrientaion➡実行時のデバイスの向き

cocos2dプロジェクトからの移行作業

•AutorotationType➡自動でデバイスの向きを検出する方法について

•ShouldAutorotateToLandscapeOrientation➡UIViewControllerで回転させる場合の横向き自動回転について

•ShouldAutorotateToPortraitOrientation➡UIViewControllerで回転させる場合の縦向き自動回転について

•AllowAutorotateOnFirstAndSecondGenerationDevices➡第1,2世代において自動回転をサポートするかどうか?NOの場合、AutorotationTypeで設定した値を無視する。[補足]第1,2世代では自動回転をサポートするとフレームレートが落ちる現象があるため

cocos2dプロジェクトからの移行作業

•EnableAdBanner➡iAdを有効にするかどうか(現状、iAdのみサポート)

•LoadOnlyPortraitBanners➡縦向きの時のみ広告を出す

•LoadOnlyLandscapeBanners➡横向きの時のみ広告を出す

•PlaceBannerOnBottom➡画面の下に広告を表示するかどうか

iAd向け設定

cocos2dプロジェクトからの移行作業

•AutoScale➡自動で解像度を拡大するかどうか

•AcceptsMouseMovedEvents➡マウス移動のイベントを受け入れるかどうか?

•WindowFrame➡ウィンドウフレームの定義

Mac OS X向け設定

cocos2dプロジェクトからの移行作業

※config.luaでの注意点1. FirstSceneClassNameは、クラス名であってファイル名ではない➡ 初回実行時のクラス名を書いてください

2. config.luaは削除しないこと➡ Kobold2Dは、このファイルでプロジェクトの設定を構築これらパラメーター設定に不安がある場合は、cocos2dのAppDelegate.m、GameConfig.hで該当する箇所を再確認してください。

もし、config.luaを何も変更しない場合は、Kobold2Dはデフォルトの設定で動作するはずです。もし、奇妙な不具合に見舞われた時、例えば、マルチタッチが動作しないとか、パフォーマンスが低下したとか...config.lua設定における注意点を必ず読むこと!!

cocos2dプロジェクトからの移行作業

※config.lua記述時の注意点• config.luaは、先頭の文字を大文字で記述するが実際に呼び出しているところは小文字でアクセスしている。例えば先頭の文字を小文字にしてしまうとうまく動作しない。

KKStartupSettings Property name:gLViewColorFormatenableMultiTouchdeviceOrientation

config.lua Parameter name:GLViewColorFormatEnableMultiTouchDeviceOrientation

特にこの3つの設定にしくじると先ほどのパフォーマンス低下などの致命的な問題が発生する。

cocos2dプロジェクトからの移行作業

5. 初回起動時のクラスについて

Kobold2Dでは、config.luaのFirstSceneClassに記述されたクラスを実行します。しかも、cocos2dでは定番の+(id) sceneメソッドは呼び出されません。つまり、移行時に+(id) sceneが残っている状態で作業を行うとメソッドが呼び出されず混乱してしまいます。

Kobold2Dでは3つの解決方法を提供します

cocos2dプロジェクトからの移行作業

方法1:scene -> nodeへ変更

+ (id) scene -> + (id) nodeにリネームします。( interface , implementation共に )

最もシンプルな解決方法であり、これはほとんど問題なく動作するはずです。もし、そうでない場合は、2,3のオプションを検討してください。

cocos2dプロジェクトからの移行作業

方法2:+ (id) sceneのコードをinitへ

+ (id) sceneメソッド内に記述しているコードをinitメソッド内に移動させます。

sceneメソッドで他のレイヤーを追加しているごくごく一般的な初期化を行っているのであれば、initへコードを移動することで問題なく動作させることができます。しかし、移動先のレイヤーを独立させて動作させる必要がある場合は、selfにaddChildしてレイヤーを追加させるのではなく、[self.parent addChild:myLayer]を利用してレイヤーを追加しましょう。

cocos2dプロジェクトからの移行作業

方法3:- (void) initializationComplete内に移植

cocos2dの最初のシーンを起動させるための古い習慣に戻すため=互換性を維持するために用意したinitializationCompleteメソッドで今まで通りrunWithSceneで呼び出す。

1,2の方法がとても面倒である場合、最後のこの方法が最もお手軽かもしれません。cocos2dとの互換性を維持するために用意したAppDelegateのinitializationCompleteメソッドにCCDirectorのrunWithSceneで最初のクラスの呼び出しを記述しましょう。

- (void) initializationComplete { [[CCDirector sharedDirector] runWithScene:[MyFirstScene scene]];}

cocos2dプロジェクトからの移行作業

6. AppDelegate,RootViewController移行作業

あなたのプロジェクトでAppDelegateやRootViewControllerを変更している場合は、Kobold2Dの移行作業は慎重に行っていく必要があります。

これらのクラスのメソッドをオーバーライドしている場合は、superメソッドを呼び出すことを忘れないようにしてください。Kobold2Dのデフォルトの実装では、AppDelegate、RootViewControllerクラスをconfig.luaの内容に基づいて、プロパティを有効にしたり、自動回転を動作させることしか行いません。

cocos2dプロジェクトからの移行作業

7. デフォルトのリソースの移行作業

デフォルトのリソース変更の時の注意点で述べたように”大事なメモ”は取ってありますか?標準のリソースを改変したものをKobold2Dに移行する場合は、次のように慎重に行いましょう( 少し冗長過ぎるかもしれませんが^^; )

• Info.plist➡ 追加/変更のあった箇所をもう一度よく確認

• Default.png , Icon.pngなど➡ Finderを使って、Kobold2DのプロジェクトのResourcesフォルダに素材をコピーしていく。その際、Xcode上で画像が更新されたかどうか確認する

cocos2dプロジェクトからの移行作業

8. サードパーティライブラリの移行作業

サードパーティライブラリをアップデートする場合は、利用している、配布されている形態に応じて移行作業を行う。

• cocos2dのようなソースコードのみの提供➡ Kobold2Dのプロジェクトに追加するだけで問題ない

• 既にビルドされたバイナリとヘッダーのみの提供➡ リンクしたいバイナリを登録。ユニバーサルバイナリであればそのまま

Kobold2Dのプロジェクトに登録するだけで問題ないが、シミュレーターとデバイス用に分かれている場合は、リンク設定が必要。

Kobold2D移行作業のErrorとWarning

Warningは、大事なメッセージ!!

Kobold2Dプロジェクトに移行することで以前は存在しなかったエラーやワーニングが増えることでしょう。それはほとんど問題にならないレベルで動作しますが、コーディング規約に従うと100%とはいえません。

例えば、Xcodeのデフォルトビルド設定では、”定義されていないセレクターを呼び出しているコードはワーニング”と見なします。Kobold2Dでもこれをデフォルトとしています。これは妙なクラッシュ問題を避けるためです。また、全てのワーニングはエラーと見なしています。

ワーニングとはクラッシュを未然に防ぐ大事なメッセージなのです。

サポート対象用にプロジェクトを整理

サポート外のプラットフォームを削除する

Kobold2DではデフォルトでiOS , Macなどのプラットフォームごとのスキームを生成しますが、サポート外のプラットフォームは削除しましょう。

1.ターゲット2.ビルドスキーム3.リソースファイル

今後マルチプラットフォーム化を検討するのであれば、

これらのファイルを消す前にじっくり検討すること。

「削除は簡単でも元に戻すの簡単ではない。」

cocos2d → Kobold2D 乗り換え作業は、思ったより大変なので、可能ならKobold2Dで新規作成から~(以下略

One more thing...

Kobold2D.com 日本語マニュアル(Japanese side)担当決定!!Kobold2D.com 正式メンバーとして加入

日本語ドキュメント準備中.....http://www.kobold2d.com/display/KKDOC/Kobold2D+User%27s+Guide

Enjoy Kobold2D!!