WEEK11
Step01
想要使用Processing做出座位表
做出表格
void setup() { size(600,500); } void draw(){ background(255); for(int i=0;i<4;i++){ for(int j=0;j<6;j++){ fill(#F5B4B4);rect(j*100,i*100,100,100); fill(0); text("Hello",j*100+25,i*100+50); } } }
把每個表格變成數字
void setup() { size(600,500); for(int i=0;i<4;i++){ for(int j=0;j<6;j++){ value[i][j]=int(random(40)); } } } int [][]value =new int[4][6]; void draw(){ background(255); for(int i=0;i<4;i++){ for(int j=0;j<6;j++){ fill(#F5B4B4);rect(j*100,i*100,100,100); fill(0); text(value[i][j],j*100+25,i*100+50); } } }
讓每個數字做交換
void setup() { size(600,500); for(int i=0;i<4;i++){ for(int j=0;j<6;j++){ value[i][j]=i*6+j+10;//從10開始,數字不重複 } } for(int k=0;k<1000;k++){ int i=int(random(4)),j=int(random(6)); int i2=int(random(4)),j2=int(random(6)); int temp =value[i][j]; value[i][j]=value[i2][j2]; value[i2][j2]=temp; } } int [][]value =new int[4][6]; void draw(){ background(255); for(int i=0;i<4;i++){ for(int j=0;j<6;j++){ fill(#F5B4B4);rect(j*100,i*100,100,100); fill(0); text(value[i][j],j*100+25,i*100+50); } } }
Step02
很多關卡,點一下進入遊戲
int state=0; //0:white, 1:red,2;blue void setup() { size(400,400); textSize(50); } void draw(){ if(state==0){ //第0關,白色 background(255); fill(0); text("Click to Start",80,200); } else if(state==1){ //第1關,紅色 background(255,0,0); } else if(state==2){ background(0,0,255);//第2關,藍色 } } void mousePressed(){ if(state==0) state=1; }
進入關卡,有兩個方塊,把左邊的方塊推到右邊就進入第二關卡
int state=0; //0:white, 1:red,2;blue void setup() { size(400,400); textSize(50); } int x=50,y=50; void draw(){ if(state==0){ //第0關,白色 background(255); fill(0); text("Click to Start",80,200); } else if(state==1){ //第1關,紅色 background(255,0,0); fill(255); rect(300,50,50,50); fill(128); rect(x,y,50,50); } else if(state==2){ background(0,0,255);//第2關,藍色 } } void mousePressed(){ if(state==0) state=1; } void keyPressed(){ if(state==1&&keyCode==RIGHT){ x+=10; if(x==300)state=2; } }
第二關倒數100,回到開始畫面,如此重複...
int state=0; //0:white, 1:red,2;blue void setup() { size(400,400); textSize(50); } int x=50,y=50,t=100; void draw(){ if(state==0){ //第0關,白色 background(255); fill(0); text("Click to Start",80,200); x=50; } else if(state==1){ //第1關,紅色 background(255,0,0); fill(255); rect(300,50,50,50); fill(128); rect(x,y,50,50); t=100; } else if(state==2){ background(0,0,255);//第2關,藍色 fill(255,255,0); text("Wait"+t,80,200); t--; if(t==0) state=0; } } void mousePressed(){ if(state==0) state=1; } void keyPressed(){ if(state==1&&keyCode==RIGHT){ x+=10; if(x==300)state=2; } }
Step03
做出投籃機拋物線
PImage imgRack; void setup(){ size(300,300); imgRack=loadImage("rack.jpg"); } void draw(){ background(255); image(imgRack,0,0); if(mousePressed){ fill(255);ellipse(posX,posY,20,20); line(posX,posY,mouseX,mouseY); }
fill(#FFA652);ellipse(mouseX,mouseY,20,20); } float posX = -100,posY=-100; void mousePressed(){ posX=mouseX; posY=mouseY; }
埋地雷
int[][]mine =new int[9][9]; void setup(){ size(450,450); for(int i=0;i<9;i++) mine[i][0]=9; for(int k=0;k<1000;k++){ int i = int(random(9)),j=int (random(9)); int i2 = int(random(9)),j2=int (random(9)); int temp=mine[i][j]; mine[i][j]=mine[i2][j2]; mine[i2][j2]=temp; } for(int i=0;i<9;i++){ for(int j=0;j<9;j++){ if(mine[i][j]==9){ addNumber(i-1,j-1); addNumber(i-1,j); addNumber(i-1,j+1); addNumber(i,j-1); //addNumber(i,j); addNumber(i,j+1); addNumber(i+1,j-1); addNumber(i+1,j); addNumber(i+1,j+1); } } } } void addNumber(int i,int j){ if(i<0||j<0||i>=9||j>=9) return; if(mine[i][j]!=9) mine[i][j]++; } void draw(){ for(int i=0;i<9;i++){//y for(int j=0;j<9;j++){//x if(mine[i][j]==9) fill(255,128,128); else fill(255); rect(j*50,i*50,45,45); if(mine[i][j]!=0){ fill(0); text(""+mine[i][j],j*50+23,i*50+23,45,45); } } } }
360度貪食蛇
void setup(){ size(600,400); } float x=300,y=200,dir=0; void draw(){ //background(0); joker(x,y,dir); x+=cos(dir); y+=sin(dir); } void joker(float x, float y,float dir){ ellipse(x,y,50,50); line(x,y,x+25*cos(dir),y+25*sin(dir)); } void keyPressed(){ if(keyCode==RIGHT) dir +=0.1; if(keyCode==LEFT) dir -=0.1; }
沒有留言:
張貼留言