1 // 2 // GameScene.hpp 3 // HelloWord 4 // 5 // Created by apple on 2017/1/7. 6 // 7 // 8 9 #ifndef GameScene_hpp 10 #define GameScene_hpp 11 12 #include <stdio.h> 13 #include "cocos2d.h" 14 15 USING_NS_CC; 16 17 class GameScene : public cocos2d::Layer 18 { 19 public: 20 static cocos2d::Scene* createScene(); 21 22 virtual bool init(); 23 24 //重力感應回調函數 25 void didAccelerate(Acceleration* acc, Event* event); 26 27 CREATE_FUNC(GameScene); 28 29 private: 30 Size size; 31 Sprite *sprite; 32 }; 33 #endif /* GameScene_hpp */
1 // 2 // GameScene.cpp 3 // HelloWord 4 // 5 // Created by apple on 2017/1/7. 6 // 7 // 8 9 #include "GameScene.hpp" 10 USING_NS_CC; 11 12 cocos2d::Scene* GameScene::createScene() 13 { 14 auto scene = Scene::create(); //創建一個場景 15 auto layer = GameScene::create(); //創建一個圖層 16 scene->addChild(layer); 17 return scene; 18 } 19 20 //初始化當前的圖層 21 bool GameScene::init() 22 { 23 if(!Layer::init()) //初始化父類 24 return false; 25 26 //獲取屏幕大小 27 size = Director::getInstance()->getVisibleSize(); 28 //auto size = Director::getInstance()->getWinSize(); 29 //添加一個圖片精靈 30 sprite = Sprite::create("CloseNormal.png"); 31 sprite->setPosition(Vec2(size.width/2, size.height/2)); 32 sprite->setTag(12); 33 this->addChild(sprite); 34 35 //開啟重力感應 36 Device::setAccelerometerEnabled(true); 37 38 //創建事件監聽對象 39 auto listener = EventListenerAcceleration::create(CC_CALLBACK_2(GameScene::didAccelerate, this)); 40 41 //在事件監聽器中注冊 42 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); 43 44 return true; 45 } 46 47 void GameScene::didAccelerate(Acceleration* acc, Event* event) 48 { 49 //使精靈隨重力感應移動 50 auto sprite = this->getChildByTag(12); //通過標簽獲取精靈 51 52 auto pos = sprite->getPosition(); 53 54 pos.x += acc->x; 55 pos.y += acc->y; 56 //pos.y += acc->y * 10; //調整精靈移動敏感度 57 58 sprite->setPosition(pos); 59 }
