如何缩放游戏视窗
How to scale game viewport?
我使用HTML5/CSS/JS制作游戏。现在我有个解决不了的问题。如何缩放游戏到任何屏幕分辨率?也许这很简单,但不适合我。
var RATIO = 480 / 800; // Original ratio.
function resize() {
var DEVICE_WIDTH = window.innerWidth,
DEVICE_HEIGHT = window.innerHeight,
ratio = DEVICE_WIDTH / DEVICE_HEIGHT,
scale = 1;
// If window changes by height we calculate scale parameter fo width
if (ratio > RATIO) {
scale = DEVICE_HEIGHT / 800; // Devide by original viewport height
} else { // If window changes by width we calculate scale parameter for height
scale = DEVICE_WIDTH / 480; // Devide by original viewport width
}
}
// So, now you can continue make your game, but in draw method you have to multiply
// everything by this scale parameter (x and y coords, width and height)
希望它能帮助到像我这样的人。
假设您已经将画布命名为canvas
。改变它的大小而不拉伸它的代码如下:
function setSize(width, height)
{
canvas.width = width;
canvas.style.width = width + "px";
canvas.height = height;
canvas.style.height = height + "px";
}
//And then to use that,
setSize(350, 200);
您可以根据需要动态设置它。如果你的容器有id或类,你可以
var container = document.getElementById(idName);
var resize = function(element) {
return function (width, height) {
element.style.width = width;
element.style.height = height;
}
}
var sizeListener = resize(container)(document.documentElement.clientWidth,document.documentElement.clientHeight);
相关文章:
- 更改高贴图的缩放级别
- 在不阻止默认行为的情况下检测IE10中的缩放
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 缩放Raphael/SVG容器以适应所有内容
- 传单缩放控制位置错误
- 在不移动内部文本的情况下缩放元素的效果
- 调整缩放窗口高度提升缩放
- 计算CSS3缩放框在另一个框中的最高位置
- D3.JS向rect添加缩放和列表项
- 当我在节点上拖动鼠标时,我如何防止使用d3.ehavior.zoom().on(“缩放”,重绘)
- 将直流图表库中的折线图缩放限制为小时
- 为什么缩放按钮不会显示在照片擦除中
- 动态设置谷歌地图缩放
- 如何缩放像图像一样的元素
- 使用KineticJS变换(移动/缩放/旋转)形状
- 在手机上缩小/缩放滚动图像
- 将时间缩放添加到折线图(Chart.js)
- JS:如何在没有地址栏和缩放的情况下主持iOS触摸移动游戏
- 如何缩放游戏视窗
- 如何在React Native中为游戏创建可缩放的网格