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);
}
2. 檔案讀取、寫檔
//String [] names ={"AAA","BBB","CCC"};
//saveStrings( "myClassName.txt", names);
String lines[] = loadStrings("https://processing.org");
println("there are "+ lines.length + " lines");
for (int i=0 ; i < lines.length ; i++){
println(lines[i]);
}
3. 排名
4. ArrayList 與資料結構
void setup() {
size(600, 600);
background(255);
}
void draw() {
strokeWeight(20);
stroke(0,0,200);
if (mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
}
int number = 0;
void keyPressed() {
save("now.png");
save("now" + number + ".png");
number++;
}
Result:
now0.png、now1.png、now2.png
void setup() {
size(600, 600);
background(255);
}
void draw() {
strokeWeight(20);
stroke(0,0,200);
if (mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
}
void keyPressed() {
saveFrame();
}
Result:
screen-1333.tif
5. 接金幣
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);
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);
}
沒有留言:
張貼留言