HUGサンプル /

CANVAS

CANVAS では PIXEL・LINE・SQUARE・CIRCLE・PICTURE・OUT の命令で
線画を行う事が可能です。
古来の BASIC になれている人はグラフィックモードの生成と考えてもらうと
わかりやすいかもしれません。

canvas.jpg

'canvas.bac
 INCLUDE "hug.bac"
 

 canvas_x = 450
 canvas_y = 380
 

SUB CLEAN_SCREEN()
     CLEAR

     canvas = CANVAS(canvas_x, canvas_y)

     ATTACH(win, canvas, 0,0)
     CALLBACK(clean, CLEAN_SCREEN)
     CALLBACK(canvas, HandleMouse)
     CALLBACK(myquit, QUIT)
END SUB
 
SUB HandleMouse()
     cursor_x = MOUSE(0)
     cursor_y = MOUSE(1)
 
    IF MOUSE(2) = 1 THEN
         PRINT
         PRINT cursor_x, " cursor_x"
         PRINT cursor_y, " cursor_y"
         PRINT

        DRAW(canvas)
         LINE("blue"  , 0, cursor_y, canvas_x, cursor_y)
         LINE("yellow", cursor_x, 0, cursor_x, canvas_y)
     END IF
END SUB
 

INIT
    HUGOPTIONS("NOSCALING")

    win = WINDOW("きゃんばす!", 450, 430)
    canvas = CANVAS(canvas_x, canvas_y)
    ATTACH(win, canvas, 0, 0)
    CALLBACK(canvas, HandleMouse)
 
    mark1 = MARK("左クリックしてみようか〜", 300, 15)
    ATTACH(win, mark1, 72, 400)
 
    clean = BUTTON("きれいきれい", 100, 30)
    ATTACH(win, clean, 10 ,390)
    CALLBACK(clean, CLEAN_SCREEN)

    myquit = BUTTON("おわり〜", 100, 30)
    ATTACH(win, myquit, 338, 390)
    CALLBACK(myquit, QUIT)
DISPLAY