04-08 忍者のアニメーション

忍者のコスチュームを変えながら表示する。

例題 4-8-1

忍者を横に移動する。attack00.png~attack06.pngまでの7つのロボットのコスチュームを0.1秒置きに切り替えて表示する。frameRate(10)と設定することで、draw関数は1秒に10回呼び出されることになるので、0.1秒置きの描画となる。

コード

let ninja = [];
let n = 0;
let x = 0, dx = 10;
let y = 0, dy = 10;

function preload() {
  for (let i = 0; i <= 6; i++) {
    ninja.push(loadImage('img/attack0' + i + '.png'));
  }
}

function setup() {
  createCanvas(400, 400);
  noSmooth();
  frameRate(10);
}

function draw() {
  background(255);   
  image(ninja[n], x, y, 128, 128);
  n = (n + 1) % ninja.length;
  x += dx;
  if (x < 0 || 300 < x)
    dx = -dx;  
}

練習問題4-8-1

忍者を縦方向(上下)に移動させなさい。
上下の端で跳ね返るように動きを制御すること。

練習問題4-8-2

忍者を斜め方向に移動させなさい。
画面の端にぶつかったら、X方向とY方向の両方の動きを反転させて跳ね返すようにする。