2019年10月3日 星期四

week04

讓白球左右移動
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;
  if(ballX>700) vx=-2;
}

碰到牆壁會反彈
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;
}


讓球彈跳
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;
  if(ballX>700-15) vx=-vx;
  if(ballY<0+15) vy=-vy;
  if(ballY>400-15) vy=-vy;
}

球彈到邊框會停止












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>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 marioX=100,marioY=100;
float marioVX=0,marioVY=0;
void setup(){
  size(500,500);
  imgmario=loadImage("mario.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(500,500);
  imgmario=loadImage("mario.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) marioX+=3;
  if(keyCode==LEFT) marioX-=3;
}
void keyPressed(){
  if(keyCode==RIGHT){
    marioVX=3;
    softBrake=0;
  }else if(keyCode==LEFT){
    marioVX=3;
    softBrake=0;
  }else if(keyCode==UP){
    marioVY=-15;
  }
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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