2017年10月23日 星期一

Week 06 : 普通的ㄒㄆ的普通的筆記

今日目標 :

1.做爆爆王的畫面:角色移動操控、放水球
2.講解期中作業小精靈:使小精靈嘴巴能夠自動開合、移動時嘴巴位置不改變

重要概念 : 

1.  keyCode → 鍵盤方向鍵操控角色移動
2.  arc → 有開口的圓形


一、爆爆王

1. 畫出爆爆王的野戰地圖背景



2.增加角色,並使用 keyCode 使他能移動



3.使用陣列的概念 放出水球





程式碼: 

void setup(){
  size (850,500);
}
int userJ=9, userI=5;
float userX,userY;
int waterN=0; ///waterball
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);
  ///USER
  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++;
  ///USER MOVE
  if(key==' '){ waterI[waterN]=userI; waterJ[waterN]=userJ; waterN++;}
/// WATERBALL
}


二、期中作業小精靈

1.畫出小精靈: 使用 arc 概念



2.讓小精靈的嘴巴能夠自動開合


3.使小精靈能夠轉四方向並且嘴巴角度不變 ( keyCode )


4.讓小精靈移動!!


程式碼:

void setup(){
  size (600,400);
}
float open=1, angle=0;
int now=0;
float pacX=300, pacY=200;
int dirX=0, dirY=0;
void draw(){
  background(0);
  fill(255,255,0);
  arc(pacX,pacY,30,30,0+angle+open,PI*2+angle-open);
   pacX+=dirX; pacY+=dirY;
  now++;
  open=abs ((now%60)/60.0-0.5);
  ///0.5 -> 0 -> 0.5 -> 0.5 -> 0 ...
}
int dir=0; 
void keyPressed(){
  if(keyCode==UP) {dirX=0;dirY=-1; angle=radians(270);}
  if(keyCode==DOWN) {dirX=0;dirY=1; angle=radians(90);}
  if(keyCode==LEFT) {dirX=-1;dirY=0; angle=radians(180);}
  if(keyCode==RIGHT) {dirX=1;dirY=0; angle=0;}
}


沒有留言:

張貼留言