連絡

アンケートの結果,予習希望多数でしたので予習を主体とした内容で進めます.もちろん補習では過去の内容の疑問点などの質問も受け付けます.

メソッド

前回のプログラム例を示す.

Ball ball0;
final float GRAVITY = 9.8 / 60;
final float ELAS = 0.98;

void setup(){
  size(500, 500);
  ball0 = new Ball();
  ball0.x = width / 2;
  ball0.y = height / 2;
  ball0.vx = 10;
  ball0.vy = -10;
  ball0.d = 50;
}

void draw(){
  background(255, 255, 255);
  moveBall(ball0);
  drawBall(ball0);
}

void moveBall(Ball b){
  b.x += b.vx;
  b.vy += GRAVITY;
  b.y += b.vy;
  
  if (b.x < (b.d / 2)){
    b.x = b.d / 2;
    b.vx = ELAS * -b.vx;
  }
  
  if (b.x > (width - (b.d / 2))){
    b.x = width - (b.d / 2);
    b.vx = ELAS * -b.vx;
  }
  
  if (b.y > height - (b.d / 2)){
    b.y = height - (b.d / 2);
    b.vy = ELAS * -b.vy;
  }
}

void drawBall(Ball b){
  ellipse(b.x, b.y, b.d, b.d);
}

class Ball{
  float x;
  float y;
  float vx;
  float vy;
  float d;
}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS