javascript - 简单的 JS 错误(应该没有错误日志)
问题描述
大家好,感谢您试图帮助我..
我正在尝试在 javaScript 中创建一个小型汽车游戏,但实际上我无法打印图像……这是我的 JS 代码:
// Parametters
const canvasWidth = 500;
const canvasHeight = 500;
const carLength = 60;
const carWidth = 30;
const canvas = document.getElementById('canvas');
canvas.width = canvasWidth;
canvas.height = canvasHeight;
const context = canvas.getContext('2d');
drawAll();
function drawAll() {
console.log('draw canvas background');
context.fillStyle = 'green';
context.fillRect(0, 0, canvasWidth, canvasHeight);
drawCar();
}
function drawCar() {
let image = new Image();
image.src = 'assets/images/car_orange.png';
context.drawImage(image, 200, 200, carLength, carWidth);
}
这是html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="shortcut icon" href="assets/images/pageIcon/pageIcon.ico" type="image/x-icon" />
<title>CrossingCars</title>
</head>
<body>
<canvas id="canvas"></canvas>
<script src="drinving_environment.js"></script>
</body>
</html>
错误是我的代码没有像 drawCar() 函数那样打印图像,但是如果我在控制台中分别键入每一行代码,它就可以工作......
解决方案
因为您的图像内容尚未加载。您应该等到图像加载完毕。
请在此处参考此答案 此问题始终在画布上发生。
...
function drawCar() {
let image = new Image();
image.src = 'assets/images/car_orange.png';
image.onload = function() {
context.drawImage(image, 200, 200, carLength, carWidth);
}
}
...
推荐阅读
- reactjs - 如何使用反应更新数据而不刷新页面?
- php - 如何在 PHP 更新表单的“下拉菜单”中显示选定的选项?
- r - 将 hms 矢量格式化为自定义格式
- azure - 如何配置 Apache Spark 以使用 BI 工具中的 Delta Lake 表?
- android - 无法在ionic中列出android目录和子目录中的所有文件和文件夹
- python-3.x - AttributeError: 使用 pip (python 3.6) 安装 Jupyter Notebook 时,模块 'typing' 没有属性 'NoReturn'
- python - 如何在使用子进程按顺序运行列表时仅在上一个文件结束时运行下一个文件
- javascript - 带有脚本的区块链的前端虚拟机和代码编辑器究竟是如何工作的?
- css - 您尝试使用标准 CSS 解析器解析 SCSS;使用 postcss-scss 解析器重试
- javascript - Firebase Firestore / React Native 聊天通知