【问题标题】:What is wrong with my import and export function?我的导入导出功能有什么问题?
【发布时间】:2021-10-01 18:29:46
【问题描述】:

我正在尝试从我的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>

我的目录:

【问题讨论】:

  • updatedraw 似乎没有在任何地方被调用? (顺便说一句,为什么文件夹中的程序是JAVA APP?)
  • 我实际上是从 JAVA APP 文件夹中删除了我的文件夹,这就是为什么
  • “似乎在任何地方都没有调用更新和绘制”是什么意思
  • game.js 不包含update()draw()?

标签: javascript import module export


【解决方案1】:

您导入这两个函数并在 update()draw() 函数中调用它们,但实际上并没有调用后两个函数。我想您的 main() 函数应该代表一个游戏循环,您可以在其中更新游戏逻辑并渲染游戏,这将使它看起来像这样:

function main(currentTime) {
    const secondsSinceLastRender = (currentTime - lastRenderTime) / 1000
    window.requestAnimationFrame(main)
    if (secondsSinceLastRender < 1 / SNAKE_SPEED) return
    lastRenderTime = currentTime
    update();
    draw();
}

也许您确实这样做了,但没有将它包含在您的示例代码中,因为在您的 main 函数末尾有很多空格。

对于 ESM 模块,您的导入/导出非常好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-29
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多