[TODO]
上課內容:
小精靈(手動嘴巴開合)
複製上週 week01_9_for_x_for_y_arc 的程式碼
// File_Preferences, 字型放大 // week02_1_pacman_radians_mouseX void setup(){ size(400,400); } void draw(){ background(255); fill(#74AFFF); //填充藍色 float a = radians(mouseX); //radians 角度單位 for(int x=0; x<400; x+=100){ for(int y=0; y<400; y+=100){ arc(x+50, y+50, 100, 100, 0+a, PI*2-a, PIE); //改畫弧度 //X座標,Y,寬,高,開始,結束,蘋果派的畫法 } } }
// week02_2_pacman_radians_frameCount 想要照著時間,自動張嘴 void setup(){ size(400,400); } void draw(){ background(255); fill(#7D67AD); //填充紫色 float a = radians(frameCount); if(a>PI/4) a = a-PI/4; arc(200, 200, 300, 300, 0+a, PI*2-a, PIE); }
// week02_3_pacman_open_close_open_close 想要照著時間,自動張嘴 void setup(){ size(400,400); } void draw(){ background(255); fill(#7D67AD); //填充紫色 float a = frameCount % 180; if(a<45) a = radians(a); else if(a<90) a = radians(90-a); else if(a<135) a = radians(a-90); else if(a<180) a = radians(180-a); arc(200, 200, 300, 300, 0+a, PI*2-a, PIE); }
// week02_4_pacman_for_for_open_close_open_close void setup(){ size(400,400); } void draw(){ background(255); fill(#7D67AD); //填充紫色 for(int x=0; x<400; x+=100){ for(int y=0; y<400; y+=100){ float a = frameCount % 180; if(a<45) a = radians(a); else if(a<90) a = radians(90-a); else if(a<135) a = radians(a-90); else if(a<180) a = radians(180-a); arc(x+50, y+50, 100, 100, 0+a, PI*2-a, PIE); //改畫弧度 //X座標,Y,寬,高,開始,結束,蘋果派的畫法 } } }
// week02_5_pacman_if_keyPressed_keyCode void setup(){ size(400,400); } int x=200, y=200; //pacman座標 void draw(){ background(255); fill(#7D67AD); if(keyPressed && keyCode==RIGHT) x++; if(keyPressed && keyCode==LEFT) x--; if(keyPressed && keyCode==UP) y--; if(keyPressed && keyCode==DOWN) y++; ellipse(x,y,100,100); }按鍵移動球(加快速度frameRate)
// week02_5_pacman_if_keyPressed_keyCode void setup(){ size(400,400); frameRate(200); //加快速度 } int x=200, y=200; //pacman座標 void draw(){ background(255); fill(#7D67AD); if(keyPressed && keyCode==RIGHT) x++; if(keyPressed && keyCode==LEFT) x--; if(keyPressed && keyCode==UP) y--; if(keyPressed && keyCode==DOWN) y++; ellipse(x,y,100,100); }按鍵移動球
// week02_6_pacman_b_direction_from_week02_3 void setup(){ size(400,400); } void draw(){ background(255); fill(#7D67AD); //填充紫色 float a = frameCount % 180; float b = radians(mouseX); if(a<45) a = radians(a); else if(a<90) a = radians(90-a); else if(a<135) a = radians(a-90); else if(a<180) a = radians(180-a); arc(200, 200, 300, 300, b+0+a, b+PI*2-a, PIE); }
鍵盤移動小精靈// week02_7_pacman_d_direction_void_keyPressed_keyCode void setup(){ size(400,400); } float x=200, y=200, d=PI/2*0; void draw(){ background(255); fill(#7D67AD); //填充紫色 float a = frameCount % 180; if(a<45) a = radians(a); else if(a<90) a = radians(90-a); else if(a<135) a = radians(a-90); else if(a<180) a = radians(180-a); arc(x, y, 100, 100, d+0+a, d+PI*2-a, PIE); } void keyPressed(){ if(keyCode==RIGHT){ x++; d=PI/2*0; } else if(keyCode==DOWN){ y++; d=PI/2*1; } else if(keyCode==LEFT){ x--; d=PI/2*2; } else if(keyCode==UP){ y--; d=PI/2*3; } }
鍵盤改變小精靈嘴巴方向(自動移動,嘴巴不動)// week02_8_pacman_dx_dy_d_void_keyPressed void setup(){ size(400,400); } int x=200, y=200, d=0; void draw(){ background(255); fill(#7D67AD); //填充紫色 float a=0.5; int []dx = {1, 0, -1, 0}; //x++, x, x--, x int []dy = {0, 1, 0, -1}; //y++, y, y--, y x += dx[d]; y += dy[d]; arc(x, y, 100, 100, PI/2*d+a, PI/2*d + PI*2-a, PIE); } void keyPressed(){ if(keyCode==RIGHT) d=0; if(keyCode==DOWN) d=1; if(keyCode==LEFT) d=2; if(keyCode==UP) d=3; }
鍵盤改變小精靈嘴巴方向(偵測鍵盤才移動,嘴巴開合)// week02_9_pacman_radians_abs_frameCount_if_keyPressed void setup(){ size(400,400); } int x=200, y=200, d=0; void draw(){ background(255); fill(#7D67AD); //填充紫色 float a=radians(abs(frameCount%90-45)); int []dx = {1, 0, -1, 0}; //x++, x, x--, x int []dy = {0, 1, 0, -1}; //y++, y, y--, y if(keyPressed) x += dx[d]; if(keyPressed) y += dy[d]; arc(x, y, 100, 100, PI/2*d+a, PI/2*d + PI*2-a, PIE); } void keyPressed(){ if(keyCode==RIGHT) d=0; if(keyCode==DOWN) d=1; if(keyCode==LEFT) d=2; if(keyCode==UP) d=3; }
沒有留言:
張貼留言