新進展!!!可以成功疊加豆腐,女孩也可以成功站在豆腐上
下次要做出分數跟死亡畫面
以下是這周的程式碼
PImage img1;
float x=203,y=370,vx=0,vy=0;//女孩的座標
boolean jumping=false;
float []tofuX=new float[100];
float []tofuVX=new float[100];
int n=1;//豆腐數量
int state=0;//0是不會動,1是豆腐移動,2是豆腐停止且往下降
int tofuH=0;
int t=0;
void setup(){
size(400,600);
img1=loadImage("bgg.JPG");
tofuX[0]=140;//豆腐剛開始的位子
generateTofu();//做出新豆腐
}
void draw(){
image(img1,0,0,400,600);
for(int i=0;i<n;i++)
{
rect(tofuX[i],400-i*65+tofuH,125,65);
}
if(state==1){
if(t>0){
tofuH++;t--;
}else{
state=0;
}
}
tofuX[n-1]+=tofuVX[n-1];
ellipse(x,y+tofuH,60,60);
if(jumping){
if(vy>0 && tofuX[n-1]<x && x<tofuX[n-1]+125 && y+33<400-(n-1)*65 && y+33+vy>400-(n-1)*65){///設定出一個範圍,讓女孩站在豆腐上面
jumping=false; vy=0; y=400-(n-1)*65-30;
screenroll();
generateTofu();
}else{
y+=vy;
vy+=0.98;//重力
}
}
}
void mousePressed(){
if(!jumping){
jumping=true;
vy=-24;//跳躍高度的設定
}
}
void keyPressed(){
generateTofu();
}
void generateTofu(){///做出新的豆腐的函式
int dir=int(random(2));//0=左邊,1=右邊
n++;
if(dir==0){
tofuX[n-1]=400;
tofuVX[n-1]=-2;//移動的速度
}else{
tofuX[n-1]=-125;
tofuVX[n-1]=2;//移動的速度
}
}
void screenroll(){///整個畫面滾動的函式
state= (state+1)%3;
if(state==0){
}else if(state==1){
t=65;
}
}
沒有留言:
張貼留言