画布渲染一次,在所有动作之后

Posted

技术标签:

【中文标题】画布渲染一次,在所有动作之后【英文标题】:Canvas rendering once, after all actions 【发布时间】:2015-10-04 11:47:03 【问题描述】:

一时有点困惑,感谢任何帮助。

我正在制作一个使用画布渲染游戏板的应用。 而且我遇到了一个问题,即它不是最优的,为每个小的变化渲染画布。

这是目前的结构:

function renderCanvas() 
  // calling for each row


function renderRow() 
  // calling for each cell


function renderCell() 
  // Here i use FillRect and StrokeRect both

函数相互协作以传递上下文。

现在它渲染每个单元格。并且使用 beginPath 似乎只处理中风。

我想知道我是否可以在 renderCanvas 函数中以某种方式启动路径(如 beginPath),并且在完成所有上下文操作之后 - 我可以渲染一次吗?

【问题讨论】:

每个beginPath只能做一个样式,所以如果你的单元格需要不同的颜色、字体、不透明度,那么你必须为每个不同的样式做一个beginPath(但你可以将相同的样式组合成一个开始路径)。 谢谢,这正是我要找的信息。您可以发布完整的答案,我会接受。 【参考方案1】:

每个 beginPath 只能做一种样式...

因此,如果您的单元格需要不同的颜色、字体、不透明度,那么您必须为每种不同的样式创建一个 beginPath(但您可以将相同的样式组合到一个 beginPath 中)。

【讨论】:

以上是关于画布渲染一次,在所有动作之后的主要内容,如果未能解决你的问题,请参考以下文章

将文本渲染到 kivy 画布

如何有选择地将一个函数中的所有画布动作转移到另一个函数

Konva stage.toDataUrl()是不是渲染我在画布中看到的图像?

如何在不模糊的情况下拉伸 WebGL 画布? “图像渲染”样式不起作用

在页面上将 Highcharts 画布渲染为 PNG

Unity3d游戏开发浅谈UGUI中的Canvas以及三种画布渲染模式