今天要做的是位子隨機、轉場
1.1
畫出格子
左手i右手j
程式碼void setup(){ size(600,400); }
void draw(){ background(255); for(int i=0;i<4;i++){ for(int j=0;j<6;j++){ rect(j*100,i*100,100,100); } } }
執行畫面
填充格子的顏色
在每個格子裡有"Hello"這串文字
程式碼
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] = i*6+j+10;//從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); } void draw(){//第0關,白色 if(state==0){ background(255); }else if(state==1){//第1關,紅色 background(255,0,0); }else if(state==2){//第2關,藍色 background(0,0,255); } }
*因為沒有給指令(按鍵或滑鼠),所以執行畫面為白色,還無法換場景
按下滑鼠按鍵,切換場景
程式碼
int state = 0; void setup(){ size(400,400); textSize(50); } void draw(){//第0關,白色 if(state==0){ background(255); fill(0);text("Click to Start",80,200);文字顏色、位置 }else if(state==1){//第1關,紅色 background(255,0,0); }else if(state==2){//第2關,藍色 background(0,0,255); } } void mousePressed(){ if(state==0) state=1; }
執行畫面
進入第一關後
在畫面上的左上跟右上各新增正方塊
讓灰色方塊移動到白色方塊
完美疊在一起
就會進入到第二關
執行畫面
到了第二關
進行倒計時
當時間為零
重新切回State=1(第0關白色背景)
程式碼
int state = 0; void setup(){ size(400,400); textSize(50); } int x = 50,y=50,t= 100; void draw(){//第0關,白色 if(state==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){//第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; } }
執行畫面
--分隔線--
3.1老師講解同學遇到的問題
籃球機投球時做出拋物線
程式碼
執行畫面
總程式碼
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; }




沒有留言:
張貼留言