2017年11月18日 星期六

week06 郭晉瑜上課筆記

WEEK06

爆爆王基本雛形程式

void setup()  //設定場景大小
{
  size(800,600);
}
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==' ') //按空白鍵放置水球(陣列設100所以可放100顆)
  {
    waterI[waterN]=UserI;
    waterJ[waterN]=UserJ;
    waterN++;
  }
}



火柴人打鬥遊戲

void setup()
{
  size(600,400);
}
float UserX=300, UserY=200;
float mapX=0,mapY=0;
void draw()
{
  background(#44B220);
  stroke(#356c23); noFill();
  for(int i=0;i<16;i++)
  {
    for(int j=0;j<24;j++)
    {
      rect(mapX+j*25,mapY+i*25,25,25);
    }
  }
  stroke(0); fill(#FC9E38);
  float angle=atan2(mouseY-UserY, mouseX-UserX);
  triangle( UserX+40*cos(angle),UserY+40*sin(angle),
            UserX+15*cos(angle+PI/2),UserY+15*sin(angle+PI/2),
            UserX+15*cos(angle-PI/2),UserY+15*sin(angle-PI/2));
  ellipse(UserX, UserY,30,30);
  mapX-=dirX;
  mapY-=dirY;
}
int dirX=0,dirY=0;
void keyPressed()
{
  if(key=='a' ||key=='A') dirX=-1;
  if(key=='s' ||key=='S') dirY=1;
  if(key=='d' ||key=='D') dirX=1;
  if(key=='w' ||key=='W') dirY=-1;
}
void keyReleased()
{
  if(key=='a' ||key=='A') dirX=0;
  if(key=='s' ||key=='S') dirY=0;
  if(key=='d' ||key=='D') dirX=0;
  if(key=='w' ||key=='W') dirY=0;
}

沒有留言:

張貼留言