收藏
回答

微信小游戏 动画 清除上一帧 背景也被清除了?

我想做个动画,动画要清除上一帧的。

用了这个:

ctx.clearRect(0, 0, canvas.width, canvas.height);

但是用了这个以后,我发现它把整个屏幕都抹成黑色了,游戏背景都被抹掉了。

我那个动画是在背景之上有个动画,我不想抹背景。

怎么清理上一帧又不影响背景?

回答关注问题邀请回答
收藏

1 个回答

  • CRMEB
    CRMEB
    2023-08-18

    一种方法是在每一帧绘制之前,先绘制游戏背景。然后,在绘制动画之前,使用 clearRect 方法只清除动画部分的区域。这样可以确保只清除动画部分,而不会影响背景。

    例如,假设您的动画位于画布上方的某个区域(例如 (x, y) 坐标为 (100, 100),宽度为 200,高度为 100),可以按照以下步骤进行绘制:

    // 清除动画部分
    ctx.clearRect(100100200100);
    
    // 绘制游戏背景
    // ...
    
    // 绘制新的动画帧
    // ...
    

    这样,clearRect 方法只会清除指定区域内的内容,而不会影响背景的绘制。

    2023-08-18
    有用 1
    回复 1
    • 人工智什么
      人工智什么
      2023-08-18
      谢谢您~~这个是可行的
      2023-08-18
      回复
登录 后发表内容