gpt4 book ai didi

javascript - Canvas 使用键盘输入移动,但图像不移动

转载 作者:行者123 更新时间:2023-11-28 07:27:58 25 4
gpt4 key购买 nike

所以我从基础开始,添加了 canavs、css、javascript。图像应该在 html 还是 javascript 中?接下来我在 Canvas 上添加了背景颜色。然后我在 javascript 中添加 Canvas 属性以及 keyCodes。我用 window.onload 得到了图像。之后我注意到 Canvas 在移动但图像没有移动。

var canvas = document.getElementById("app");
canvas.width = document.body.clientWidth;
canvas.height = document.body.clientHeight;
canvas.style.width = canvas.width + "px";
canvas.style.height = canvas.height + "px";

var keys = [];

window.addEventListener("keydown", function(e){
keys[e.keyCode] = true;
}, false);

window.addEventListener("keyup", function(e){
delete keys[e.keyCode];
}, false);

function game(){
window.onload;
update();
render();
}

function update(){
if(keys[38]) img.y--;
if(keys[40]) img.y++;
if(keys[37]) img.x--;
if(keys[39]) img.x++;
}
function render(){
ctx.fillRect(img.x, img.y);
}

window.onload = function() {
var c=document.getElementById("app");
var ctx=c.getContext("2d");
var img=document.getElementById("chio");
ctx.drawImage(img,10,10);
};

setInterval(function(){
game();
}, 1000/30)


// > note: window.onload shows the images
#app{
background-color:#33ff00
}
<html>
<head>
<link href="app.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<canvas id="app" width=300 height=640></canvas>
<img id="chio" src="chio.png"/>
<script src="app.js"></script>
</body>
</html>

我现在迷路了,请帮助我

最佳答案

我在“app.js”中做了一些更正,但我不知道你到底想要什么。如果您想移动图像,这是一种方法。

var canvas = document.getElementById("app");
canvas.width = document.body.clientWidth;
canvas.height = document.body.clientHeight;
canvas.style.width = canvas.width + "px";
canvas.style.height = canvas.height + "px";

var keys = [];
var ctx;
var img;
var position = {x:0,y:0};
window.addEventListener("keydown", function(e){
keys[e.keyCode] = true;
}, false);

window.addEventListener("keyup", function(e){
keys[e.keyCode] = false;
}, false);

function game(){
update();
render();
}

function update(){
if(keys[38]) position.y--;
if(keys[40]) position.y++;
if(keys[37]) position.x--;
if(keys[39]) position.x++;
}
function render(){
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img,position.x,position.y);
}

window.onload = function() {
var c=document.getElementById("app");
ctx=c.getContext("2d");
img=document.getElementById("chio");
};

setInterval(function(){
game();
}, 1000/30);


// > note: window.onload shows the images

关于javascript - Canvas 使用键盘输入移动,但图像不移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31710350/

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