Hello cocos2d ios

28
Hello!! cocos2d 2Dゲームフレームワーク cocos2dの紹介 @Seasons 2011130日日曜日

description

stidevで話をしたcocos2dに関する発表資料動画版でトランジッションをがんばったので、是非動画でごらんください。

Transcript of Hello cocos2d ios

Page 1: Hello cocos2d ios

Hello!! cocos2d2Dゲームフレームワーク cocos2dの紹介

@Seasons2011年1月30日日曜日

Page 2: Hello cocos2d ios

Today’s agenda

•What is cocos2d?

•???

•Introduction author

•How to learn?

2011年1月30日日曜日

Page 3: Hello cocos2d ios

Introduction author

@Seasonscocos2d AUTHOR

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

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

2011年1月30日日曜日

Page 4: Hello cocos2d ios

•Open Source

•License

•Feature1,2,3

•Application Record

•Community

What is cocos2d?

2011年1月30日日曜日

Page 5: Hello cocos2d ios

What is cocos2d?

•Open Sourcehttps://github.com/cocos2d/cocos2d-iphone最新版:0.99.5

•LicenseMITライセンス•非常に制限が緩い•ソースコードの再配布も可能•アプリケーションにロゴ表示するかも選択自由

2011年1月30日日曜日

Page 6: Hello cocos2d ios

What is cocos2d?

•Feature 1-1•2Dゲーム制作に必要な機能が揃っている‣スプライト表示、管理‣シーン、レイヤー管理機構‣エフェクト(2D,3Dエフェクト)‣アクション機能(シーケンス、トランスフォーム、イーズ、コールバック)‣メニュー機能‣物理エンジン統合( Box2D , Chipmunk[Space Manager] )‣テキスト表示‣パーティクルシステム‣テクスチャアトラス‣視差スクロール‣タイルマップ‣サウンド処理‣レンダリングテクスチャ(画面キャプチャー)‣縦横対応‣PowerVR Textureサポート(PVRTC,PVR)‣OpenGL ES 1.1ベース‣マルチタスク‣RetinaDisplay

ゲーム作りに集中できる

2011年1月30日日曜日

Page 7: Hello cocos2d ios

What is cocos2d?

•Feature 1-2•サードパーティ製のツールとの連携

VertexHelper Pro

TexturePacker

Zwoptex

テクスチャ最適化、アトラス作成

ParticleDesigner

コリジョン作成

パーティクル作成

All Mac application

2011年1月30日日曜日

Page 8: Hello cocos2d ios

What is cocos2d?

•Feature 1-3•iOS版 -> Mac版への変換が簡単

Mac OS版

Mac App Storeでの販売もしやすい!!

•Mac用のXcodeプロジェクトが同梱•コードはほとんど変更しないで済む ( Touch -> Mouse )

iPhone版

2011年1月30日日曜日

Page 9: Hello cocos2d ios

What is cocos2d?

•Application record

ヌカカの結婚 など(Muu Muu Co.,Ltd.)

【電子書籍】

【ゲーム系】

iYamato、iNinja(Geppetto Inc)

Alice for iPhone/iPad(Atomic Antelope)

Urban Rivals(Boostr)

ポケットベガス(Appbank)

http://www.cocos2d-iphone.org/games/

2011年1月30日日曜日

Page 10: Hello cocos2d ios

What is cocos2d?

•Community

•cocos2d.org:http://www.cocos2d-iphone.org/•cocos2dに関する最新情報の取得•テクニカルなスレッド(日々更新)•cocos2dで作られたゲームの紹介

•Twitter•ハッシュタグ:#cocos2d•検索:cocos2d•@cocos2dfan_jp , @cocos2d , @cocos2dx

•Blog: http://www.learn-cocos2d.com/•@gaminghorror氏によるcocos2d入門、応用講座

2011年1月30日日曜日

Page 11: Hello cocos2d ios

How to learn?

•Books

•Sample Source

•CCScene, CCLayer, CCNode

•CCSprite

•CCAction

•CCSequence, CCSpawn, CCRepeat...

•misc

2011年1月30日日曜日

Page 12: Hello cocos2d ios

How to learn?

•Books

@gaminghorror氏 著

•cocos2dのほぼ全機能について解説•洋書プログラミング部門1位•cocos2d ユーザー必読本

cocos2d 入門本•ミニゲームを作成しながら学習•基本的な機能について丁寧に解説•CCActionの図解が嬉しい!!•物理エンジンは、Chipmunkを解説

PDF販売あり: (販売元はそれぞれ異なる)

cocos2d 入門本2•基本的な機能について丁寧に解説•Box2Dに関する解説が詳しい•VertexHelperの使い方も掲載

発売中!! 発売中!! Rough Cut

2011年1月30日日曜日

Page 13: Hello cocos2d ios

•Sample Source•starterkit(フライトコントロール的なソース):@gaminghorror氏

•books付属のサンプル

販売:http://www.learn-cocos2d.com/store/line-drawing-game-starterkit/

サンプルやミニゲームのコードが満載

How to learn?

2011年1月30日日曜日

Page 14: Hello cocos2d ios

CCScene

CCLayerCCNode

How to learn?

•CCScene,CCLayer,CCNode

Game

CCLayerCCLayer

CCNode

CCNode

CCScene

CCScene

•CCScene•CCLayerを管理(子供)

