Kobold2d users_guide_japanese
-
Upload
keisuke-hata -
Category
Technology
-
view
6.803 -
download
0
description
Transcript of Kobold2d users_guide_japanese
自己紹介
@Seasonscocos2d AUTHOR
Blog:Seasons.NET•cocos2dリリース情報の翻訳•テクニカル情報の翻訳
@cocos2dfan_jp 管理人•cocos2dに関する情報を不定期にポスト
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に必要な環境
最低構成• 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 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 アップグレーダーの仕事• アップグレード可能なプロジェクトをスキャン&表示• アップグレーダー後は、既存のプロジェクトを上書き&Xcode再起動➡ アップグレード前にXcodeは必ず閉じておくこと!!
※Kobold2D アップグレードの注意点• アップグレードとKobold2D API互換性は関係なし➡ アップグレーダーは、ユーザーのソースコードを自動で変更しない➡ API互換性の対応は、Kobold2Dリリースノートを見ながら手動で対応
【Xcode4の特徴】Xcodeは、最近開いたプロジェクトを開き直します。つまりアップグレード後は、一度手動で最新のKobold2Dのプロジェクト(ワークスペース)を開き直しておく必要がある。そうしないと実は作業していたワークスペースが2世代前だった...ということが発生してしまう。
cocos2dプロジェクトからの移行作業
※cocos2dプロジェクト以降作業の注意点1. 全てのcocos2dのプロジェクトが移行可能なわけではない➡ もし問題がある場合は、Kobold2Dフォーラムに報告してください
2. マスターが近いプロジェクトの移行作業は避ける➡ プロジェクト互換性に時間を割くことになり、現実的ではない➡ 可能な限り次のプロジェクトからKobold2Dで新規作成をオススメする
3. 利用中のサードパーティライブラリのバージョンの違いに気を付ける➡ Kobold2D標準で搭載されているバージョンの違いを把握して便宜上対応する
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.リソースファイル
今後マルチプラットフォーム化を検討するのであれば、
これらのファイルを消す前にじっくり検討すること。
「削除は簡単でも元に戻すの簡単ではない。」
日本語ドキュメント準備中.....http://www.kobold2d.com/display/KKDOC/Kobold2D+User%27s+Guide