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. 球體個方向反彈運動+球體半徑修改(準心)
//int vx = -2, vy = +2;
//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;
3. 重力與加速度
//float ballX=300, ballY=300;
//float vx = -2, vy = +2;
//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;
4. 修改重力
//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;
}
5. 馬力歐移動與上跳
PImage imgMario;
float marioX=100, marioY=100;
float marioVX=0, marioVY=0;
void setup(){
size(500,500);
imgMario = loadImage("mario.png");
}
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;
}
}
6. 馬力歐移動+摩擦力
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){
marioVX=3;
softBrake=0;
}else if(keyCode==LEFT){
marioVX=-3;
softBrake=0;
}else if(keyCode==UP){
marioVY = -15;
}
}
7.
訂閱:
張貼留言 (Atom)
alanhc 互動技術-week17 [final]
回顧這學期的作品: 期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...
-
先把上次的程式覆蓋 void setup(){ pinMode(8,OUTPUT); pinMode(2,INPUT_PULLUP); } void loop(){ if(digitalRead(2)== LOW ) tone(8,520,...
-
1. 複習按住boutton可以發出聲音 void setup(){ pinMode(8, OUTPUT); pinMode(2, INPUT_PULLUP); } void loop(){ if(digitalRead(2)==LOW) tone(8,...
-
第一張圖是讓使用者的圈圈可以自己移動 但他有個缺點 就是圈圈會跑出視窗外面 於是加上了if 假使中心大於350就會使整個圓跑出去 於是就讓他往回彈 就變成成功的彈彈球 自己製作迷宮 先畫一張自己設計的地圖 並先試看看能不能匯入 並且...






沒有留言:
張貼留言