如何使用 Cocos2D 制作 HTML5 Canvas 全页大小

Posted

技术标签:

【中文标题】如何使用 Cocos2D 制作 HTML5 Canvas 全页大小【英文标题】:How to make HTML5 Canvas full page size with Cocos2D 【发布时间】:2013-07-04 14:16:40 【问题描述】:

我是 Cocos2D-html5(和 HTML5 本身)的新手,我正试图让画布成为页面的完整大小。我对互联网上关于此问题的记录很少感到困惑,所以我希望它实际上真的很简单。

问题在于<canvas> 元素不接受width="100%"height="100%",而只接受像素(但它不会拉伸以适应窗口)。

我也尝试过here 描述的解决方案(css 和 javascript),但似乎 Cocos2D 会调整画布大小以适应 widthheight 属性,如果省略,则使用默认大小300 x 150 px(没有 Cocos2D 我确实得到了整页画布)。

如何更改画布大小以适应 Cocos2D 本身的页面?

【问题讨论】:

【参考方案1】:

source

HTML:

<canvas id="canvas"></canvas>

JavaScript:

var canvas = document.getElementById('canvas'),
context = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

CSS:

*  margin:0; padding:0;  /* to remove the top and left whitespace */
html, body  width:100%; height:100%;  /* just to be sure these are full screen*/
canvas  display:block;  /* To remove the scrollbars */

【讨论】:

感谢您的明确答复。我确实已经看到了那个页面,但不知怎的,一定是出了什么问题。这非常有效。 谢谢,css 是最烦人的部分。【参考方案2】:

它设置在 /main.js 中。默认尺寸:

var resourceSize = cc.size(480, 800);
var designSize = cc.size(480, 800);
director.setContentScaleFactor(resourceSize.width / designSize.width);
cc.EGLView.getInstance().setDesignResolutionSize(designSize.width, designSize.height, cc.RESOLUTION_POLICY.SHOW_ALL);

整页大小:

var screenSize = cc.EGLView.getInstance().getFrameSize();
cc.EGLView.getInstance().setDesignResolutionSize(screenSize.width, screenSize.height, cc.RESOLUTION_POLICY.SHOW_ALL);

【讨论】:

以上是关于如何使用 Cocos2D 制作 HTML5 Canvas 全页大小的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Cocos2d 制作这样的游戏

如何在cocos2d里面用TexturePacker制作可移动的炮炮兵动画

html5 cocos2d js Access-Control-Allow-Origin

如何优化cocos2d程序的内存使用和程序大小

如何优化cocos2d程序的内存使用和程序大小

如何在 cocos2d 中为图层添加滚动?