2019年10月3日 星期四

Week04 06161215

Part 1 本周上課內容

期中作品,帶領(想題目,做做看,回家任務)

聲音,小鋼琴,物件,import所需功能

牛頓定律(位置,速度,加速度),馬力歐跳,重力加速度

碰撞(DVD風格左右上下邊框碰撞)

Part 1-1 左右上下碰撞

int ballX=300, ballY=300;
int vx=-2, vy=-2;
void setup() {
  size(700, 400);
}
void draw() {
  background(255);
  ellipse(ballX, ballY, 30, 30);
  ballX+=vx;
  ballY+=vy;
  if (ballX<0+15) vx=+2;
  if (ballX>700-15) vx=-2;
  if (ballY<0+15) vy=+2;
  if (ballY>400-15) vy=-2;
}


Part 1-2 拋物線

float ballX=100, ballY=300;
float vx=-2, vy=-10;
void setup() {
  size(600, 400);
}
void draw() {
  background(255);
  ellipse(ballX, ballY, 30, 30);
  ballX+=vx;
  ballY+=vy;
  if (ballX<0+15) vx=-vx*0.9;
  if (ballX>600-15) vx=-vx*0.9;
  if (ballY<0+15) vy=-vy*0.9;
  if (ballY>400-15) {
    vy=-vy*0.9;
    vx=vx*0.9;
    ballY=400-15;
  }
  vy+=0.98;

}


Part 1-3 馬力歐左右彈跳

PImage imgMario;
float marioX=100, marioY=100;
float marioVX=0, marioVY=0;
void setup() {
  size(500, 500);
  imgMario = loadImage("mario.png");
}
void draw() {
  background(255);
  rect(0, 200, 500, 50);
  image(imgMario, marioX, marioY, 100, 100);
  marioX += marioVX;
  marioY += marioVY;
  if (softBrake==1) marioVX *=0.9;
  if (marioY<=100) marioVY += 0.9;
  else marioY =100;
}
int softBrake=0;
void keyReleased() {
  if (keyCode==RIGHT) softBrake=1;
  if (keyCode==LEFT) softBrake=1;
}
void keyPressed() {
  if (keyCode==RIGHT) {
    marioVX= 3;
    softBrake=0;
  } else if (keyCode==LEFT) {
    marioVX= -3;
    softBrake=0;
  } else if (keyCode==UP) {
    marioVY = -10;
  }
}




沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...