2015年7月7日火曜日

お絵かきロジック(笑)の続き

元の話題をすり替えて「カクカクしている」(直線しか引けない、と言いたいらしい)とか難癖をつける奴がいたので、また自分の確認・練習も兼ねて。Firefox推奨。

open Dom_html
open Graphics_js
let () = (* open_graph "" *)
  Js.Opt.iter
    (CoerceTo.canvas (getElementById "canvas2"))
    Graphics_js.open_canvas
let rec k = function
  | `Up ->
      loop [Button_down] (fun status ->
        moveto status.mouse_x status.mouse_y;
        k `Down)
  | `Down ->
      loop [Button_up] (fun status ->
        k `Up);
      loop [Mouse_motion] (fun status ->
        lineto status.mouse_x status.mouse_y;
        k `Down)
let () = k `Up
後半は
let rec k () =
  loop [Button_down] (fun status ->
    moveto status.mouse_x status.mouse_y;
    loop [Button_up] (fun status -> k ());
    loop [Mouse_motion] (fun status ->
      lineto status.mouse_x status.mouse_y))
let () = k ()
でも良いはず。わかりにくいからやめておくが。

2015年6月2日火曜日

お絵かきロジック(笑)というかマウスのドラッグ(ボタンの状態)

Firefox推奨。手抜きなのでポップアップ許可してね(それすらできない奴はもう知らん) よもや本当にポップアップ許可もわからないとは…しょうがないから埋め込んでやったよ…はあ…

追記:「ポップアップ許可のしかたがわからない」の次は「;;が多い」かよ! わざわざ全部消してやったYO!

open Dom_html
open Graphics_js
let () = (* open_graph "" *)
  Js.Opt.iter
    (CoerceTo.canvas (getElementById "canvas1"))
    Graphics_js.open_canvas
let rec k = function
  | `Up ->
      loop [Button_down] (fun event ->
        k (`Down(event.mouse_x, event.mouse_y)))
  | `Down(x, y) ->
      loop [Button_up] (fun event ->
        moveto x y;
        lineto event.mouse_x event.mouse_y;
        k `Up)
let () = k `Up