✎跟著游標移動的圖及定點的圖
👀下載兩張去背png圖
將兩張圖匯入👀將一張圖片放在固定的位置,另一張跟著游標移動
PImage imgEye,imgBear; //宣告圖片變數void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png"); //匯入圖片
imgBear=loadImage("bear.png"); //匯入圖片
}
void draw(){
background(255);
image(imgBear,400,300); //顯示圖片及位置
image(imgEye,mouseX,mouseY); //顯示圖片及位置
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
}
按下左上角的三角形或Ctrl+R,即可執行看結果
👀把兩張圖片調整到適中大小
PImage imgEye,imgBear; //宣告圖片變數
void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png"); //匯入圖片
imgBear=loadImage("bear.png"); //匯入圖片
}
void draw(){
background(255);
image(imgBear,400,300,120,100); //顯示圖片及位置大小
image(imgEye,mouseX,mouseY,100,100); //顯示圖片及位置大小
void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png"); //匯入圖片
imgBear=loadImage("bear.png"); //匯入圖片
}
void draw(){
background(255);
image(imgBear,400,300,120,100); //顯示圖片及位置大小
image(imgEye,mouseX,mouseY,100,100); //顯示圖片及位置大小
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
}
✎牛頓第一運動定律
PImage imgEye,imgBear;
void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
void draw(){
background(255);
image(imgBear,bearX,bearY,120,100);
image(imgEye,eyeX,eyeY,100,100);
line(eyeX,eyeY,400,300);
void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
void draw(){
background(255);
image(imgBear,bearX,bearY,120,100);
image(imgEye,eyeX,eyeY,100,100);
line(eyeX,eyeY,400,300);
eyeX+=eyeVX;
eyeY+=eyeVY;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
}void mouseReleased(){ //滑鼠放開點擊
eyeVX=(400-mouseX)/100.0;
eyeVY=(300-mouseY)/100.0;
}
按下左上角的三角形或Ctrl+R,即可執行看結果eyeY+=eyeVY;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
}void mouseReleased(){ //滑鼠放開點擊
eyeVX=(400-mouseX)/100.0;
eyeVY=(300-mouseY)/100.0;
}
✎修改圖片原點位置
PImage imgEye,imgBear;
void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
imageMode(CENTER); //將圖片的原點位置從左上角移至中心點
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
void draw(){
background(255);
image(imgBear,bearX,bearY,120,100);
image(imgEye,eyeX,eyeY,100,100);
line(eyeX,eyeY,400,300);
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
void draw(){
background(255);
image(imgBear,bearX,bearY,120,100);
image(imgEye,eyeX,eyeY,100,100);
line(eyeX,eyeY,400,300);
eyeX+=eyeVX;
eyeY+=eyeVY;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
}void mouseReleased(){ //滑鼠放開點擊
eyeVX=(400-mouseX)/100.0;
eyeVY=(300-mouseY)/100.0;
}
eyeY+=eyeVY;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
}void mouseReleased(){ //滑鼠放開點擊
eyeVX=(400-mouseX)/100.0;
eyeVY=(300-mouseY)/100.0;
}
✎牛頓第二運動定律
PImage imgEye,imgBear;
void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
imageMode(CENTER);
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
float eyeAX=0,eyeAY=0;
void draw(){
background(255);
image(imgBear,bearX,bearY,120,100);
image(imgEye,eyeX,eyeY,100,100);
line(eyeX,eyeY,400,300);
eyeX+=eyeVX;
eyeY+=eyeVY;
eyeVX+=eyeAX;
eyeVY+=eyeAY;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
eyeVX=eyeVY=eyeAX=eyeAY=0; //將前一次的數值歸零
}
void mouseReleased(){
eyeVX=(400-mouseX)/10.0;
eyeVY=(300-mouseY)/10.0;
eyeAY=0.98; //將加速度重置回0.98
}
按下左上角的三角形或Ctrl+R,即可執行看結果void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
imageMode(CENTER);
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
float eyeAX=0,eyeAY=0;
void draw(){
background(255);
image(imgBear,bearX,bearY,120,100);
image(imgEye,eyeX,eyeY,100,100);
line(eyeX,eyeY,400,300);
eyeX+=eyeVX;
eyeY+=eyeVY;
eyeVX+=eyeAX;
eyeVY+=eyeAY;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
eyeVX=eyeVY=eyeAX=eyeAY=0; //將前一次的數值歸零
}
void mouseReleased(){
eyeVX=(400-mouseX)/10.0;
eyeVY=(300-mouseY)/10.0;
eyeAY=0.98; //將加速度重置回0.98
}
✎擊中目標物,目標物會消失
PImage imgEye,imgBear;
void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
imageMode(CENTER);
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
float eyeAX=0,eyeAY=0;
float bearX=650,bearY=200;
boolean bearAlive=true;
void draw(){
background(255);
if(bearAlive)image(imgBear,bearX,bearY,120,100); //如果目標物存活,便畫出圖形
image(imgEye,eyeX,eyeY,100,100);
if(dist(bearX,bearY,eyeX,eyeY)<100) //如果兩物的距離小於100,目標物就死亡
bearAlive=false;
line(eyeX,eyeY,400,300);
eyeX+=eyeVX;
eyeY+=eyeVY;
eyeVX+=eyeAX;
eyeVY+=eyeAY;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
eyeVX=eyeVY=eyeAX=eyeAY=0;
}
void mouseReleased(){
eyeVX=(400-mouseX)/10.0;
eyeVY=(300-mouseY)/10.0;
eyeAY=0.98;
}
按下左上角的三角形或Ctrl+R,即可執行看結果void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
imageMode(CENTER);
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
float eyeAX=0,eyeAY=0;
float bearX=650,bearY=200;
boolean bearAlive=true;
void draw(){
background(255);
if(bearAlive)image(imgBear,bearX,bearY,120,100); //如果目標物存活,便畫出圖形
image(imgEye,eyeX,eyeY,100,100);
if(dist(bearX,bearY,eyeX,eyeY)<100) //如果兩物的距離小於100,目標物就死亡
bearAlive=false;
line(eyeX,eyeY,400,300);
eyeX+=eyeVX;
eyeY+=eyeVY;
eyeVX+=eyeAX;
eyeVY+=eyeAY;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
eyeVX=eyeVY=eyeAX=eyeAY=0;
}
void mouseReleased(){
eyeVX=(400-mouseX)/10.0;
eyeVY=(300-mouseY)/10.0;
eyeAY=0.98;
}
✎攻擊物不會超出視窗且具有空氣阻力
PImage imgEye,imgBear;void setup(){
size(800,600);
imgEye=loadImage("threeEyes.png");
imgBear=loadImage("bear.png");
imageMode(CENTER);
}
float eyeX=400,eyeY=300;
float eyeVX=0,eyeVY=0;
float eyeAX=0,eyeAY=0;
float bearX=650,bearY=200;
boolean bearAlive=true;
void draw(){
background(255);
if(bearAlive)image(imgBear,bearX,bearY,120,100);
image(imgEye,eyeX,eyeY,100,100);
if(dist(bearX,bearY,eyeX,eyeY)<100)
bearAlive=false;
line(eyeX,eyeY,400,300);
eyeX+=eyeVX;
eyeY+=eyeVY;
//設定攻擊物可以移動的範圍
if(eyeX<50) {eyeX=50; eyeVX=-eyeVX;}
if(eyeX>width-50) {eyeX=width-50; eyeVX=-eyeVX;}
if(eyeY<50) {eyeY=50; eyeVY=-eyeVY;}
if(eyeY>height-50) {eyeY=height-50; eyeVY=-eyeVY;}
eyeVX+=eyeAX;
eyeVY+=eyeAY;
//加上空氣阻力,使攻擊物會漸漸停下
eyeVX*=0.99;
eyeVY*=0.99;
}
void mouseDragged(){
eyeX=mouseX;
eyeY=mouseY;
eyeVX=eyeVY=eyeAX=eyeAY=0;
}
void mouseReleased(){
eyeVX=(400-mouseX)/10.0;
eyeVY=(300-mouseY)/10.0;
eyeAY=0.98;
}
按下左上角的三角形或Ctrl+R,即可執行看結果
✎小朋友下樓梯
void setup(){size(600,500);
}
int boardX=250,boardY=400;
int kidX=300,kidY=250;
void draw(){
background(0);
rect(boardX,boardY,200,50);
rect(kidX,kidY,50,50);
if(kidX>boardX-50 && kidX<boardX+200 && kidY>boardY-50){
//touched the board
}
else kidY++; //No touch the board
kidX=mouseX; //小朋友隨滑鼠左右移動
}
按下左上角的三角形或Ctrl+R,即可執行看結果
沒有留言:
張貼留言