gpt4 book ai didi

javascript - 根据屏幕分辨率自动调整 Html5 Canvas 的大小

转载 作者:行者123 更新时间:2023-11-28 10:17:02 25 4
gpt4 key购买 nike

我创建了一个 HTML5 Canvas 游戏,其中涉及从两个 Canvas 中拖动和选择对象(单词)。屏幕还有两个按钮。但不幸的是,我的程序在选择单词方面是硬编码的,因为我输入了在 Canvas 上绘制单词的坐标。我的屏幕分辨率是 1366 x768。现在,无论何时更改分辨率,按钮都会移动到其他地方,鼠标永远不会选择拖动的单词,而是选择它上方的其他单词。我现在有大麻烦了,求助!!

<html>
<head>
<title>Word Search</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type = text/css href="style.css">
<script type="text/javascript" src="keywords.js"></script>
<script type="text/javascript" src="game.js"></script>
<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript" src="grid.js"></script>
<script src="http://code.createjs.com/easeljs-0.7.0.min.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

</head>
<body>
<h1 id="heading">Find Keywords</h1>
<h3 id="results">Drag through the lettered Squares..!</h3>
<canvas id ='canvas1' height = 450 width="450" style= "border :1px solid black"> </canvas>
<canvas id ='canvas2' height = 450 width="250" style= "border :1px solid black"></canvas>
<input type='button' value="HIGHLIGHT ALL" id="button1" onclick="highlight();" />
<input type='button' value="NEXT" id="button2" onclick="next();"/>


<script>
var words =[];
window.onload = function(){
begin();
};

function begin()
{
wordSearchPuzzle();
}

function wordSearchPuzzle()
{
words.length=0;
words = getwords(8);
var puz =wordfind(words);
game(words,puz);
}

function next()
{

var canvas = document.getElementById("canvas1");
var ctx1 = canvas.getContext("2d");
var canvas2 = document.getElementById("canvas2");
var ctx2 = canvas2.getContext("2d");
ctx1.clearRect(0, 0, canvas.width, canvas.height);
ctx2.clearRect(0, 0, canvas2.width, canvas2.height);
wordSearchPuzzle();

}


</script>

</body>
</html>

最佳答案

这是可能的,我过去曾使用根据屏幕尺寸动态调整大小的 Canvas 来完成此操作。

如果我没记错的话,我做过这样的事情。

我把 Canvas 放在一个 div 中,并给 div 一个动态宽度,比如 style="width: 30%"

我把 Canvas 放在这个 div 中并绑定(bind)了 css 来给 Canvas 一个 style="width: 100%"

<div style="width:30%">
<canvas id="can" style="width:100%"></canvas>
</div>

我绑定(bind)到窗口调整大小事件并读取客户端大小以确定元素宽度和高度以更改 Canvas

window.resize = function(){
var canvas = document.getElementById("can");
canvas.width = canvas.clientWidth;
canvas.height = //some value based on width
}

然后您需要重新绘制 Canvas ,因为调整大小会清除 Canvas 上的所有内容

关于javascript - 根据屏幕分辨率自动调整 Html5 Canvas 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24170173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com