日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

5.触摸touch,单点触摸,多点触摸,触摸优先和触摸事件的吞噬

發布時間:2024/9/27 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5.触摸touch,单点触摸,多点触摸,触摸优先和触摸事件的吞噬 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


1 觸摸

Coco2dx默認只有CCLayer及其派生類才有觸摸的功能。

2 單點觸摸

打開觸摸開關和觸摸方式

setTouchEnabled(true);

setTouchMode(kCCTouchesOneByOne);

Cocos2dx 對觸摸分三布來處理。分是是點觸,移動,離開。或是中間被打斷。其功能皆有相應的virtual 函數進行override 的。

virtual bool ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent);

virtual void ccTouchMoved(CCTouch *pTouch,CCEvent *pEvent);

virtual void ccTouchEnded(CCTouch *pTouch,CCEVENT *pEvent);

virtual void ccTouchCancelled(CCTouch *pTouch,CCEvent *pEvent);

獲取點擊的坐標點

CCPoint pt = pTouch->getLocation();

CCLog(“x=%f y=%f”,pt.x,pt.y);

理解getDelta();

ccTouchBegan

start x = 67.309761 y = 180.989975

ccTouchMoved

delta x = 1.013191, y = 0.000000

ccTouchMoved

delta x = 5.977837, y = 0.000000

ccTouchMoved

delta x = 3.985229, y = 0.000000

ccTouchMoved

delta x = 1.013184, y = 0.000000

ccTouchMoved

delta x = 1.992615, y = 0.000000

ccTouchMoved

...................................

...................................

delta x = 1.013184, y = 0.000000

ccTouchMoved

delta x = 0.979431, y = 0.000000

ccTouchMoved

delta x = 1.992615, y = 0.000000

ccTouchMoved

delta x = 3.005798, y = 0.000000

ccTouchMoved

delta x = 3.005798, y = 0.000000

ccTouchMoved

delta x = 2.972015, y = 0.000000

ccTouchMoved

delta x = 1.013214, y = 0.000000

ccTouchMoved

delta x = 3.005798, y = 0.000000

ccTouchMoved

delta x = 0.979431, y = 0.000000

ccTouchEnded

3 多點觸摸

打開觸摸開關,系統默認為單點觸摸。

setTouchEnabled(true);

cocos2dx對觸摸分三部來處理。分別是點觸,移動,離開。或是中間被打斷。其功能皆有相應的virtual函數進行override的。

virtual bool ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);

virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);

virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);

virtual void ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);

獲取點擊的坐標點。

4 案例(打飛機)

Touch.h

#ifndef __TOUCH_H__

#define __TOUCH_H__

?

#include "cocos2d.h"

USING_NS_CC;

class Touch :public CCLayerColor

{

public:

??? static CCScene * scene();

??? CREATE_FUNC(Touch);

??? bool init();

??? enum MyEnum

??? {

??????? BN747

??? };

?

??? bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);

??? void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);

??? void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);

??? void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);

};

?

#endif

Touch.cpp

#include "Touch.h"

#include "AppMacros.h"

?

CCScene *Touch::scene()

{

??? CCScene * scene = CCScene::create();

??? Touch * layer = Touch::create();

??? scene->addChild(layer);

??? return scene;

}

?

bool Touch::init()

{

??? CCLayerColor::initWithColor(ccc4(255, 255, 255, 255));

?

??? setTouchEnabled(true);

??? setTouchMode(kCCTouchesOneByOne);

?

??? CCSprite * plane = CCSprite::create("hero1.png");

??? plane->setPosition(ccp(100, 100));

??? addChild(plane);

??? plane->setTag(BN747);

?

??? return true;

}

?

bool Touch::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)

{

??? CCSprite * plane = (CCSprite *)getChildByTag(BN747);

??? CCPoint pt = pTouch->getLocation();

??? if (plane->boundingBox().containsPoint(pt))

??? {

??????? CCLOG("touched");

??????? return true;

??? }

??? //決定消息是否往下傳遞

??? return false;

}

?

void Touch::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent)

