问题描述
我目前正在尝试制作一款无尽的跑步游戏,我刚刚完成了跳跃机制的制作。但是,如果玩家要按住向上箭头键,或者在他们接触地面之前按下它,他们就能够模仿“飞行”的能力。如果它们还没有接触地面,我不确定如何防止它们“飞行”。如果有人有任何想法,请告诉我。我的代码如下:
let ctx = document.querySelector("canvas").getContext("2d");
// Screen
ctx.canvas.height = 512;
ctx.canvas.width = 512;
// Images
let bg = new Image;
bg.src = "./Background.png";
let fl = new Image;
fl.src = "./Floor.png";
// Player
let y = 256;
let speed = 2.5;
let pl = new Image;
pl.src = "./Idle.png";
pl.onload = function() {
ctx.drawImage(pl,y);
};
// Jumping
let UP = false;
// Ducking
let DOWN = false;
document.onkeydown = function(e) {
if (e.keyCode == 38) UP = true;
if (e.keyCode == 40) DOWN = true;
};
document.onkeyup = function(e) {
if (e.keyCode == 38) UP = false;
if (e.keyCode == 40) DOWN = false;
};
// Frames
function update() {
// Clear
ctx.clearRect(0,512,512);
// Background
ctx.drawImage(bg,0);
// Floor
ctx.drawImage(fl,384);
ctx.drawImage(fl,128,256,384,384);
// UP
if (UP) {
if (y > 100) {
ctx.drawImage(pl,y -= speed);
} else {
UP = false;
};
} else if (!UP) {
if (y < 256) {
ctx.drawImage(pl,y += speed);
} else {
ctx.drawImage(pl,y);
};
};
// DOWN
if (DOWN) {
pl.src = "./Duck.png";
} else if (!DOWN) {
pl.src = "./Idle.png";
};
};
setInterval(update,10);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)