互動技術
Week 04
1. 畫出一個球,當球碰到畫面邊框時反彈
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; }
2. 製作牛頓物理碰撞,ballY*0.98
float ballx=300, bally=300; float vx=-2,vy= 2; 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; }
3.製作具有摩擦力的球
float ballx=300, bally=300; float 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 = -vx*0.98; if(ballx>700-15)vx = -vx*0.98; if(bally<0+15) vy = -vy*0.98; if(bally>400-15){ vy = -vy*0.98; vx = vx*0.98; bally=400-15; } vy+=0.98; }
PImage imgKid; float kidx=100, kidy=100; float kidvx=0,kidvy= 0; void setup(){ size(500,500); imgKid = loadImage("kid.gif"); } void draw(){ background(255); rect(0,200, 500,50); image(imgKid,kidx, kidy,100,100); if(softbrake==1){ kidvx*=0.8; } kidx+=kidvx; kidy+=kidvy; if(kidy<=100){ kidvy += 0.98; }else kidy=100; } int softbrake = 0; void keyReleased(){ if(keyCode==RIGHT){ softbrake=1; }else if(keyCode==LEFT) { softbrake=1; } } void keyPressed(){ if(keyCode==RIGHT){ kidx+=3; softbrake=0; if(kidvx>10)kidvx=10; }else if(keyCode==LEFT) { kidx-=3; softbrake=0; if(kidvx>10)kidvx=10; }else if(keyCode==UP) { kidvy= -15; } }

沒有留言:
張貼留言