当前位置 : 主页 > 手机开发 > 其它 >

COCOS2D创建菜单,按钮区域和文字显示不一致

来源:互联网 收集:自由互联 发布时间:2021-06-13
遇到这个问题也是醉了,看以半天也没有结局最后发现是配置问题,真是晕倒。 问题是这样的,不描述了直接上图: 创建了这样的一个菜单,下面红色的框框是我截图的时候画上去的,

遇到这个问题也是醉了,看以半天也没有结局最后发现是配置问题,真是晕倒。

问题是这样的,不描述了直接上图:


创建了这样的一个菜单,下面红色的框框是我截图的时候画上去的,代码如下:

var SceneTestScene = cc.Layer.extend({
		ctor:function () {
			this._super();
			var size = cc.director.getWinSize();

		/*	var bg = new cc.Sprite(res.background_png);
			bg.x = size.width/2;
			bg.y = size.height/2;
			this.addChild(bg);*/
			cc.MenuItemFont.setFontName("Times New Roman");						
			cc.MenuItemFont.setFontSize(86); 									
			var item1 = new cc.MenuItemFont("Start", this.menuItem1Callback, this);
			item1.attr({
			   x:size.width/2,
			   y:size.height/2,
			   anChorX:0.5,
			   anChorY:0.5
			});
			
			var mn = new cc.Menu(item1,1); 								
			mn.alignItemsVertically();
			mn.setColor(cc.color(255, 255, 0));
			mn.x=size.width/2;
			mn.y=size.height/2;
			this.addChild(mn); 												
            return true;
		},
		menuItem1Callback:function (sender) {
			cc.log("我被点击了" + sender);
		}
	});
SceneTestScene.scene = function () {
	var scene = new cc.Scene();
	var layer = new SceneTestScene();
	scene.addChild(layer);
	return scene;
};
我希望点击Start文字至少是给我一点提示,结果没有任何的反应。但是点击下面红色框框内却没有任何的反应,这个多让人烦,我们在网上查看原因说什么是像素的问题。也许是和像素有点问题吧。

说是像素的问题也可以理解。

问题清楚了我们怎样来解决:

这个和我们的配置有关系:

首先要保证config.json:

    "init_cfg":{
        "isLandscape":true,
        "isWindowTop":false,
        "name":"CanyProject",
  ------>      "width":960,
  ------>      "height":640,
        "entry":"main.js",
        "consolePort":6050,
        "debugPort":5086,
        "forwardConsolePort":10088,
        "forwardDebugPort":10086,
        "forwardUploadPort":10090
    },
要保证上面的宽和高要和main.js中的:

cc.game.onStart = function(){
    cc.view.adjustViewPort(true);
    cc.view.setDesignResolutionSize(640, 960, cc.ResolutionPolicy.SHOW_ALL);
    cc.view.resizeWithBrowserSize(true);
    //load resources
    cc.LoaderScene.preload(g_resources, function () {
    	cc.director.runScene(SceneTestScene.scene());
    }, this);
};
这个地方的640和960和上面的宽和高要一个个的对应
  cc.view.setDesignResolutionSize(640, 960, cc.ResolutionPolicy.SHOW_ALL);
而且除此之外:

在config.json中的isLandscape:""这个要设置为true

如果这样的配置,我们需要保持是一直的,这样点击下去菜单才不会向下面偏。

网友评论