【2048強勢來襲】第一期:搭建上下左右手勢識別的框架
最近有一款2048的遊戲火爆了,我們們也來試試。
本遊戲使用的是cocos2d-x 3.0alpha1版本。
本篇文章將來講解2048遊戲中的手勢識別:上下左右。
1. 建立“TZFE”專案(2048數字英文單詞的開頭)
(1)在cocos2d-x 3.0alpha1版本中,建立一個“TZFE”專案,如果不懂的話,請參考這篇文章:http://blog.csdn.net/legendof1991/article/details/22778173
(2)刪除專案中不必要的程式碼,為後續開發做準備,使程式碼如下:
HelloWorldScene.h
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
class HelloWorld : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(HelloWorld);
};
#endif // __HELLOWORLD_SCENE_H__
HelloWorldScene.cpp
#include "HelloWorldScene.h"
USING_NS_CC;
Scene* HelloWorld::createScene()
{
auto scene = Scene::create();
auto layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}
bool HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}
//Size visibleSize = Director::getInstance()->getVisibleSize();
//Point origin = Director::getInstance()->getVisibleOrigin();
return true;
}
2. 在HelloWorldScene.h標頭檔案中新增事件監聽回撥和滑向上下左右方法,當然別忘了新增成員函式
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
class HelloWorld : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(HelloWorld);
//在這裡加入手勢識別的事件檢測
//監聽事件回撥:觸控開始和觸控結束
virtual bool onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *unused_event);
virtual void onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *unused_event);
//滑向上下左右的方法
bool doUp();
bool doDown();
bool doLeft();
bool doRight();
private:
//點選元素
int firstX,firstY,endX,endY;
};
#endif // __HELLOWORLD_SCENE_H__
3. 在HelloWorldScene.cpp中具體實現函式
(1)實現onTouchBegan()函式
//事件監聽回撥:觸控開始
bool HelloWorld::onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *unused_event)
{
//獲取觸控的X軸和Y軸
Point touchPoint = touch->getLocation(); //獲取OpenGL座標(即cocos2d-x座標,原點在左下角)
touch->getLocationInView();
firstX=touchPoint.x;
firstY=touchPoint.y;
return true;
}
(2)實現onTouchEnded()函式
//事件監聽回撥:觸控結束
void HelloWorld::onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *unused_event)
{
//獲取X軸和Y軸的移動範圍
Point touchPoint=touch->getLocation(); //獲取OpenGL座標(即cocos2d-x座標,原點在左下角)
endX=firstX - touchPoint.x;
endY=firstY - touchPoint.y;
//判斷X軸和Y軸的移動距離,如果X軸的絕對值大,則向左右滑動,如果Y軸的絕對值大,則向上下滑動
if(abs(endX) > abs(endY))
{
//手勢向左右
//判斷向左還是向右
if(endX+5>0)
{
//向左
doLeft();
}
else
{
//向右
doRight();
}
}
else
{
//手勢向上下
//判斷手勢向上還是向下
if(endY+5>0)
{
//向下
doDown();
}
else
{
//向上
doUp();
}
}
}
(3)當然別忘了要實現上下左右滑動的函式
//滑向上下左右的方法
bool HelloWorld::doUp()
{
log("doUp");
return true;
}
bool HelloWorld::doDown()
{
log("doDown");
return true;
}
bool HelloWorld::doLeft()
{
log("doLeft");
return true;
}
bool HelloWorld::doRight()
{
log("doRight");
return true;
}
4. 在init()函式中建立監聽事件
auto touchListener=EventListenerTouchOneByOne::create();
touchListener->onTouchBegan=CC_CALLBACK_2(HelloWorld::onTouchBegan,this);
touchListener->onTouchEnded=CC_CALLBACK_2(HelloWorld::onTouchEnded,this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener,this);
5. 執行專案
(1)專案執行後,效果如下:
(2)在螢幕上面,上下左右滑動,可以看到輸出效果:
最後要特別感謝一下帥印。
相關文章
- PS智慧外掛 StartAI強勢來襲!AI
- “IT男”強勢逆襲“金融男”
- vite不能選配方案?vite-creater強勢來襲!Vite
- 華碩Zenfone 3多平臺處理器強勢來襲
- 百度MIP技術強勢來襲 帶你的網頁飈起來網頁
- “瘋狂的小貝”強勢來襲,打造“星際”網際網路絡
- 2019中國-中東網際網路峰會強勢來襲!
- 【活動】kwaiSRC強勢來襲,單個漏洞獎勵高達6w元!AI
- ReactNative之手勢識別React
- BCH硬分叉,BitcoinABC強勢逆襲BitcoinSV
- 【遇見offer】微軟專場直播強勢來襲!快來領取你的專屬面試福利吧~微軟面試
- android 多手勢識別Android
- 亞馬遜雲科技 2022 年 3 月新服務新功能強勢來襲亞馬遜
- “漏洞利用之王”HolesWarm挖礦木馬新增大量攻擊模組強勢來襲Swarm
- CVPR 2018:GAN、自動駕駛等技術和應用正強勢來襲自動駕駛
- Android GestureDetector手勢識別類Android
- 開源姿勢識別軟體
- 基於OPENCV的手勢識別技術OpenCV
- 直播強勢來襲:Oracle nologgiing;資料庫上雲;國產資料庫比對Oracle資料庫
- 6月開播 | 高德開放平臺系列公開課來啦,大量技術乾貨強勢來襲
- 上下文感知與態勢感知或情境感知區別
- 人臉識別應用領域以及未來的行業發展趨勢行業
- 益玩遊戲CP聚合計劃來襲,第一站聯合GameRes為CP強勢助力!遊戲GAM
- 惠普遊戲家族十代新品強勢來襲, 「十代登場 玩出熱AI」共赴進階之路遊戲AI
- 人臉識別和手勢識別應用(face++)開發
- iOS手勢識別的詳細使用(拖動,縮放,旋轉,點選,手勢依賴,自定義手勢)iOS
- iOS手勢識別的詳細使用:拖動、縮放、旋轉、點選、手勢依賴、自定義手勢iOS
- iOS學習筆記06 手勢識別iOS筆記
- iOS開發教程之手勢識別方法iOS
- 2018網頁遊戲資料包告(10月)—新遊強勢來襲,熱遊競爭加劇網頁遊戲
- 程式設計師週刊(第3期):識別未來新技術的趨勢程式設計師
- 敏捷開發框架的優勢敏捷框架
- Linux的強大優勢(轉)Linux
- Flutter 開發者國服最強輔助 App:FlutterGo 2.0 強勢歸來!!!FlutterAPPGo
- [版本更新] PerfDog 5.0 強勢來襲,業界首創支援 GPU 詳細資訊採集與眾多升級優化GPU優化
- 指紋識別狂潮來襲未來將一統智慧手機天下
- 幹掉傳統企業無線網狀網路新勢力來襲
- Web開發框架趨勢Web框架