写一个判断单点触摸某图片区域的例子。
2015-05-26 12:44
253 查看
效果:输出触摸处坐标,并判断是否点击了图片区域。
.h 文件
.CPP文件
.h 文件
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" using namespace cocos2d; class HelloWorld : public cocos2d::CCLayer { public: // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone virtual bool init(); // there's no 'id' in cpp, so we recommend returning the class instance pointer static cocos2d::CCScene* scene(); // a selector callback void menuCloseCallback(CCObject* pSender); // implement the "static node()" method manually CREATE_FUNC(HelloWorld); virtual void onEnter(); virtual void onExit(); virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); CCRect pobject; }; #endif // __HELLOWORLD_SCENE_H__
.CPP文件
#include "HelloWorldScene.h" USING_NS_CC; CCScene* HelloWorld::scene() { // 'scene' is an autorelease object CCScene *scene = CCScene::create(); // 'layer' is an autorelease object HelloWorld *layer = HelloWorld::create(); // add layer as a child to scene scene->addChild(layer); // return the scene return scene; } // on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); ///////////////////////////// // 2. add a menu item with "X" image, which is clicked to quit the program // you may modify it. // add a "close" icon to exit the progress. it's an autorelease object CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 , origin.y + pCloseItem->getContentSize().height/2)); // create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 1); CCSprite *pSprite = CCSprite::create("Icon-72.png"); pSprite->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); this->addChild(pSprite,0); pobject = pSprite->boundingBox(); ///////////////////////////// // 3. add your codes below... // add a label shows "Hello World" // create and initialize a label /* CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24); // position the label on the center of the screen pLabel->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visibleSize.height - pLabel->getContentSize().height)); // add the label as a child to this layer this->addChild(pLabel, 1); // add "HelloWorld" splash screen" CCSprite* pSprite = CCSprite::create("HelloWorld.png"); // position the sprite on the center of the screen pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); // add the sprite as a child to this layer this->addChild(pSprite, 0); */ return true; } void HelloWorld::menuCloseCallback(CCObject* pSender) { CCDirector::sharedDirector()->end(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) exit(0); #endif } void HelloWorld::onEnter() { CCLayer::onEnter(); this->setTouchEnabled(true); CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,true); } void HelloWorld::onExit() { CCLayer::onExit(); CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this); } bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent* pEvent) { CCPoint touchlocation = pTouch->getLocation(); CCPoint location = convertToNodeSpace(touchlocation); CCLog("location is x=%f y=%f",location.x,location.y); //CCRect rect = CCRectMake(0,0,200,200); //bool flag = rect.containsPoint(location); bool flag = pobject.containsPoint(location); if (flag) CCLog("Hit the area"); else CCLog("miss the area"); return false; }
相关文章推荐
- Unity中判断一个点或一张图片是否在另一张图片区域内
- cocos2d中对CCMenu 实现扩展使触摸正常图片的透明区域不触发事件
- 利用数学方法来大大降低一个逻辑判断实现的难度的例子
- 百度地图开发总结----3.判断一个点是否在一片区域内
- 很实用的一个图片上传得例子
- Flex的Image控件中如何在读取图片文件错误时显示一个tool tip的例子
- 纯PHP生成的一个树叶图片画图例子
- 一个使用iframe引入指定页面的指定区域并设置框架透明的例子
- 在Java中判断一个文件是否是图片和其类型的方法
- 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子
- android 判断触摸位置是否在某区域内
- 判断一个图片是不是伪造的方法
- js判断一个图片是否已经存在于缓存中
- 判断鼠标是否落在界面中某一个区域内
- 一个简单的JavaScript图片显示与隐藏例子
- 利用数学方法来大大降低一个逻辑判断实现的难度的例子
- //例子5.4 输入一个字符,判断它是否大写字母,如果是,将它转换成小写字母;
- opencv实现图片无边框的一个例子
- 在图片上点击一个区域触发这个区域的事件
- Android中点击空白区域控件自动隐藏(事件传递机制中的一个小例子)