javascript - 我需要帮助从画布中删除图像
问题描述
我需要帮助,当您按左箭头键然后创建一个新字符时,我正在尝试删除一个字符。不过,我无法删除这个角色。这是我的代码:
var canvas = document.createElement('canvas');
var c = canvas.getContext('2d');
canvas.width = 1000;
canvas.height = 600;
document.body.appendChild(canvas);
var NANONAUT_HEIGHT = 10;
var NANONAUT_WIDTH = 240;
window.addEventListener('keydown', onKeyDown);
// window.addEventListener('keyup', onKeyUp);
function onKeyDown(event) {
if(event.keyCode === 39){
if(NANONAUT_HEIGHT <= 240){
NANONAUT_HEIGHT = NANONAUT_HEIGHT + 10
for(i = NANONAUT_HEIGHT; i < img.width; i++){
c.drawImage(nanonaut, NANONAUT_HEIGHT, NANONAUT_WIDTH)
}
}
}
console.log(NANONAUT_WIDTH)
}
var nanonaut = new Image();
nanonaut.src = "https://cdn.glitch.com/098e8cf0-b83e-44bc-8aa2-c8316900937f%2FNanonaut.png?1551809807699"
var img = new Image();
img.src = "https://cdn.glitch.com/098e8cf0-b83e-44bc-8aa2-c8316900937f%2Fimage.png?1551724673489"
c.drawImage(img, 10,10);
c.drawImage(nanonaut, NANONAUT_HEIGHT, NANONAUT_WIDTH)
抱歉,如果它看起来很笨拙,我刚开始使用画布。我试过 clearRect 但这也删除了 img 。任何帮助,将不胜感激!(如果你想看的话,网站是https://project-experiment.glitch.me/ 。(你需要刷新 2 次才能看到图像,我不知道为什么。))
解决方案
通常你会clearRect(0, 0, canvas.width, canvas.height)
在每次更新时从头开始绘制所有内容。
画布只是一个没有图层或不同对象概念的哑位图。你不能移除你的角色来揭示背后的背景,那部分背景已经消失了。如果你想再次看到它,你必须再次绘制它。
推荐阅读
- javascript - 无法绘制大于 6000 公里的半径
- matplotlib - 在循环中的 lambda 函数定义期间设置附加参数 - 调用函数时的结果相同
- angular - InputNumber 中的持续时间。解析和格式化问题
- elastic-stack - Filebeat kubernetes 在日志中发送部分日志
- java - Guice 泛型类型注入
- java - 有没有办法让逗号(,)在Java中的字符串中转义?
- r - 循环遍历 SharedData 对象以在 R 中的 Leaflet 中绘制 addPolylines
- sql - 如何在表中插入更多行
- cuba-platform - CUBA 平台前端 UI 更新模型不起作用
- php - 使用 PHP MySQL 在折线图中不显示月份