javascript - 我的导入导出功能有什么问题?
问题描述
我正在尝试从我的snake.js 导入我的函数“更新”和“绘制”,但控制台上没有显示任何内容,也没有宣布任何错误......我的代码有问题,有人可以帮助我吗?太感谢了!
这是我的game.js:
import { update as updateSnake, draw as drawSnake, SNAKE_SPEED } from "/condition/snake.js"; //moves 2 times per second
let lastRenderTime = 0
function main(currentTime) {
const secondsSinceLastRender = (currentTime - lastRenderTime) / 1000
window.requestAnimationFrame(main)
if (secondsSinceLastRender < 1 / SNAKE_SPEED) return
lastRenderTime = currentTime
}
window.requestAnimationFrame(main)
function update() {
updateSnake()
}
function draw() {
drawSnake()
}
This is my snake.js:
export const SNAKE_SPEED = 1
export function update() {
console.log('update snake')
}
export function draw() {
console.log('draw snake')
这是我的html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Snake</title>
</head>
<body>
<div id="game-board"></div>
<script src="game.js" type="module"></script>
</body>
</html>
解决方案
您导入两个函数并在您的update()
anddraw()
函数中调用它们,但实际上并没有调用后两个函数。我想您的main()
函数应该代表一个游戏循环,您可以在其中更新游戏逻辑并渲染游戏,这将使它看起来像这样:
function main(currentTime) {
const secondsSinceLastRender = (currentTime - lastRenderTime) / 1000
window.requestAnimationFrame(main)
if (secondsSinceLastRender < 1 / SNAKE_SPEED) return
lastRenderTime = currentTime
update();
draw();
}
main
也许您确实这样做了,但没有将其包含在示例代码中,因为函数末尾有很多空格。
否则,对于 ESM 模块,您的导入/导出就很好了。
推荐阅读
- angular - 行为主题仅显示初始值/重播主题不显示更新值
- python - 如何在kivy中的图像上插入标签?
- spring-integration - EnrichHeader 基于条件
- python - 从用户那里命令一些单词并将这些单词作为列表显示给用户
- reactjs - 收到错误:检查 `AuthProvider` 的渲染方法
- sql - 如何在 WHERE 中使用多个条件的 sql 中的 CONTAINS
- python - 在 SymPy 表达式中将 `exp(I*pi)` 替换为 `-1`
- python - Python for 循环返回第一个值
- java - 如何同时将 PDF 文件转换为 PNG 图像?
- sql - impala 中的 Max() 没有产生正确的值