2019年10月3日 星期四

06160805的課堂筆記

2019互動技術概論week04

注意:
size(w,h); //頁面大小
line(x,y,x,y); //線
rect(x,y,w,h); //矩形
circle(x,y,r); //圓形
ellipse(x,y,w,h); //橢圓
fill(R,G,B); //在矩形,圓形...等裡面的顏色
background(R,G,B); //頁面背景的顏色



打開processing

改字體大小:文件→偏好設定→編輯器字體大小


程式碼

讓圓球左右移動

int ballX=300,ballY=300;
int vx=-2;
void setup(){
  size(700,400);
}
void draw(){
  background(255);
  ellipse(ballX,ballY,30,30);
  ballX+=vx;
  if(ballX<0)vx=+2; //球的位置到0時,就往右走
  if(ballX>700)vx=-2; //球的位置到700時,就往左走
}


讓球進行彈跳

float ballX=300,ballY=300;
float vx=+2,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+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;
}


增加摩擦力,讓球碰到邊時,慢慢停止下來

float ballX=300,ballY=300;
float vx=+2,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>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;
}


馬力歐進行上下跳動左右前進

PImage imgMario;
float marioX=100,marioY=100;
float marioVX=0,marioVY=0;
float vx=+2,vy=-10;
void setup(){
  size(700,400);
  imgMario=loadImage("123.jpg");
}
void draw(){
  background(255);
  rect(0,200,500,50);
  image(imgMario,marioX,marioY,100,100);
  marioX+=marioVX;
  marioY+=marioVY;
  if(marioY<=100)marioVY+=0.9;
  else marioY=100;
}
void keyPressed(){
  if(keyCode==RIGHT) marioX+=3;
  if(keyCode==LEFT)marioX-=3;
  if(keyCode==UP){
    marioVY=-15;
  }
}


馬力歐進行上下跳動左右前進,當放掉按鍵,馬力歐就進行煞車

PImage imgMario;
float marioX=100,marioY=100;
float marioVX=0,marioVY=0;
void setup(){
  size(700,400);
  imgMario=loadImage("123.jpg");
}
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){
    marioX+=3;
    softBrake=0;
  }
  else if(keyCode==LEFT){
    marioX-=3;
    softBrake=0;
  }
  else if(keyCode==UP){
    marioVY=-15;
  }
}















沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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