2017年10月23日 星期一

Week06 爆爆王

爆爆王


畫出類似爆爆王的地面:

void setup()
{
  size(850,500);
}
void draw()
{
  background(#92AD28);
  noStroke();
  for(int x=0;x<17;x++)
  {
    for(int y=0;y<10;y++)
    {
      if((x-y)%2==0) fill(#7E9819);
      else fill(#92AD28);
      rect(x*50,y*50,50,50);
    }
  }
}

做出人物:

void setup()
{
  size(850,500);
}
int userJ=9,userI=5;
float userX,userY;
void draw()
{
  background(#92AD28);
  noStroke();
  for(int i=0;i<10;i++)
  {
    for(int j=0;j<17;j++)
    {
      if((j-i)%2==0) fill(#7E9819);
      else fill(#92AD28);
      rect(j*50,i*50,50,50);
    }
  }
  fill(255,0,0);
  ellipse(userJ*50+25,userI*50+25,50,50);
}
void keyPressed()
{
  if(keyCode==LEFT)userJ--;
  if(keyCode==RIGHT)userJ++;
  if(keyCode==UP)userI--;
  if(keyCode==DOWN)userI++;
}

加上水球:

void setup()
{
  size(850,500);
}
int userJ=9,userI=5;
float userX,userY;
int waterN=0;
int[]waterJ=new int[100];
int[]waterI=new int[100];
void draw()
{
  background(#92AD28);
  noStroke();
  for(int i=0;i<10;i++)
  {
    for(int j=0;j<17;j++)
    {
      if((j-i)%2==0) fill(#7E9819);
      else fill(#92AD28);
      rect(j*50,i*50,50,50);
    }
  }
  fill(255,0,0);
  ellipse(userJ*50+25,userI*50+25,50,50);
  for(int i=0;i<waterN;i++)
  {
    fill(#93E1F7);
    ellipse(waterJ[i]*50+25,waterI[i]*50+25,30,30);
  }
}
void keyPressed()
{
  if(keyCode==LEFT)userJ--;
  if(keyCode==RIGHT)userJ++;
  if(keyCode==UP)userI--;
  if(keyCode==DOWN)userI++;
  if(key==' '){waterI[waterN]=userI; waterJ[waterN]=userJ; waterN++; }
}

鱷魚咬手指

畫出基本型:

void setup()
{
  size(500,500);
}
void draw()
{
  background(255);
  fill(0,155,0);
  ellipse(250,250,300,300);
  for(int i=0;i<9;i++)
  {
    fill(255);
    rect(110+i*30,200,30,30);
    if(110+i*30<mouseX && mouseX<110+i*30+30 && 200<mouseY && mouseY<200+30)
    {
      fill(0);
      rect(110+i*30,200,30,30);
    }
  }
  for(int i=0;i<9;i++)
  {
    fill(255);
    rect(110+i*30,300,30,30);
    if(110+i*30<mouseX && mouseX<110+i*30+30 && 300<mouseY && mouseY<300+30)
    {
      fill(0);
      rect(110+i*30,300,30,30);
    }
  }
}

畫出壞的牙齒:

int bad=0;
int[] all=new int[18];//{0,-1,0,0,0,0,1,0,0,0,.......}
void setup()
{
  size(500,500);
  bad = int(random(18));
  println(bad);
}
void draw()
{
  background(255);
  fill(0,155,0);
  ellipse(250,250,300,300);
  for(int i=0;i<9;i++)
  {
    fill(255);
    rect(110+i*30,200,30,30);
    if(110+i*30<mouseX && mouseX<110+i*30+30 && 200<mouseY && mouseY<200+30)
    {
      fill(0);
      rect(110+i*30,200,30,30);
    }
    if(bad==i){fill(255,0,0);rect(110+i*30,200,30,30);}
  }
  for(int i=0;i<9;i++)
  {
    fill(255);
    rect(110+i*30,300,30,30);
    if(110+i*30<mouseX && mouseX<110+i*30+30 && 300<mouseY && mouseY<300+30)
    {
      fill(0);
      rect(110+i*30,300,30,30);
    }
    if(bad==i+9){fill(255,0,0);rect(110+i*30,300,30,30);}
  }
}

消除牙齒:

int bad=0;
int[] all=new int[18];//{0,-1,0,0,0,0,1,0,0,0,.......}
void setup()
{
  size(500,500);
  bad = int(random(18));
  println(bad);
}
boolean bGameOver=false;
void draw()
{
  if(bGameOver)
  {
    background(255,0,0);
    return;
  }
  background(255);
  fill(0,155,0);
  ellipse(250,250,300,300);
  for(int i=0;i<9;i++)
  {
    if(all[i]==-1) continue;
    fill(255);
    rect(110+i*30,200,30,30);
    if(110+i*30<mouseX && mouseX<110+i*30+30 && 200<mouseY && mouseY<200+30)
    {
      fill(0);
      rect(110+i*30,200,30,30);
      if(mousePressed && all[i]!=1) all[i]=-1;
      if(mousePressed && all[i]==1) bGameOver=true;
    }
    //if(bad==i){fill(255,0,0);rect(110+i*30,200,30,30);}
  }
  for(int i=0;i<9;i++)
  {
    if(all[i+9]==-1) continue;
    fill(255);
    rect(110+i*30,300,30,30);
    if(110+i*30<mouseX && mouseX<110+i*30+30 && 300<mouseY && mouseY<300+30)
    {
      fill(0);
      rect(110+i*30,300,30,30);
      if(mousePressed && all[i+9]!=1) all[i+9]=-1;
      if(mousePressed && all[i+9]==1) bGameOver=true;
    }
    //if(bad==i+9){fill(255,0,0);rect(110+i*30,300,30,30);}
  }
}

沒有留言:

張貼留言