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

  • 12,910 views
Uploaded on

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

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

More in: Lifestyle , Travel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
12,910
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
27
Comments
0
Likes
17

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 13年4月22日月曜日
  • 2. 13年4月22日月曜日
  • 3. 13年4月22日月曜日
  • 4. 13年4月22日月曜日
  • 5. 13年4月22日月曜日
  • 6. 13年4月22日月曜日
  • 7. 13年4月22日月曜日
  • 8. (windows phoneもいけるみたいですけど未検証。。)13年4月22日月曜日
  • 9. 13年4月22日月曜日
  • 10. 13年4月22日月曜日
  • 11. ごめんなさい…今日は環境構築は省略します。13年4月22日月曜日
  • 12. 13年4月22日月曜日
  • 13. 13年4月22日月曜日
  • 14. Director13年4月22日月曜日
  • 15. Director13年4月22日月曜日
  • 16. 13年4月22日月曜日
  • 17. 13年4月22日月曜日
  • 18. 13年4月22日月曜日
  • 19. 13年4月22日月曜日
  • 20. 13年4月22日月曜日
  • 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. 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. 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. 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. 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. 13年4月22日月曜日
  • 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. #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. 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. this->addChild(cat, 0, 0);CCSprite* cat = (CCSprite*)this->getChildByTag(0);13年4月22日月曜日
  • 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. 13年4月22日月曜日
  • 33. 13年4月22日月曜日