任何CanvasItem派生节点都可以使用draw来控制绘制和重绘
但是,Control类控件比如Button使用_draw,并不会覆盖按钮原本的样貌,而是毫不相关的执行绘制指令。
CanvasItem类型的API中提供了很多draw开头的绘制指令函数
利用这些绘制指令函数,我们可以绘制很多内容
如果利用更新机制和tool脚本机制,甚至能做出在编辑器使用的动态工具
draw_texture——绘制贴图
根据鼠标移动绘制贴图
我们改进一下官方实例的代码
虽然官方文档没有明说,但是说了update()是“重绘”是“更新”,所以update()每执行一次,都是清除上一次_draw()执行的绘制指令的结果,然后再次顺序调用一遍_draw()里面的绘制指令
如果想要动态效果,只需要设定_draw()里面的绘制指令的参数为动态变化的,并且在_process()或其他时机,调用update()执行重绘