1-1
今天做隨機座位,先畫一個4x4的方塊
void setup(){ size(600,400); } void draw(){ background(255); for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ fill(#F5B4B4);rect(j*100,i*100,100,100); fill(0);text("Hello",j*100+25,i*100+50); } } }
1-2
座位需要新增座號,設int value[][];
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); } } }
1-3
重複交換數字(亂數交換)新增一個迴圈k(設定交換的次數),圖中k是設定交換2次
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; } } for(int k=0;k<2;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); } } }
2-1
嘗試做切換場景
int state=0; void setup(){ size(400,400); textSize(50); } void draw(){ if(state==0){ background(255); fill(0);text("Please Click to Start",80,200); }else if(state==1){ background(255,0,0); }else if(state==2){ background(0,0,255); } } void mousePressed(){ if(state==0)state=1; }
2-2
切換場景(關卡1用滑鼠關卡2用鍵盤)新增keyPressed,設x和y的值,如果方塊移動(x=300)時,狀態1就會變成狀態2
int state=0; void setup(){ size(400,400); textSize(50); } int x=50,y=50; void draw(){ if(state==0){ background(255); fill(0);text("Please Click to Start",80,200); }else if(state==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); } } void mousePressed(){ if(state==0)state=1; } void keyPressed(){ if(state==1 && keyCode==RIGHT){ x+=10; if(x==300)state=2; } }
2-3
新增t(等待時間),進入到狀態2就會倒數計時
int state=0; void setup(){ size(400,400); textSize(50); } int x=50,y=50,t=100; void draw(){ if(state==0){ background(255); fill(0);text("Please Click to Start",80,200); }else if(state==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);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; } }
2-4
製作投籃機的拋物線
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; }
3-1
增加投籃時有彈弓的彈射,設飛行(flying)
PImage imgRack; void setup(){ size(300,300); imgRack=loadImage("rack.jpg"); } void draw(){ background(255); image(imgRack,0,0); if(flying){ x+=vx; y+=vy; vy+=0.98; }else{ x=mouseX; y=mouseY; if(mousePressed){ fill(255);ellipse(posX,posY,20,20); line(posX,posY,x,y); } } fill(#FFA652);ellipse(x,y,20,20); } boolean flying=false; float x,y,vx,vy; float posX=-100,posY=-100; void mousePressed(){ x=posX=mouseX; y=posY=mouseY; flying=false; } void mouseReleased(){ vx=posX-mouseX; vy=posY-mouseY; flying=true; }
3-2
新增遊戲結束的指令
PImage imgRack; void setup(){ size(300,300); imgRack=loadImage("rack.jpg"); } boolean gameOver=false; void keyPressed(){ gameOver=true; } void draw(){ background(255); image(imgRack,0,0); if(flying){ if(! gameOver){ x+=vx; y+=vy; vy+=0.98; } }else{ x=mouseX; y=mouseY; if(mousePressed){ fill(255);ellipse(posX,posY,20,20); line(posX,posY,x,y); } } fill(#FFA652);ellipse(x,y,20,20); } boolean flying=false; float x,y,vx,vy; float posX=-100,posY=-100; void mousePressed(){ x=posX=mouseX; y=posY=mouseY; flying=false; } void mouseReleased(){ vx=posX-mouseX; vy=posY-mouseY; flying=true; }
沒有留言:
張貼留言