javascript - 重绘网格的二级激活问题(游戏逻辑)
问题描述
我正在构建一个带有第二级钥匙/门的 2D js pacman。这个想法是在抓住钥匙后有能力进入下一个级别。一旦 pacman 上门,网格就会更新。游戏数据是一个包含两个网格的数组。重新绘制网格的最佳方法是什么?也有人可以建议创造鬼魂的好资源吗?先感谢您。
电平变化逻辑
let level = 0;
let grid = gameData[0]
function levelChange() {
console.log(grid[pacman.y][pacman.x] === grid[door.y][door.x])
if (grid[pacman.y][pacman.x] === grid[door.y][door.x]) {
grid = gameData[1];
level += 1;
}
console.log(level)
console.log(grid)
}
let map;
let pacman = {
x: 6,
y: 4,
direction: 'right'
};
let door = {
x: 11,
y: 8,
}
绘图网格
function drawMap() {
map = document.createElement('div');
// console.log(grid)
let tiles = createTiles(grid);
tiles.forEach(tile => {
map.appendChild(tile);
});
document.getElementById('body').appendChild(map)
// document.body.appendChild(map);
}
调用级别更改
function setupKeyboardControls() {
document.addEventListener('keydown', function (e) {
// console.log(e.keyCode);
if (e.keyCode === 37) {
moveLeft();
} else if (e.keyCode === 38) {
moveUp();
} else if (e.keyCode === 39) {
moveRight();
} else if (e.keyCode === 40) {
moveDown();
}
eraseMap();
drawMap();
screenScore();
doorUnlock();
levelChange();
});
}
function main() {
drawMap();
setupKeyboardControls();
}
main();
解决方案
只需将 drawMap/eraseMap 移动到 setupKeyboardControls() 的底部
推荐阅读
- python - 摆脱熊猫数据框中的所有换行符
- bash - curl命令中的bash脚本变量替换
- python - 为什么sklearn MinMaxScaler归一化稀疏矩阵只会输出-1和1值
- td-engine - tdengine 数据库中的多级存储
- python - 如何在 twint 中使用 since 和 until 参数?
- python - 如何使用 django 将来自 chromedriver 的文件正确保存在 docker 容器中?
- django - 为什么 Django 开发服务器没有重新加载?
- reactjs - 动态填充菜单组件 - React Material UI
- wordpress - 更改 Wordpress 网站的域名
- python - 直接运行 rasa 服务器,而不是从源环境?