2019年10月3日 星期四

06160166 week04

20191003 Week04
製作一個在視窗彈跳的小球
int ballX=300,ballY=300;
int vx = -2;
int vy = -2;
void setup(){
  size(700,400);
}
void draw(){
  background(255);
  ellipse(ballX,ballY,30,30);
  ballX += vx;
  ballY += vy;
  if(ballX<0) vx = +2;
  if(ballX>700) vx =-2;
  if(ballY<0) vy = +2;
  if(ballY>400) vy =-2; 

}










製作一個在地板有拋物線的小球
float ballX=300,ballY=300;
float vx = -2;
float vy = -10;
void setup(){
  size(700,400);
}
void draw(){
  background(255);
  ellipse(ballX,ballY,30,30);
  ballX += vx;
  ballY += vy;
  vy+=0.98;
  if(ballX<0) vx = -vx;
  if(ballX>700) vx =vx;
  if(ballY<0) vy = -vy;
  if(ballY>400) vy =-vy; 

}










符合牛頓定理的彈跳
float ballX=300, ballY=300;
float vx = -2;
float vy = -10;
void setup() {
  size(700, 400);
}
void draw() {
  //background(255);
  ellipse(ballX, ballY, 30, 30);
  ballX += vx;
  ballY += vy;
  if (ballX<0+15) vx = -vx*0.9;
  if (ballX>700-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;

}















彈跳的馬力歐
PImage imgMario;
float mx=50, my=100;
float mvx=0, mvy=0;
void setup() {
  size(1000, 500);
  imgMario = loadImage("Mario.png");
}
void draw() {
  background(0);
  rect(0, 200, 1000, 100);
  image(imgMario, mx, my, 110, 110);
  mx += mvx;
  my += mvy;
  if (my<=100)mvy+=0.9;
  else my =100;
}
void keyPressed() {
  if (keyCode==RIGHT)mx+=3;
  if (keyCode==LEFT)mx-=3;
  if (keyCode==UP) {
    mvy =-15;
  }
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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