2016年11月10日 星期四

上課筆記 Week09

Processing reference
https://processing.org/reference/


畫圖-存檔程式:
void setup(){
  size(600,600);
}
void draw(){
  if(mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
}
void keyPressed(){
  save("now.png");
}



寫完程式碼後,隨意按鍵存檔
檔案與程式碼檔案會存在同一個資料夾



儲存多個不同檔案
void setup(){
  size(600,600);
}
void draw(){
  if(mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
}
int number=0
void keyPressed(){
  //save("now.png");
  save("now_" + number + ".png");
  number++;
}


saveFrame 功能
void setup(){
  size(600,600);
}
void draw(){
  if(mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
}
//int number=0;
void keyPressed(){
  saveFrame();
  //save("now.png");
  //save("now_" + number + ".png");
  //number++;
}


saveStrings: 存文字檔
String [] names ={"AAA", "BBB", "CCC"};
saveStrings("myClassmateName.txt", names);



loadStrings



Example 1:

Example 2:

滑鼠抓硬幣
程式碼:
PVector [] coins=new PVector[10];
void setup(){
  size(500,500);
  for(int i=0;i<10;i++){
    coins[i]=new PVector (random(500), -random(100));
  }
}
int score=0;
void draw(){
  background(255);
  for(int i=0; i<10; i++){
    fill(255,255,0); ellipse(coins[i].x, coins[i].y, 30,30);
    coins[i].y+=2;
    if(coins[i].y>530) coins[i].y=-random(100,100);
    if(dist(mouseX, mouseY, coins[i].x, coins[i].y)<30){
score+=100; coins[i].y=-random(100);
    }
  }
fill(255,0,0); textSize(30); text("Score:"+score, 200,200);
}


滑鼠抓硬幣(+Life)
PVector [] coins=new PVector[10]; 
void setup(){
  size(500,500);
  for(int i=0;i<10;i++){
    coins[i]=new PVector (random(500), -random(100));
  }
}
int score=0, life=10, speed=2;
void draw(){
  if(life<=0){
    background(128); speed=0;
  }else background(255);
  for(int i=0; i<10; i++){
    fill(255,255,0); ellipse(coins[i].x, coins[i].y, 30,30);
    coins[i].y+=speed;
    if(coins[i].y>530){
     coins[i].y=-random(100);
     life--;
    }
    if(dist(mouseX, mouseY, coins[i].x, coins[i].y)<30){
      score+=100; coins[i].y=-random(100);
    }
  }
fill(255,0,0); textSize(30); text("Score:"+score +" Life:"+life, 200,200);
}




抓硬幣,分數,顯示排名檔案
PVector [] coins=new PVector[10];
void setup(){
size(500,500);
for(int i=0;i<10;i++) coins[i]=new PVector( random(500), -random(100));
}
int score=0, life=10, speed=2;
int state=0;//state 0:playing, 1:gameOver, 2:showScoreBoard
String [] allScore;
void draw(){
if(state==2){
background(255,255,0);
for(int i=0;i<allScore.length; i++){
fill(255,0,0); textSize(30);text( allScore[i], 100, 200+i*50);
}
return ;
}else if(state==1){
background(128); speed=0;
allScore = loadStrings("allScores.txt");
if(mousePressed) state=2;
}else background(255);
for(int i=0;i<10;i++){
fill(255,255,0); ellipse(coins[i].x, coins[i].y, 30,30);
coins[i].y+=speed;//!!!!!!
if(coins[i].y>530){
coins[i].y=-random(100);
life--;
if(life<=0) state=1;
}
if(dist(mouseX, mouseY, coins[i].x, coins[i].y)<30){
score+=100; coins[i].y=-random(100);
}
}
fill(255,0,0); textSize(30); text("Score:"+score +"Life:"+life, 200,200);
}


抓硬幣,分數,顯示排名檔案,Leap Motion
import de.voidplus.leapmotion.*;
LeapMotion leap;
float handX=0, handY=0;
PVector [] coins=new PVector[10];
void setup(){
size(500,500);
leap = new LeapMotion(this);
for(int i=0;i<10;i++) coins[i]=new PVector( random(500), -random(100));
}
int score=0, life=10, speed=2;
int state=0;//state 0:playing, 1:gameOver, 2:showScoreBoard
String [] allScore;
void draw(){
for(Hand hand : leap.getHands()){
handX=hand.getPosition().x;
handY=hand.getPosition().y;
}
if(state==2){
background(255,255,0);
for(int i=0;i<allScore.length; i++){
fill(255,0,0); textSize(30);text( allScore[i], 100, 200+i*50);
}
return ;
}else if(state==1){
background(128); speed=0;
allScore = loadStrings("allScores.txt");
if(mousePressed) state=2;
}else background(255);
for(int i=0;i<10;i++){
fill(255,255,0); ellipse(coins[i].x, coins[i].y, 30,30);
coins[i].y+=speed;//!!!!!!
if(coins[i].y>530){
coins[i].y=-random(100);
life--;
if(life<=0) state=1;
}
if(dist(handX,handY, coins[i].x, coins[i].y)<30){
score+=100; coins[i].y=-random(100);
}
if(dist(mouseX, mouseY, coins[i].x, coins[i].y)<30){
score+=100; coins[i].y=-random(100);
}
}
fill(255); ellipse(handX,handY, 30,30);
fill(255,0,0); textSize(30); text("Score:"+score +"Life:"+life, 200,200);
}




抓硬幣,分數,更新排名檔案,Leap Motion
import de.voidplus.leapmotion.*;
LeapMotion leap;
float handX=0, handY=0;
PVector [] coins=new PVector[10];
void setup(){
size(500,500);
leap = new LeapMotion(this);
for(int i=0;i<10;i++) coins[i]=new PVector( random(500), -random(100));
}
int score=0, life=10, speed=2;
int state=0;//state 0:playing, 1:gameOver, 2:showScoreBoard
String [] allScore;
void draw(){
for(Hand hand : leap.getHands()){
handX=hand.getPosition().x;
handY=hand.getPosition().y;
}
if(state==2){
background(255,255,0);
for(int i=0;i<allScore.length; i++){
fill(255,0,0); textSize(30);text( allScore[i], 100, 200+i*50); 
}
return ;
}else if(state==1){
background(128); speed=0;
allScore=loadStrings("allScores.txt");
if(mousePressed) state=2;
}else background(255);
for(int i=0;i<10;i++){
fill(255,255,0); ellipse(coins[i].x, coins[i].y, 30,30);
coins[i].y+=speed;//!!!!!!
if(coins[i].y>530){
coins[i].y=-random(100);
life--;
if(life<=0){
state=1;
allScore = loadStrings("allScores.txt");
String [] newScore = new String[ allScore.length +1];
for(int j=0;j<allScore.length;j++) newScore[j] = allScore[j];
newScore[allScore.length] = new String(""+score );
saveStrings("allScores.txt", newScore);
}
}
if(dist(handX,handY, coins[i].x, coins[i].y)<30){
score+=100; coins[i].y=-random(100);
}
if(dist(mouseX, mouseY, coins[i].x, coins[i].y)<30){
score+=100; coins[i].y=-random(100);
}
}
fill(255); ellipse(handX,handY, 30,30);
fill(255,0,0); textSize(30); text("Score:"+score +"Life:"+life, 200,200);
}





抓硬幣,分數,依序排名,Leap Motion
import de.voidplus.leapmotion.*;
LeapMotion leap;
float handX=0, handY=0;
PVector [] coins=new PVector[10];
void setup(){
size(500,500);
leap = new LeapMotion(this);
for(int i=0;i<10;i++) coins[i]=new PVector( random(500), -random(100));
}
int score=0, life=10, speed=2;
int state=0;//state 0:playing, 1:gameOver, 2:showScoreBoard
String [] allScore;
void draw(){
for(Hand hand : leap.getHands()){
handX=hand.getPosition().x;
handY=hand.getPosition().y;
}
if(state==2){
background(255,255,0);
for(int i=0;i<allScore.length; i++){
fill(255,0,0); textSize(30);text( allScore[i], 100, 200+i*50); 
}
return ;
}else if(state==1){
background(128); speed=0;
allScore=loadStrings("allScores.txt");
if(mousePressed) state=2;
}else background(255);
for(int i=0;i<10;i++){
fill(255,255,0); ellipse(coins[i].x, coins[i].y, 30,30);
coins[i].y+=speed;//!!!!!!
if(coins[i].y>530){
coins[i].y=-random(100);
life--;
if(life<=0){
state=1;
allScore = loadStrings("allScores.txt");
String [] newScore = new String[ allScore.length +1];
int now=0;
for(int j=0;j<allScore.length;j++){
if(j==now && score > Integer.valueOf(allScore[j] )){
newScore[now] = new String(""+score );
now++;
}
newScore[now] = allScore[j];
now++;
}
saveStrings("allScores.txt", newScore);
}
}
if(dist(handX,handY, coins[i].x, coins[i].y)<30){
score+=100; coins[i].y=-random(100);
}
if(dist(mouseX, mouseY, coins[i].x, coins[i].y)<30){
score+=100; coins[i].y=-random(100);
}
}
fill(255); ellipse(handX,handY, 30,30);
fill(255,0,0); textSize(30); text("Score:"+score +"Life:"+life, 200,200);
}

沒有留言:

張貼留言