{

??? CCSprite * plane = (CCSprite *)getChildByTag(BN747);

??? CCPoint pt = plane->getPosition() + pTouch->getDelta();

??? if (pt.x > plane->getContentSize().width / 2

??????? && pt.x < winSize.width - plane->getContentSize().width / 2

??????? && pt.y > plane->getContentSize().height / 2

??????? && pt.y < winSize.height - plane->getContentSize().height / 2)

??? {

??????? plane->setPosition(pt);

??? }

??? CCLog("ccTouchMoved x = %g y = %g", pt.x, pt.y);

}

?

void Touch::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)

{

??? CCLog("ccTouchEnded");

}

?

void Touch::ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent)

{

??? CCLog("ccTouchCancelled");

}

運行結果:

?

總結

以上是生活随笔為你收集整理的5.触摸touch,单点触摸,多点触摸,触摸优先和触摸事件的吞噬的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97视频一区 | 国产色一区二区 | 校园春色亚洲激情 | 动漫精品一区一码二码三码四码 | 亚洲一卡二卡三卡 | 五月激情婷婷综合 | 欧美1234区| 青青草国产在线观看 | 台湾swag在线观看 | 久久激情综合网 | 国产亚洲欧美日韩精品 | 成人av男人的天堂 | 无码精品人妻一区二区三区影院 | 亚洲av成人精品毛片 | 伦乱天堂 | 另类色综合| 亚洲男人天堂影院 | 国产白浆视频 | 亚洲美女福利视频 | 8x8ⅹ8成人免费视频观看 | 无码人妻精品一区二区三区温州 | 日韩欧美麻豆 | 九九热av| 日韩精品视频在线观看网站 | 好吊妞在线观看 | 成人片免费视频 | 亚洲AV成人无码网站天堂久久 | 全部免费毛片在线播放高潮 | 在线观看一二区 | 国产精品女人久久久 | 日韩一级av毛片 | 黑人巨大精品人妻一区二区 | 日韩av无码一区二区三区 | 成人日韩在线 | 青青草国产成人av片免费 | 国产精品人成在线观看免费 | 男女激情网址 | 国产高清av | 精品国产无码在线观看 | 亚洲AV无码AV吞精久久中文版 | 欧美中字 | 亚洲国产一区二区三区在线观看 | 国产又黄视频 | 在线观看免费大片 | 久久久久成人网站 | jizz欧美大片 | 天天综合天天 | 中文字幕日韩在线视频 | 最新中文字幕免费 | 99久久精品免费看国产免费软件 | 神马午夜伦理 | 欧美a性 | 日日噜噜夜夜狠狠久久丁香五月 | 欧美性猛交aaaa片黑人 | 我和岳m愉情xxxⅹ视频 | 日日噜噜噜夜夜爽爽狠狠视频97 | 天天5g天天看 | 欧美日韩福利视频 | 四色网址| 麻豆精品国产传媒av绿帽社 | 天天做夜夜爱 | 澳门黄色 | 国产女人18毛片水真多1 | 校园春色亚洲激情 | 亚洲性图一区二区三区 | 欧美蜜桃视频 | 蜜臀久久99精品久久久久久宅男 | 婷婷丁香六月 | 久久加久久 | 日本不卡视频一区 | 97播播 | 黄瓜视频在线免费观看 | 国产精品传媒一区二区 | 夜色导航| 黄色一级淫片 | 一级片在线免费观看视频 | 高h视频在线播放 | 波多野结衣高清在线 | 神马午夜激情 | 国内精品视频一区二区三区 | 9i看片成人免费看片 | 中国白嫩丰满人妻videos | 亚洲av无码一区二区乱子伦 | 男女男精品视频网站 | 天堂av8在线 | 亚洲综合伊人 | 婷婷麻豆 | 色狠狠av老熟女 | 色呦呦网站| 色播99 | 日本黄页网站 | 亚洲一区二区在线视频 | av黄色影院 | 懂色aⅴ一区二区三区免费 国产精品99在线观看 | 日本性高潮视频 | 国产福利一区视频 | 一级a性色生活片久久毛片 爱爱高潮视频 | 天堂网一区 | 国产精品16p|