04-09 マウスイベント

マウスがクリックされたとかドラッグされたときのイベント処理を記述できる。

マウスイベントを処理する関数として以下がある。これらの関数内でグローバル変数のmouseXとmouseYを使ってマウス位置を取得することができる。

マウスイベント機能
mouseClickedマウスボタンがクリックされたとき
mousePressedマウスボタンが押されたとき
mouseReleasedマウスボタンが離されたとき
mouseMovedマウスが移動したとき
mouseDraggedマウスがドラッグされているとき
mouseWheelマウスのホイールが動かされたとき

例題 4-9-1

マウスドラッグでイメージを移動する。

コード

let coin;
let x = 100, y = 100;
function preload() {
    coin = loadImage('img/front.png');
}

function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(255);
  image(coin, x, y,100,100);
}

function mouseDragged() {
  x = mouseX-50;
  y = mouseY-50;  
}

例題4-9-2

コインを押すたびに表裏交互に表示する。

let front, back;
let flag = false;
let x = 100, y = 100;
function preload() {
  front = loadImage('img/front.png');
  back  = loadImage('img/back.png');
}

function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(255);
  if (flag)
    image(front, 0, 0, 400, 400);
  else
    image(back, 0, 0, 400, 400);
}

function mousePressed() {
  if (0 < mouseX && mouseX < 400 && 0 < mouseY && mouseY < 400)
    flag = !flag;
}

練習問題4-9-1

2つのコインをそれぞれ、マウスを押すたびに反転しなさい。

練習問題4-9-2

カードを「裏→表→裏→表…」と、交互に表示させるプログラムを作りましょう。
ただし、「表」を表示させるときには、2種類のカードがあり、そのどちらかがランダムに表示されるようにします。

✅ ポイント

イベント関数タイミング
mousePressed()マウスボタンが押された瞬間
mouseDragged()マウスが押されたまま移動している間
mouseX / mouseY現在のマウスの位置を取得する変数
  • flag = !flag で真偽値を切り替えられる(トグル処理)
  • random() を使うと、ランダムな数値で画像を選ぶことができる
  • 画像の当たり判定if (mouseX < x2 && mouseX > x1) のように範囲で指定