week08
牛頓力學:靜者恆靜,動者恆動
void setup(){ size (400,400); } float x=200,y=200,vx=1,vy=1; void draw(){ ellipse(x,y,10,10); x+=vx; y+=vy; }
位置、速度、加速度重力加速度:void setup(){ size (400,400); } float x=50,y=250,vx=2,vy=-20; void draw(){ ellipse(x,y,10,10); x+=vx; y+=vy; vy+=0.98; }
碰撞偵測void setup(){ size (400,400); } float x=50,y=250,vx=2,vy=-20; void draw(){ x+=vx; y+=vy; vy+=0.98; if(y>350){ y=350; } ellipse(x,y,10,10); }
碰撞能量耗損void setup(){ size (400,400); } float x=50,y=250,vx=2,vy=-20; void draw(){ x+=vx; y+=vy; vy+=0.98; if(y>350){ y=350; vy=-vy*0.5; } ellipse(x,y,10,10); }
馬力歐背景左右移動void setup(){ size (400,400); } float marioX=50,marioY=250,vx=0,vy=0; void draw(){ background(108,137,255); marioX+=vx; fill(255,0,0);ellipse(marioX,marioY,15,20); fill(229,119,42);rect(0,260,400,150); } void keyPressed(){ if (keyCode==RIGHT)vx=2; if (keyCode==LEFT)vx=-2; }
按上鍵會飛走void setup(){ size (400,400); } float marioX=50,marioY=250,vx=0,vy=0; void draw(){ background(108,137,255); marioX+=vx; marioY+=vy; fill(255,0,0);ellipse(marioX,marioY,15,20); fill(229,119,42);rect(0,260,400,150); } void keyPressed(){ if (keyCode==RIGHT)vx=2; if (keyCode==LEFT)vx=-2; if (keyCode==UP)vy=-20; } void keyReleased(){ if(keyCode==LEFT||keyCode==RIGHT)vx=0; }
y加上重力加速度往下void setup(){ size (400,400); } float marioX=50,marioY=250,vx=0,vy=0; void draw(){ background(108,137,255); marioX+=vx; if(flying){ marioY+=vy; vy+=0.98; if(marioY>=250){ marioY=250; flying=false; } } fill(255,0,0);ellipse(marioX,marioY,15,20); fill(229,119,42);rect(0,260,400,150); } boolean flying=false; void keyPressed(){ if (keyCode==RIGHT)vx=2; if (keyCode==LEFT)vx=-2; if (keyCode==UP&&flying==false){ vy=-20; flying=true; } } void keyReleased(){ if(keyCode==LEFT||keyCode==RIGHT)vx=0; }
新增磚塊
void setup(){ size (400,400); } float marioX=50,marioY=250,vx=0,vy=0; void draw(){ background(108,137,255); marioX+=vx; if(flying){ marioY+=vy; vy+=0.98; if(marioY>=250){ marioY=250; flying=false; } } fill(255,0,0);ellipse(marioX,marioY,15,20); fill(229,119,42);rect(0,260,400,150); fill(229,119,42);rect(200,150,20,20); if (hitBox(200,150,20,20)){ vx=0; marioY=150+20; } } boolean hitBox(int x,int y,int w,int h){ if (x<marioX && marioX<x+w && y<marioY&& marioY<y+h)return true; else return false; } boolean flying=false; void keyPressed(){ if (keyCode==RIGHT)vx=2; if (keyCode==LEFT)vx=-2; if (keyCode==UP&&flying==false){ vy=-20; flying=true; } } void keyReleased(){ if(keyCode==LEFT||keyCode==RIGHT)vx=0; }
球卡在上面不往下掉
void setup(){ size (400,400); } float marioX=50,marioY=250,vx=0,vy=0; void draw(){ background(108,137,255); marioX+=vx; if(flying){ marioY+=vy; vy+=0.98; if(marioY>=250){ marioY=250; flying=false; } } fill(255,0,0);ellipse(marioX,marioY,15,20); fill(229,119,42);rect(0,260,400,150); fill(229,119,42);rect(200,150,20,20); if (hitBox(200,150,20,20)){ if (vy>0){ marioY=150-10; flying=false; }else{ vy=0; marioY=150+20+10; } marioY=150+20; } } boolean hitBox(int x,int y,int w,int h){ if (x-7<marioX && marioX<x+w+7 && y-10<marioY&& marioY<y+h+10)return true; else return false; } boolean flying=false; void keyPressed(){ if (keyCode==RIGHT)vx=2; if (keyCode==LEFT)vx=-2; if (keyCode==UP&&flying==false){ vy=-20; flying=true; } } void keyReleased(){ if(keyCode==LEFT||keyCode==RIGHT)vx=0; }
撞到磚塊會掉下也可以站上面
void setup(){ size (400,400); } float marioX=50,marioY=250,vx=0,vy=0; void draw(){ background(108,137,255); marioX+=vx; if(flying){ marioY+=vy; vy+=0.98; if(marioY>=250){ marioY=250; flying=false; } } fill(255,0,0);ellipse(marioX,marioY,15,20); fill(229,119,42);rect(0,260,400,150); fill(229,119,42);rect(200,150,20,20); if (hitBox(200,150,20,20)){ if (vy>0){ marioY=150-10; flying=false; stand_box=true; }else{ vy=0; marioY=150+20+10; } } if(stand_box==true&&flying==false&&leaveBox(200,150,20,20)){ stand_box=false; flying=true; vy=0; } } boolean leaveBox(int x,int y,int w,int h){ if (x-7>marioX && marioX>x+w+7) return true; else return false; } boolean hitBox(int x,int y,int w,int h){ if (x-7<marioX && marioX<x+w+7 && y-10<marioY&& marioY<y+h+10)return true; else return false; } boolean flying=false,stand_box=false; void keyPressed(){ if (keyCode==RIGHT)vx=2; if (keyCode==LEFT)vx=-2; if (keyCode==UP&&flying==false){ vy=-20; flying=true; } } void keyReleased(){ if(keyCode==LEFT||keyCode==RIGHT)vx=0; }










沒有留言:
張貼留言