1.鍵盤
int [] table=new int [26*2];
void setup()
{
size(700,400);
}
void draw()
{
background(255);
for(int i=0;i<26;i++)
{
if(table[i]==1) rect(i*30,100,30,30);
if(table[i+26]==1) rect(i*30,150,30,30);
}
}
void keyPressed()
{
for(int i=0;i<26;i++)
{
if(key=='A'+i) table[i]=1;
if(key=='a'+i) table[i+26]=1;
print(table[i]);
print(table[i+26]);
}
}
2.試著建立一個球,讓其可以左右碰撞
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;
}
3. 讓球可以上下彈跳,但有小bug,球不會停下來
float ballX=100,ballY=300;
float vx=-2,vy=-10;
void setup()
{
size(600,400);
}
void draw()
{
background(255);
ellipse(ballX,ballY,30,30);
ballX+=vx;
ballY+=vy;
vy+=0.98;
if(ballX<0+15) vx=-vx*0.9;
if(ballX>600-15) vx=-vx*0.9;
if(ballY<0+15) vy=-vy*0.9;
if(ballY>400-15) vy=-vy*0.9;
}
4.加上摩擦力即可停下來
float ballX=100,ballY=300;
float vx=-2,vy=-10;
void setup()
{
size(600,400);
}
void draw()
{
//background(255);
ellipse(ballX,ballY,30,30);
ballX+=vx;
ballY+=vy;
if(ballX<0+15) vx=-vx*0.9;
if(ballX>600-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.讓馬力歐可以滑行並且停下來
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(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;
}
}
訂閱:
張貼留言 (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就會使整個圓跑出去 於是就讓他往回彈 就變成成功的彈彈球 自己製作迷宮 先畫一張自己設計的地圖 並先試看看能不能匯入 並且...






沒有留言:
張貼留言