-- Charge les deux extensions ui et canvas dont ce programme a besoin.
import ui
require "canvas"
-- On crée une fenêtre avec une taille voulue et un caption (titre).
local win = ui.Window("Image:draw()", "fixed", 500, 400)
-- On crée la surface d'affichage principale. Nommée içi 'canvas', on peut la nommer autrement (exemple , canv)
local canvas = ui.Canvas(win)
-- On définit quelques propriètés de la surface.
canvas.align = "all"
canvas.bgcolor = 0x000000FF -- Couleur de fond de la surface, c'est RGB : R=00 G=00 B=00 et l'opacité (transparence)=FF=Opaque.
-- On crée trois variables locales pour contenir l'image, sa hauteur et sa largeur.
local w = canvas.width
local h = canvas.height
local img = canvas:Image("c:/Prog/img/rond.png")
function canvas:onPaint()
self:begin()
-- La méthode de l'objet canvas qui permet d'effacer le canvas, utilisée ici pour effacer les images précédentes à chaque fois.
canvas:clear()
-- La méthode de l'objet canvas qui permet d'afficher une image.
img:draw(math.random(w)-80, math.random(h), math.random(), math.random()) -- position au hazard, taille et opacité au hazard.
-- Le flip va copier la surface principale (canvas) sur la fenêtre. Le canvas est comme une surface temporaire, un brouillon
self:flip()
end
await win:showasync()