Это можно исправить с помощью global
. Обязательно используйте глобальный, где вы также инициализируете холст, в противном случае это локальная переменная, и ваша глобальная ссылка на холст все еще может быть None
Вот базовый c пример:
# global reference
canvas = None
def setup():
size(300, 300)
# setup global canvas
global canvas
canvas = createGraphics(300, 300)
canvas.beginDraw()
canvas.background(0);
canvas.noStroke()
canvas.blendMode(DIFFERENCE)
canvas.ellipse(150,150,150,150)
canvas.endDraw()
def draw():
# reference global canvas to draw
global canvas
image(canvas,0,0)
def mouseDragged():
diameter = dist(mouseX,mouseY,pmouseX,pmouseY)
# reference global canvas to update graphics
global canvas
canvas.beginDraw()
canvas.ellipse(mouseX,mouseY,diameter,diameter)
canvas.endDraw()