只有你足够强,别人才会和你讲道理。
文章: 280
浏览: 2,983,581
  • 博主:笨木头
  • 关注:Unity、Net Core、Blazor
  • 邮箱:musicvs@163.com
笨木头  2014-06-03 20:46     Cocos2d-x,Cocos2d-x3.0     阅读(11445)     评论(3)
转载请注明,原文地址: http://www.benmutou.com/archives/1027
文章来源:笨木头与游戏开发
最近发现不少朋友都遇到这个问题,用Cocostudio的UI编辑器创建好UI后,在代码中加载UI,然后给按钮(Button)添加点击监听事件,发现无论如何都点击不了按钮,没有任何反应。

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

 

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

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

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

 

如果你也遇到这样的问题,不妨进行一个简单的操作。

打开AppDelegate.cpp类,在AppDelegate::applicationDidFinishLaunching函数里,其中一段代码:
[cce_cpp]
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
    glview = GLView::create("My Game");
    glview->setFrameSize(800,1280);
    director->setOpenGLView(glview);
}
[/cce_cpp]
看看这句代码:glview->setFrameSize(800,1280); 也许你的代码里没有这句,不管有没有,接下来要做的都一样。

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

 

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

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

 

不信的话,大家可以试试把游戏窗口的高设成一个很大的值(大于你的显示器分辨率的高),比如:glview->setFrameSize(800,4280);

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

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

 

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

 

 

 
3 条评论
  • cocos小白 2015-07-07 09:20:17

    啊。。。这个问题已经折磨我好久好久了。。。
    0回复
  • CCMEOW 2015-05-27 20:52:45

    但是我碰到的问题是只有把游戏的分辨率调大一点才可以。请问这种情况有办法解决吗?
    0回复
    • 博主 糟糕_树叶的mut 2015-05-27 21:24:55

      这种情况我猜测,你没有做屏幕适配的功能,具体可以看看Cocostudio关于适配的资料。。一言难尽
      0回复
发表评论
粤ICP备16043700号

本博客基于 BlazorAnt Design Blazor 开发