04-07 球の移動 

学習日

8月26日 火曜日

名前

中村 結

練習問題 4-7-

let x = 50, y = 0, z = 0;
let dx = 10, dy = 10, dz = 10;  // 移動量

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

function draw() {
  background(200);
  rotateY(frameCount * 0.01);
  translate(x,y,z); 
  sphere(40);
  y += dy;
  if ( y< -160 || 160 < y)  // 跳ね返す
    dy = -dy;
}

📷 実行結果

球が縦に回転しながら移動するようになった。

練習問題4-7-2

let x = 100, y = 0, z = 0;
let dx = 10, dy = 10, dz = 10;  // 移動量

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

function draw() {
  background(200);
  rotateX(frameCount * 0.05);
  translate(x, y, z); 
  sphere(40);
  z += dz;
  x += dx;
  y += dy;
  
  if ( x< -160 || 160 < x)  // 跳ね返すx
    dx = -dx;
  if ( y< -160 || 160 < y)  // 跳ね返すy
    dy = -dy;
  if ( z< -160 || 160 < z)  // 跳ね返すz
    dz = -dz;
}

📷 実行結果

球が縦や横、前や後ろなどの様々な方向に移動するようになった。

まとめ

x 縦  

y 横  

z 奥行

・if()を使って跳ね返す指示を作ることができる

コメントする