Cocos2d-x ゲーム開発入門(1)

16,850 views

Published on

2013年4月21日福岡市西区プログラミング勉強会(福岡県福岡市西区で開催)で発表した資料です。ご参考になれば幸いです。

Published in: Lifestyle, Travel
0 Comments
21 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
16,850
On SlideShare
0
From Embeds
0
Number of Embeds
182
Actions
Shares
0
Downloads
34
Comments
0
Likes
21
Embeds 0
No embeds

No notes for slide

Cocos2d-x ゲーム開発入門(1)

  1. 1. 13年4月22日月曜日
  2. 2. 13年4月22日月曜日
  3. 3. 13年4月22日月曜日
  4. 4. 13年4月22日月曜日
  5. 5. 13年4月22日月曜日
  6. 6. 13年4月22日月曜日
  7. 7. 13年4月22日月曜日
  8. 8. (windows phoneもいけるみたいですけど未検証。。)13年4月22日月曜日
  9. 9. 13年4月22日月曜日
  10. 10. 13年4月22日月曜日
  11. 11. ごめんなさい…今日は環境構築は省略します。13年4月22日月曜日
  12. 12. 13年4月22日月曜日
  13. 13. 13年4月22日月曜日
  14. 14. Director13年4月22日月曜日
  15. 15. Director13年4月22日月曜日
  16. 16. 13年4月22日月曜日
  17. 17. 13年4月22日月曜日
  18. 18. 13年4月22日月曜日
  19. 19. 13年4月22日月曜日
  20. 20. 13年4月22日月曜日
  21. 21. bool AppDelegate::applicationDidFinishLaunching(){// initialize directorCCDirector *pDirector = CCDirector::sharedDirector();pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());// turn on display FPSpDirector->setDisplayStats(true);// set FPS. the default value is 1.0/60 if you dont call thispDirector->setAnimationInterval(1.0 / 60);// create a scene. its an autorelease objectCCScene *pScene = MenuScene::scene();// runpDirector->runWithScene(pScene);return true;}CCDirectorシングルトンを取得します。頭にCocos2dを示す”CC”が付きます!13年4月22日月曜日
  22. 22. bool AppDelegate::applicationDidFinishLaunching(){// initialize directorCCDirector *pDirector = CCDirector::sharedDirector();pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());// turn on display FPSpDirector->setDisplayStats(true);// set FPS. the default value is 1.0/60 if you dont call thispDirector->setAnimationInterval(1.0 / 60);// create a scene. its an autorelease objectCCScene *pScene = MenuScene::scene();// runpDirector->runWithScene(pScene);return true;}最初のシーンを起動!13年4月22日月曜日
  23. 23. bool AppDelegate::applicationDidFinishLaunching(){  ・・・省略・・・CCScene *pScene = MenuScene::scene();  ・・・省略・・・シーン生成CCScene* MenuScene::scene(){// scene is an autorelease objectCCScene *scene = CCScene::create();// layer is an autorelease objectMenuLayer *layer = MenuLayer::create();// add layer as a child to scenescene->addChild(layer);// return the scenereturn scene;} レイヤーを配置13年4月22日月曜日
  24. 24. CCScene *CCScene::create(){CCScene *pRet = new CCScene();if (pRet && pRet->init()){pRet->autorelease();return pRet;}else{CC_SAFE_DELETE(pRet);return NULL;}}initを呼ぶルール13年4月22日月曜日
  25. 25. bool MenuLayer::init(){// super init を最初に呼びます∼if ( !CCLayer::init() ){ return false; }// このレイヤーにスプライトを追加しますthis->addSprites();return true;}void MenuLayer::addSprites(){// まず画面サイズを ディレクターに聞いてCCSize size = CCDirector::sharedDirector()->getWinSize();// 猫のスプライトCCSprite* cat = CCSprite::create("cat.png");cat->setPosition( ccp(size.width/2, size.height/2));this->addChild(cat, 0);}画像ファイル名を指定で作れます13年4月22日月曜日
  26. 26. 13年4月22日月曜日
  27. 27. class MenuLayer : public cocos2d::CCLayer{public:virtual bool init();CREATE_FUNC(MenuLayer);virtual bool ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent*pEvent);virtual void ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent*pEvent);virtual void ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent*pEvent);virtual void ccTouchCancelled(cocos2d::CCTouch *pTouch, cocos2d::CCEvent*pEvent);private:void addSprites();}; タッチイベントを使う場合はヘッダで宣言する13年4月22日月曜日
  28. 28. #include "SimpleAudioEngine.h"#include "MenuLayer.h"using namespace cocos2d;using namespace CocosDenshion;bool MenuLayer::init(){// super init を最初に呼びます∼if ( !CCLayer::init() ){ return false; }// このレイヤーにスプライトを追加しますthis->addSprites();// レイヤーのタッチイベント監視を開始しますthis->setTouchMode(kCCTouchesOneByOne);this->setTouchEnabled(true);return true;}初期化処理でタッチを有効化13年4月22日月曜日
  29. 29. bool MenuLayer::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent){CCLog("ccTouchBegan");return true; // タッチイベントを開始}void MenuLayer::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent){CCLog("ccTouchMoved");}void MenuLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent){CCLog("ccTouchEnded");}void MenuLayer::ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent){CCLog("ccTouchCancelled");}ログを出す関数13年4月22日月曜日
  30. 30. this->addChild(cat, 0, 0);CCSprite* cat = (CCSprite*)this->getChildByTag(0);13年4月22日月曜日
  31. 31. bool MenuLayer::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent){CCPoint location = pTouch->getLocation();float animationTime = 1.0, jumpHeight=100, jumpNum =1;float scale = 6.0;CCSpawn* spawn = CCSpawn::create(CCJumpTo::create( animationTime, location, jumpHeight, jumpNum ),CCScaleTo::create( animationTime, scale ),NULL);CCSprite* cat = (CCSprite*)this->getChildByTag(0);cat->runAction( spawn );return true; // タッチイベントを開始}タップ時の座標猫のアニメーション設定アニメーション実行13年4月22日月曜日
  32. 32. 13年4月22日月曜日
  33. 33. 13年4月22日月曜日

×