关于Cocos2d-x中监听物体不超越边界的解决方案
写一个监听器
touchlistener->onTouchMoved = [this](Touch* pTouch, Event*) {
auto delta = pTouch->getDelta();
auto hero = (PlaneHero*)getChildByTag(HERO_TAG);
auto oldpos = hero->getPosition(); //用来重置出界后的位置
hero->setPosition(Vec2(hero->getPosition().x + delta.x, hero->getPosition().y + delta.y));
//不能出界
auto winSize = Director::getInstance()->getWinSize();
if (hero->getPositionY() < hero->getContentSize().height / 2 || hero->getPositionY() > winSize.height - hero->getContentSize().height / 2
|| hero->getPositionX() < hero->getContentSize().width / 2 || hero->getPositionX() > winSize.width - hero->getContentSize().width / 2)
{
hero->setPosition(oldpos);
}
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(touchlistener, this); //把监听器添加到事件分发器
最新文章
- auto_clipboard
- React使用jquery方式动态获取数据
- ajax contenttype
- 学习STL-介绍一下STL
- Windows启动系统程序命令
- Asp.Net中的三种分页方式
- CentOS上安装FastDFS分布式文件系统
- NewRowNeeded和UserAddedRow事件以及RowsAdded的区别使用
- cf702C Cellular Network
- Android SQLite 事务处理
- ubuntu11.10server 安装php-redis插件
- 【2016北京集训测试赛(八)】 crash的数列 (思考题)
- Hadoop百度百科
- 自定义流程gooflow2.0+自定义表单
- sedlauncher.exe
- nginx配置访问频率
- [UE4]Input Key Selector
- css初始
- C# List分页
- Cisco interview
热门文章
- Linux vm运行参数 - OOM相关的参数
- iOS 关于 设计模式 与网友讨论实录
- js 重写 bootstrap 样式 alert/confirm 消息窗口
- npm 模块化方式接入 font-awsome
- angular.js 中的作用域 数据模型 控制器
- codeforces 482B. Interesting Array【线段树区间更新】
- LeetCode: Spiral Matrix II 解题报告-三种方法解决旋转矩阵问题
- 访问控制列表-基于IP
- Java ExecutorServic线程池(异步)
- 如何在Windows Server 2008 R2下搭建FTP服务