剩餘問題:object可隨機移動、object不能跑到範圍外、玩家靠近會逃跑/2
float [] objectx= new float[100];
float [] objecty= new float[100];
int [] size1= new int[100];
void setup()
{
size(1600,900);
PFont font=createFont("標楷體",15);
textFont(font);
textAlign(CENTER,CENTER);
for(int i=0;i<100;i++)
{
objectx[i]=random(1500)+50;
objecty[i]=random(800)+50;
size1[i]=int(random(100)+30);
}
}
void draw()
{
background(#666554);
for(int i=0;i<100;i++)
{
fill(255,0,0);
ellipse(objectx[i],objecty[i],size1[i]/2,size1[i]/2);
fill(0);
text(size1[i],objectx[i],objecty[i]);
if(dist(bx, by, objectx[i], objecty[i]) < (bw+10)+10 && a>size1[i])//距離小於黑洞直徑時
{
//物體會按照黑洞目前走的方向逃走
if(vx>=0 && objectx[i]<1570){
objectx[i]+=0.5;
}
if(vx<=0 && objectx[i]>30){
objectx[i]-=0.5;
}
if(vy>=0 && objecty[i]<870){
objecty[i]+=0.5;
}
if(vy<=0 && objecty[i]<30){
objecty[i]-=0.5;
}
}
if(dist(px, py, objectx[i], objecty[i]) < (bw+10)+10 && a>size1[i])
{
if(wx>=0 && objectx[i]<1570){
objectx[i]+=0.5;
}
if(wx<=0 && objectx[i]>30){
objectx[i]-=0.5;
}
if(wy>=0 && objecty[i]<870){
objecty[i]+=0.5;
}
if(wy<=0 && objecty[i]>30){
objecty[i]-=0.5;
}
}
if(dist(bx,by,objectx[i],objecty[i]) < (bw+10)/2 && a>size1[i])
{
bw+=1;
bh+=1;
objectx[i]=-100;
objecty[i]=-100;
a+=size1[i]/10;
}
if(dist(px,py,objectx[i],objecty[i]) < (bw+10)/2 && b>size1[i])
{
pw+=1;
ph+=1;
objectx[i]=-100;
objecty[i]=-100;
b+=size1[i]/10;
}
if(dist(bx,by,px,py) < (bw+10)/2 && a>b)
{
bx=-200;
by=-200;
px=-200;
py=-200;
background(#666554);
textSize(80);
fill(0);
text("blackhole win",800,450);
ellipse(800,700,100,100);
fill(255);
textSize(30);
text(a,800,700);
}
else if(dist(px,py,bx,by) < (bw+10)/2 && b>a)
{
bx=-200;
by=-200;
px=-200;
py=-200;
background(#666554);
textSize(80);
fill(255);
text("whitehole win",800,450);
ellipse(800,700,100,100);
fill(0);
textSize(30);
text(b,800,700);
}
else
{
textSize(15);
}
}
fill(0);
ellipse(bx,by,bw,bh);
fill(255);
text(a,bx,by);
bx+=vx;
by+=vy;
fill(255);
ellipse(px,py,pw,ph);
fill(0);
text(b,px,py);
px+=wx;
py+=wy;
}
int a=50,b=50;
float bx=30,by=30;
int bw=50,bh=50;
float px=1570,py=30;
int pw=50,ph=50;
float vx=0,vy=0;
float wx=0,wy=0;
void keyPressed()
{
if(a<150)
{
if(keyCode==LEFT) vx=-2;
if(keyCode==RIGHT) vx=2;
if(keyCode==UP) vy=-2;
if(keyCode==DOWN) vy=2;
}
if(a>=150)
{
if(keyCode==LEFT) vx=-1;
if(keyCode==RIGHT) vx=1;
if(keyCode==UP) vy=-1;
if(keyCode==DOWN) vy=1;
}
if(bx==-100 &&by==-100)
{
if(keyCode==LEFT) vx=0;
if(keyCode==RIGHT) vx=0;
if(keyCode==UP) vy=0;
if(keyCode==DOWN) vy=0;
}
if(b<150)
{
if(keyCode=='A') wx=-2;
if(keyCode=='D') wx=2;
if(keyCode=='W') wy=-2;
if(keyCode=='S') wy=2;
}
if(b>=150)
{
if(keyCode=='A') wx=-1;
if(keyCode=='D') wx=1;
if(keyCode=='W') wy=-1;
if(keyCode=='S') wy=1;
}
if(px==-200 && py==-200)
{
if(keyCode=='A') wx=0;
if(keyCode=='D') wx=0;
if(keyCode=='W') wy=0;
if(keyCode=='S') wy=0;
}
}
void keyReleased()
{
if(keyCode==LEFT) vx=0;
if(keyCode==RIGHT) vx=0;
if(keyCode==UP) vy=0;
if(keyCode==DOWN) vy=0;
if(keyCode=='A') wx=0;
if(keyCode=='D') wx=0;
if(keyCode=='W') wy=0;
if(keyCode=='S') wy=0;
}
沒有留言:
張貼留言