Yidev cocos2dx

1,859 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,859
On SlideShare
0
From Embeds
0
Number of Embeds
46
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Yidev cocos2dx

  1. 1. Cocos2d-x開発のレシピSaturday, June 22, 13
  2. 2. 自己紹介• 松浦 晃洋• 株式会社シュハリ 代表取締役• 株式会社スマートエデュケーション チーフエンジニアSaturday, June 22, 13
  3. 3. Cocos2d-x知っていますか?Saturday, June 22, 13
  4. 4. Cocos2d-x使っていますか?Saturday, June 22, 13
  5. 5. Cocos2d-x• Cocos2d for iPhone から派生• 言語• C++ JavaScript Lua• 対応プラットフォーム• iOS Android WindowsPhoneSaturday, June 22, 13
  6. 6. ResourcesC++Objective-C JavaantEclipseXcodeipa apkJNISaturday, June 22, 13
  7. 7. リズムタップSaturday, June 22, 13
  8. 8. つなげっとSaturday, June 22, 13
  9. 9. Saturday, June 22, 13
  10. 10. 秀和システムさんからのご好意で2冊プレゼント!Saturday, June 22, 13
  11. 11. Cocos2d-x で実際にどんなことが簡単にできるかSaturday, June 22, 13
  12. 12. 本のレシピの中から実際に使い方を紹介Saturday, June 22, 13
  13. 13. レシピ72簡易3Dを表示するSaturday, June 22, 13
  14. 14. Saturday, June 22, 13
  15. 15. • CCNode 毎にカメラがある• 通常はのっぺりした 2D になるようにカメラが調整されている• このカメラの位置などを調整できるSaturday, June 22, 13
  16. 16. Saturday, June 22, 13
  17. 17. Saturday, June 22, 13
  18. 18. Saturday, June 22, 13
  19. 19. CCSize size = CCDirector::sharedDirector()->getWinSize();// スクロールするスプライト生成CCSprite* pSprite = CCSprite::create("script.png");this->addChild(pSprite, 0);// カメラ位置変更float x=0, y=0, z=0;this->getCamera()->getCenterXYZ(&x, &y, &z);this->getCamera()->setCenterXYZ(x, y+0.0000003, z);// スクロール処理CCMoveBy* move = CCMoveBy::create(30.0f,ccp(0, pSprite->getContentSize().height + size.height));pSprite->runAction(move);Saturday, June 22, 13
  20. 20. レシピ39指でなぞったラインを描画するレシピ44画像を切り取って表示するSaturday, June 22, 13
  21. 21. Saturday, June 22, 13
  22. 22. • CCMotionStreak クラス• 画像をカラーエフェクトかけて描画•   ⇐ 描画している画像はこれ• 指定秒数後にフェードアウトSaturday, June 22, 13
  23. 23. bool Recipe39::ccTouchBegan(cocos2d::CCTouch *pTouch,cocos2d::CCEvent *pEvent){this->removeChildByTag(MOTION_STREAK_TAG, true);// CCMotionStreak のインスタンスを生成CCPoint point = this->convertTouchToNodeSpace(pTouch);CCMotionStreak* pStreak =CCMotionStreak::create(0.5f, 1.0f, 10.0f,ccc3(255, 255, 0), "line.png");pStreak->setPosition(point);this->addChild(pStreak, 5, MOTION_STREAK_TAG);return true;}void Recipe39::ccTouchMoved(cocos2d::CCTouch *pTouch,cocos2d::CCEvent *pEvent){// CCMotionStreak のインスタンスをタップした通りに動かすCCPoint point = this->convertTouchToNodeSpace(pTouch);CCMotionStreak* pStreak =(CCMotionStreak*)this->getChildByTag(MOTION_STREAK_TAG);pStreak->setPosition(point);}Saturday, June 22, 13
  24. 24. • 物理オブジェクトを放物線上に飛ばす• 指で切られたら、物理オブジェクトを2分割して、テクスチャも2分割。• 分割後の物理オブジェクトにそれぞれ違う運動エネルギーを与えて、散るようにするSaturday, June 22, 13
  25. 25. レシピ70物理エンジンを使用するSaturday, June 22, 13
  26. 26. Saturday, June 22, 13
  27. 27. • CCTouchMoved でなぞった軌跡を保存• CCTouchEnded でなぞった軌跡に沿って小さい物理オブジェクトを多数作成• それを繋げてひとつの物理オブジェクトにする• なぞった軌跡でラインを描画してテクスチャを作成し、物理オブジェクトに貼り付けるSaturday, June 22, 13
  28. 28. github.com/syuhari/cocos2dx_recipeSaturday, June 22, 13
  29. 29. エンジニア募集!• @syuhari• facebook.com/syuhariSaturday, June 22, 13

×