Example)タイトルシーン ( TitleScene )ゲームシーン ( GameScene )リザルトシーン ( ResultScene)

•CCLayer•CCNodeを管理(子供)(場合によってはCCLayerも)

Example)背景レイヤー(BackLayer)スコアレイヤー(ScoreLayer)ゲームレイヤー(GameLayer)

•ゲーム全体AppDelegate

CCLayer

•CCNode•ゲームオブジェクト

Example)プレイヤー、敵 ( PlayerObject )ロジック( LogicObject )

2011年1月30日日曜日

Page 15: Hello cocos2d ios

How to learn?

•CCScene,CCLayer,CCNode•How to create?

CCLayer

CCScene @interface GameLayer : CCLayer@end

id scene = [GameLayer scene] インスタンスメソッド +(id) scene

+ (id) scene { CCScene *scene = [CCScene node]; GameLayer *layer = [GameLayer node]; [scene addChild:layer]; return scene;}

[[CCDirector sharedDirector] runWithScene:scene]

2011年1月30日日曜日

Page 16: Hello cocos2d ios

How to learn?

•CCScene,CCLayer,CCNode•How to create?

- (id) init { .... PlayerObject *player = [PlayerObject node]; [self addChild:player];}

CCNode @interface PlayerObject : CCNode@end CCLayer

PlayerObjectに限らず、レイヤー(CCLayer)内に必要なオブジェクトをaddChildで追加

2011年1月30日日曜日

Page 17: Hello cocos2d ios

How to learn?

•CCSprite•How to create?

CCSprite *sp = [CCSprite spriteWithFile:@”icon.png”];sp.position = ccp( 200, 200 );

[self addChild:sp];

(200,200)

追加したいScene,Layer,Node等にaddChildするだけ!!とっても簡単!!

2011年1月30日日曜日

Page 18: Hello cocos2d ios

How to learn?

•CCAction•How to create and use?CCSprite *sp = [CCSprite spriteWithFile:@”icon.png”];sp.position = ccp( 200, 200 );CCMoveTo *move = CCMoveTo actionWithDuration:1.0 position:ccp(sp.position.x+100, sp.position.y)];[sp runAction:move];

(200,200)

runActionに生成したアクションを渡す。CCNodeを継承したクラスは、全てrunActionを持つ。

(300,200)

2011年1月30日日曜日

Page 19: Hello cocos2d ios

How to learn?

•CCAction•Many action!!

CCMoveTo

CCMoveByCCJumpBy

CCJumpToCCShow

CCScaleTo

CCScaleBy

CCPlace

CCRotateBy

CCRotateTo

CCBlinkCCFadeIn

CCFadeOut

CCTintTo

CCTintBy

CCShow

CCHide

2011年1月30日日曜日

Page 20: Hello cocos2d ios

How to learn?

•CCSequence, CCSpawn, CCRepeat...•What is this?

CCMoveTo

CCJumpTo

CCScaleTo

CCSequence

CCAction

CCAction

CCAction

CCSpawn

CCMoveTo

CCJumpTo

CCScaleTo

CCRepeat

CCMoveBy

CCMoveBy

CCMoveBy

2011年1月30日日曜日

Page 21: Hello cocos2d ios

How to learn?

•misc

cocos2d recommend autorelease object why?

Example)CCNode+ (id) node { return [[[self alloc] init] autorelease];}

CCSprite+ (id) spriteWithFile:(NSString *)filename return [[[self alloc] initWithFile:filename] autorelease];}

autorelease pool node

spritenext time

メモリリークが発生しづらい!!1回の処理で大量のautoreleaseオブジェクトは生成しないように気を付ける

2011年1月30日日曜日

Page 22: Hello cocos2d ios

One more thing....???

2011年1月30日日曜日

Page 23: Hello cocos2d ios

CCGaussianBlurSprite

CCGaussianBlurSprite *gbs;gbs = [CCGaussianBlurSprite blurSpriteWithFile:@"icon.png" blurCount:20];gbs.blurspeed = 2; // ブラー速度[gbs startAnimation]; // ブラーアニメーション開始

コード

実行結果

2011年1月30日日曜日

Page 24: Hello cocos2d ios

CCGaussianBlurSprite

元ネタ•manucorporat氏が作成•AbstractWarのために作った•ソースコードはgithubで公開済み•次期cocos2dに統合予定

スプライトにブラー処理をかけることができる!!

2011年1月30日日曜日

Page 25: Hello cocos2d ios

CCGaussianBlurSprite

特徴•ピクセル処理をCPUで行う( CCMutableTexture)•処理するピクセル数に依存(画面全体で10-15fps)

小さいスプライトなら、リアルタイム処理が可能

ならば作ってみる

2011年1月30日日曜日

Page 26: Hello cocos2d ios

CCGaussianBlurSprite

Source code is available today!!git://gist.github.com/801911.git

https://github.com/manucorporat/AWTextureFilter

GaussianBlur for cocos2d source

2011年1月30日日曜日

Page 27: Hello cocos2d ios

My book

Now on sale!!

iOS 4プログラミングブックAmazon プログラミング部門1位 !!

そのまま使えるiPhoneアプリプログラム

電子書籍版もあります!

2011年1月30日日曜日

Page 28: Hello cocos2d ios

Enjoy iOS game programming

2011年1月30日日曜日