Cocos2d-x3.0 载入Cocostudio的UI后,button无法点击的解决方法

原帖地址:http://blog.csdn.net/musicvs/article/details/28390617

近期发现不少朋友都遇到这个问题,用Cocostudio的UI编辑器创建好UI后,在代码中载入UI。然后给button(Button)加入点击监听事件,发现不管怎样都点击不了button,没有不论什么反应。

或者,往button的以下一些位置点击,却发现button被点击了。点击坐标的位置明显和button的位置有偏差。

笨木头花心贡献,啥?花心?不呢。是用心~

转载请注明,原文地址: http://www.benmutou.com/blog/archives/1027

文章来源:笨木头与游戏开发

假设你也遇到这种问题。最好还是进行一个简单的操作。

打开AppDelegate.cpp类。在AppDelegate::applicationDidFinishLaunching函数里,当中一段代码:

  1. auto director = Director::getInstance();
  2. auto glview = director->getOpenGLView();
  3. if(!glview) {
  4. glview = GLView::create("My Game");
  5. glview->setFrameSize(800,1280);
  6. director->setOpenGLView(glview);
  7. }

看看这句代码:glview->setFrameSize(800,1280); 或许你的代码里没有这句,无论有没有。接下来要做的都一样。

把这句代码改为(没有这句代码的就加上):glview->setFrameSize(600,400);

里面的数字大小你自己定,可是要注意,不要超过你的电脑显示器分辨率的大小。

一旦游戏窗体宽高大于你的显示器分辨率,就会出现UIbutton无法点击或者点击错位的现象。

不信的话,大家能够试试把游戏窗体的高设成一个非常大的值(大于你的显示器分辨率的高),比方:glview->setFrameSize(800,4280);

然后执行游戏,你会发现。游戏窗体的高并没有想象中的高,它变得和你的显示器的一样的高。

或许这是Cocos2d-x3.0之后特意这么做的。为的是避免你设置的宽高太大而无法完整显示游戏窗体。却导致UIbutton点击坐标错位的问题。

这个仅仅是在Windows平台上的问题而已,无关紧要,仅仅是会影响測试,所以。最好不要把游戏窗体的宽高设置地超过你的显示器分辨率。

时间: 2024-10-27 11:36:36

Cocos2d-x3.0 载入Cocostudio的UI后,button无法点击的解决方法的相关文章

Cocos2d-x3.0 加载Cocostudio的UI后,按钮无法点击的解决方法

最近发现不少朋友都遇到这个问题,用Cocostudio的UI编辑器创建好UI后,在代码中加载UI,然后给按钮(Button)添加点击监听事件,发现无论如何都点击不了按钮,没有任何反应. 或者,往按钮的下面一些位置点击,却发现按钮被点击了,点击坐标的位置明显和按钮的位置有偏差. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blog/archives/1027 文章来源:笨木头与游戏开发 如果你也遇到这样的问题,不妨进行一个简单的

项目部署到tomcat6.0启动成功后访问页面报500错误解决方法

如题:项目部署到tomcat6.0启动成功后访问页面报500错误解决方法,很奇葩,启动的时候没有任何问题,但输入访问地址后报500,去年国庆放假前夕,为这个问题伤神了半天最后解决了,今天又碰到了,乍一看摸不着头,后面仔细回想了下,迅速解决了问题. 原因:项目里面的jar和tomcat里面lib里面的jar重复了. 解决方法: 1.要么更换tomcat7或之后的版本,之后的版本就不会出现这个问题. 2.去部署之后的tomcat的webapps\项目名\WEB-INF\lib 里面删掉jsp-api

CentOS网络配置后无法访问外网的解决方法

CentOS网络配置后无法访问外网的解决方法 关于CentOS网络的具体配置项,可以参考Mitchell博客之前的那篇文章. 现象: ping内网正常ping外网IP,域名均无法正常,返回错误:connect: Network is unreachable 后面在无意中看到Linux网络配置有添加网关的命令: 复制代码 代码如下: route add default gw 192.168.128.2 dev eth0 按上面操作,添加了默认的网关之后.再次访问外网一切正常. 有这个现象来看,应该

win7,M?i?n?d?m?a?n?a?g?e?r?2?0?1?2使用模板时弹出Runtime error R6025解决方法

Mindjet.MindManager2012.v10.0在应用个别模板时提示"参数错误",然后自动关闭. 解决办法: 如果是win7系统,可以进入C:\Users\(用户名)\AppData\Local\Mindjet\MindManager\10\Library\ENU\Templates, 可以看到如下模板:Management/Meetings and Events/Personal Productivity/Problem Solving/Project Management

php 表单提交错误后返回数据消失问题的解决方法

本文章向码农们介绍php 表单提交错误后返回数据消失问题的解决方法,感兴趣的码农可以参考一下. 表单提交错误后返回数据消失怎么办呐,今天就来分析解决一下这个问题. 状况概述: 做填写表单信息提交的时候会碰到一个问题就是当用户填写并提交表单后,程序判断不符合要求并返回,返回之后之前填写的表单信息会被清空了的情况.如果填写的信息量少还无所谓,如果填写的信息量比较多,这会直接打击到填写信息的人的良好心情.因此解决表单提交错误返回后填写的内容消失的问题是一个提高用户体验度的迫在眉睫的问题. 对于这种问题

vs自动生成的WebService配置文件在部署到IIs6后,服务调用失败的解决方法

近日,在项目中需要引用java发布的WebService,添加服务引用后,调用一切正常. 配置如下: <system.serviceModel> <bindings> <basicHttpBinding> <binding name="SecurityServiceImplServiceSoapBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize=&qu

复制工程或修改工程名字后找不到第三方库解决方法

问题: couldn't found -lwexin 等与第三方库有关的关键词报错,如上图. 解决方法:在工程文件中删掉第三方库的引用,然后再重新添加进来.command+B,OK. 复制工程或修改工程名字后找不到第三方库解决方法

ajax 动态载入html后不能执行其中的js解决方法

事件背景 有一个公用页面需要在多个页面调用,其中涉及到部分js已经写在了公用页面中,通过ajax加载该页面后无法执行其中的js. 解决思路 1. 采用附加一个iframe的方法去执行js,为我等代码洁癖者所不齿. 2. 使用document.write输出代码,我等简洁主义者所不愿. 3. 最简单的方法是把js放到需要调用的父页面,那想这样的公用页面,每个地方调用都要写入一次,代码冗余. 4. eval是个解决方法,虽然低效. 5. 复杂的解决方法:正则匹配出加载页面中的所有js,为这些js创建

创建vpn后,不能保存密码的解决方法

用下面的方法创建vpn后,发现每次登录不能记住密码: 记住密码选项是灰的,保存不了,每次都要手动输入:   实在太麻烦了,一翻搜索后,发现一个解决方法: 把下面的注册表值改成0就可以了:     疯吻IT