week03_1_PImage_loadImage_image
從網路上先把圖檔jpg下載至桌面,再將圖片拉到processing程式裏面去。視窗大小按照圖檔解析度圖片才不會糊掉或太小。
//week03_1_PImage_loadImage_image
PImage img = loadImage("arufa.jpg");
size(600, 400);
image(img, 0 , 0);
week03_2_void_setup_void_draw_fill_rect從week03-1的地方另存新檔,原因:既有的同檔就不用重新再拉。將顏色黑邊消除就用noStroke()。PImage img;
void setup() {
size(600, 400);
img = loadImage("arufa.jpg");
}
void draw() {
image(img, 0, 0);
noStroke();
fill(200,200,255, 128);
rect(mouseX, mouseY, 70, 50);
}
week03_3_arufa_rect_rect_rect做出最強的防護盾!利用rect(mouseX,mouseY)座標設定。將滑鼠游標消除利用noCursor()。//week03_3_arufa_rect_rect_rect
PImage img;
void setup() {
size(600, 400);
img = loadImage("arufa.jpg");
}
void draw() {
image(img, 0, 0);
noCursor();//不要有cursor游標
noStroke();
fill(200, 200, 255, 128);
rect(mouseX, mouseY-80, 70, 50);
rect(mouseX-30, mouseY-40, 70, 50);
rect(mouseX+30, mouseY-40, 70, 50);
rect(mouseX+60, mouseY, 70, 50);
rect(mouseX, mouseY, 70, 50);
rect(mouseX-60, mouseY, 70, 50);
rect(mouseX-90, mouseY+40, 70, 50);
rect(mouseX-30, mouseY+40, 70, 50);
rect(mouseX+30, mouseY+40, 70, 50);
rect(mouseX+90, mouseY+40, 70, 50);
rect(mouseX+60, mouseY+80, 70, 50);
rect(mouseX, mouseY+80, 70, 50);
rect(mouseX-60, mouseY+80, 70, 50);
rect(mouseX-30, mouseY+120, 70, 50);
rect(mouseX+30, mouseY+120, 70, 50);
rect(mouseX, mouseY+160, 70, 50);
}
week03_4_arufa_for_for_rect同樣的效果用for迴圈處理,但數字的計算太麻煩了,有待改進......
PImage img;
void setup() {
size(600, 400);
img = loadImage("arufa.jpg");
}
void draw() {
image(img, 0, 0);
noCursor();//不要有cursor游標
noStroke();
fill(200, 200, 255, 128);
for (int i=1; i<=4; i++) {
for (int j=0; j<i; j++) {
float y =i * 40, x= -i/2*60+j*60 + ((i%2==0)?30:0);
rect(mouseX+x, mouseY-80+y, 70, 50);
}
}
for (int i=3; i>=1; i--) {
for (int j=0; j<i; j++) {
float y =(4-i) * 40+160,x=-i/2*60+j*60+((i%2==0)?30:0);
rect(mouseX+x, mouseY-80+y, 70, 50);
}
}
}
week03_5_go_for_for_rect利用for迴圈製作出go board棋盤size(450, 450);
background(220, 179,92);
strokeWeight(2);
noFill();
for(int i=0; i<8;i++){
for(int j=0;j<8;j++){
rect(25 + j*50, 25 + i*50, 50, 50);
}
}
week03_5_go_for_line_line同樣用for迴圈製作,但用line來製作。size(450, 440);
background(220, 179,92);
strokeWeight(2);
for(int i=0; i<9;i++){
line(25, 25+ i*50, 425, 25+ i*50);
line(25 + i*50, 25, 25+ i*50, 425);
}
week03_6_go_void_setup_void_draw_ellipse_mouseX_mouseY在棋盤上面增加要下的白子。void setup() {
size(450, 450);
}
void draw() {
background(220, 179, 92);
strokeWeight(2);
for (int i=0; i<9; i++) {
line(25, 25+ i*50, 425, 25+ i*50);
line(25 + i*50, 25, 25+ i*50, 425);
}
ellipse(mouseX, mouseY, 45, 45);
}
week03_7_go_board_2d_array_void_mousePressed_board_i_j讓白子可以下在線的點上,下在正確的位置上面。int [][] board = new int [9][9];
void setup() {
size(450, 450);
}
void draw() {
background(220, 179, 92);
strokeWeight(2);
for (int i=0; i<9; i++) {
line(25, 25+ i*50, 425, 25+ i*50);
line(25 + i*50, 25, 25+ i*50, 425);
}
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(board[i][j]==1) ellipse(25+ j*50, 25 + i*50, 45, 45);
}
}
ellipse(mouseX, mouseY, 45, 45);
}
void mousePressed(){
int i = mouseY/50, j= mouseX/50;
board[i][j] = 1;
}
week03_8_go_goColor_black_white切換黑白子交互下棋,goColor設定棋子。
//切換黑、白、黑、白...
int goColor = -1;//-1:black +1:white 0:null
int [][] board = new int [9][9];//Java 2D 陣列,預設0
void setup() {
size(450, 450);
}
void draw() {
background(220, 179, 92);
strokeWeight(2);
for (int i=0; i<9; i++) {
line(25, 25+ i*50, 425, 25+ i*50);
line(25 + i*50, 25, 25+ i*50, 425);
}
for (int i=0; i<9; i++) {
for (int j=0; j<9; j++) {
if (board[i][j]==0) continue;
if (board[i][j]==1) fill(255);
if (board[i][j]==-1) fill(0);
ellipse(25+ j*50, 25 + i*50, 45, 45);
}
}
if(goColor==-1) fill(0);
else fill(255);
ellipse(mouseX, mouseY, 45, 45);
}
void mousePressed() {
int i = mouseY/50, j= mouseX/50;
board[i][j] = goColor;//-1:black +1:white
goColor = goColor * -1;
}
week03_9_arufa_array_forarufa再來!把噁心的東西用陣列解決。
int []boardX = { 0,-30, +30,+60, 0,-60,-90,-30,+30,+90,+60,+0,-60,-30,+30, 0};int []boardY = {-80,-40, -40, 0, 0, 0,+40,+40,+40,+40, 80,80, 80,120,120,160};
PImage img;
void setup() {
size(600, 400);
img = loadImage("arufa.jpg");
}
void draw() {
image(img, 0, 0);
noCursor();//不要有cursor游標
noStroke();
fill(200, 200, 255, 128);
for(int i=0;i<16;i++){
rect(mouseX+boardX[i], mouseY+boardY[i], 70, 50);
}
}
沒有留言:
張貼留言