// week02_1_pacman_radians_mouseX
可以用滑鼠來控制大小
void setup() {
size(400, 400);
}
void draw() {
background(255);
fill(#FFDC0F); //填充黃色
float a = radians(mouseX);
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(#FFDC0F);
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(#FFDC0F);
float a = frameCount % 180; //0..45..90..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(#FFDC0F); //填充黃色
//float a = radians(mouseX);
for (int x=0; x<400; x+=100) {
for (int y=0; y<400; y+=100) {
float a = frameCount % 180; //0..45..90..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(#FFDC0F);
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 week_02_3
可以透過滑鼠來滑動缺角的方向
void setup(){
size(400, 400);
}
void draw(){
background(255);
fill(#FFDC0F);
float a = frameCount % 180; //0..45..90..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(#FFDC0F);
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(#FFDC0F);
float a = 0.5;
int [] dx = {1, 0, -1, 0};
int [] dy = {0, 1, 0, -1};
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(#FFDC0F);
float a = radians(abs(frameCount%90-45));
int [] dx = {1, 0, -1, 0};
int [] dy = {0, 1, 0, -1};
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;
}













沒有留言:
張貼留言