Week07
void setup(){ size(400,400); } void draw(){ background(255); if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY); } void mouseReleased(){ background(255); }
-1
void setup(){ size(400,400); } float ghostX=400,ghostY=20; void draw(){ background(255); ellipse(200,200,15,15); if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY); ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX,dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; } void mouseReleased(){ background(255); }-2留下殘影
ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); ellipse(200,200,15,15); //if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY); for(int i=0; i<pt.size(); i++){ PVector p = pt.get(i); ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; } void mouseReleased(){ background(255); }
-3
敵人靠近
ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); ellipse(200,200,15,15); //if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY); for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); line(p.x,p.y,p2.x,p2.y);//ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; println(dx, dy, len, ghostX, ghostY, frameRate); } void mouseReleased(){ //background(255); for(int i=pt.size()-1; i>=0; i--){ pt.remove(i); } }-4橫線是紅色ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); ellipse(200,200,15,15); ellipse(ghostX,ghostY,15,15); strokeWeight(4); float dpx=0, dpy=0;//看p.x、p.x差距,看p.y、p.y差距 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); dpx += abs(p2.x - p.x);//累積x的動量 dpy += abs(p2.y - p.y);//累積y的動量 } if(dpx > 100 && dpy < 40) stroke(255,0,0);//type1 紅色橫線 else stroke(0);//不是就黑色線 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); line(p.x,p.y,p2.x,p2.y);//ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; println(dx, dy, len, ghostX, ghostY, frameRate); } void mouseReleased(){ //background(255); for(int i=pt.size()-1; i>=0; i--){ pt.remove(i); } }-5ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); strokeWeight(1); stroke(0);ellipse(200,200,15,15); stroke(0);ellipse(ghostX,ghostY,15,15); strokeWeight(4); float dpx=0, dpy=0;//看p.x、p.x差距,看p.y、p.y差距 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); dpx += abs(p2.x - p.x);//累積x的動量 dpy += abs(p2.y - p.y);//累積y的動量 } if(dpx > 100 && dpy < 40) stroke(255,0,0);//type1 紅色橫線 else if(dpx<40 && dpy>100) stroke(0,0,255);//type2 藍色橫線 else stroke(0);//不是就黑色線 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); line(p.x,p.y,p2.x,p2.y);//ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; println(dx, dy, len, ghostX, ghostY, frameRate); } void mouseReleased(){ //background(255); for(int i=pt.size()-1; i>=0; i--){ pt.remove(i); } }-6ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); strokeWeight(1); stroke(0);ellipse(200,200,15,15); stroke(0);ellipse(ghostX,ghostY,15,15); strokeWeight(4); float dpx=0, dpy=0;//看p.x、p.x差距,看p.y、p.y差距 int rightdown = 0; for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); dpx += abs(p2.x - p.x);//累積x的動量 dpy += abs(p2.y - p.y);//累積y的動量 if(p2.x-p2.x > 0 && p2.y-p2.y > 0) rightdown++; } if(dpx > 100 && dpy < 40) stroke(255,0,0);//type1 紅色橫線 else if(dpx<40 && dpy>100) stroke(0,0,255);//type2 藍色橫線 else if(rightdown > 30) stroke(0,255,0);//type3 的前半段,往右下 綠色線 else stroke(0);//不是就黑色線 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); line(p.x,p.y,p2.x,p2.y);//ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; println(dx, dy, len, ghostX, ghostY, frameRate); } void mouseReleased(){ //background(255); for(int i=pt.size()-1; i>=0; i--){ pt.remove(i); } }-7
ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); strokeWeight(1); stroke(0);ellipse(200,200,15,15); stroke(0);ellipse(ghostX,ghostY,15,15); strokeWeight(4); float dpx=0, dpy=0;//看p.x、p.x差距,看p.y、p.y差距 float rightdown = 0;//往右下 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); dpx += abs(p2.x - p.x);//累積x的動量 dpy += abs(p2.y - p.y);//累積y的動量 if(p2.x-p2.x > 0 && p2.y-p2.y > 0) rightdown += sqrt(dpx*dpx+dpy*dpy); ellipse(p.x, p.y, 10,10); } if(dpx > 100 && dpy < 40) stroke(255,0,0);//type1 紅色橫線 else if(dpx<40 && dpy>100) stroke(0,0,255);//type2 藍色橫線 else if(rightdown > 150) stroke(0,255,0);//type3 的前半段,往右下 綠色線 else stroke(0);//不是就黑色線 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); line(p.x,p.y,p2.x,p2.y);//ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; println(dx, dy, len, ghostX, ghostY, frameRate); } void mouseReleased(){ //background(255); for(int i=pt.size()-1; i>=0; i--){ pt.remove(i); } }-8ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); strokeWeight(1); stroke(0);ellipse(200,200,15,15); stroke(0);ellipse(ghostX,ghostY,15,15); strokeWeight(4); float dpx=0, dpy=0;//看p.x、p.x差距,看p.y、p.y差距 float rightdown = 0,rightup = 0;//往右下、往右上 boolean green_part1 = false, green_ok = false; for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); dpx += abs(p2.x - p.x);//累積x的動量 dpy += abs(p2.y - p.y);//累積y的動量 if(p2.x-p.x > 0 && p2.y-p.y > 0) rightdown += sqrt(dpx*dpx+dpy*dpy); if(p2.x-p.x > 0 && p2.y-p.y < 0) rightup += sqrt(dpx*dpx+dpy*dpy); ellipse(p.x, p.y, 10,10); if(green_part1 == false && rightdown>150) green_part1 = true; else if(green_part1 == true && rightdown>150) green_part1 = true; } println(rightdown); if(dpx > 100 && dpy < 40) stroke(255,0,0);//type1 紅色橫線 else if(dpx<40 && dpy>100) stroke(0,0,255);//type2 藍色橫線 else if(green_ok) stroke(0,255,0);//type3 的前半段,往右下 綠色線 else stroke(0);//不是就黑色線 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); line(p.x,p.y,p2.x,p2.y);//ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; println(dx, dy, len, ghostX, ghostY, frameRate); } void mouseReleased(){ //background(255); for(int i=pt.size()-1; i>=0; i--){ pt.remove(i); } }- 9ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); strokeWeight(1); stroke(0);ellipse(200,200,15,15); stroke(0);ellipse(ghostX,ghostY,15,15); strokeWeight(4); float dpx=0, dpy=0;//看p.x、p.x差距,看p.y、p.y差距 float rightdown = 0, green_rightup = 0;//往右下、往右上 boolean green_part1 = false, green_ok = false; for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); dpx += abs(p2.x - p.x);//累積x的動量 dpy += abs(p2.y - p.y);//累積y的動量 if(p2.x-p.x > 0 && p2.y-p.y > 0) rightdown += sqrt(dpx*dpx+dpy*dpy); if(green_part1 && p2.x-p.x > 0 && p2.y-p.y < 0) green_rightup += sqrt(dpx*dpx+dpy*dpy); ellipse(p.x, p.y, 10,10); if(green_part1 == false && rightdown>150) green_part1 = true; else if(green_part1 == true && green_rightup>150) green_ok = true; } println(rightdown); if(dpx > 100 && dpy < 40) stroke(255,0,0);//type1 紅色橫線 else if(dpx<40 && dpy>100) stroke(0,0,255);//type2 藍色直線 else if(green_ok) stroke(0,255,0);//type3全部完成 else if(green_part1) stroke(0,128,0);//type3 的前半段,往右下 暗綠色 else stroke(0);//不是就黑色線 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); line(p.x,p.y,p2.x,p2.y);//ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; println(dx, dy, len, ghostX, ghostY, frameRate); } void mouseReleased(){ //background(255); for(int i=pt.size()-1; i>=0; i--){ pt.remove(i); } }-10黃色ArrayList<PVector> pt = new ArrayList<PVector>(); void setup(){ size(400,400); background(255); } float ghostX=400,ghostY=20; void mouseDragged(){//按下mouse鍵,再拖曳 pt.add(new PVector(mouseX,mouseY)); } void draw(){ background(255); strokeWeight(1); stroke(0);ellipse(200,200,15,15); stroke(0);ellipse(ghostX,ghostY,15,15); strokeWeight(4); float dpx=0, dpy=0;//看p.x、p.x差距,看p.y、p.y差距 float rightdown = 0, green_rightup = 0;//往右下、往右上 float rightup = 0, yellow_rightdown = 0;//往右上、往右下 boolean green_part1 = false, green_ok = false; boolean yellow_part1 = false, yellow_ok = false; for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); dpx += abs(p2.x - p.x);//累積x的動量 dpy += abs(p2.y - p.y);//累積y的動量 if(p2.x-p.x > 0 && p2.y-p.y > 0) rightdown += sqrt(dpx*dpx+dpy*dpy); if(green_part1 && p2.x-p.x > 0 && p2.y-p.y < 0) green_rightup += sqrt(dpx*dpx+dpy*dpy); if(p2.x-p.x > 0 && p2.y-p.y > 0) rightup += sqrt(dpx*dpx+dpy*dpy); if(yellow_part1 && p2.x-p.x > 0 && p2.y-p.y < 0) yellow_rightdown += sqrt(dpx*dpx+dpy*dpy); ellipse(p.x, p.y, 10,10); if(green_part1 == false && rightdown>150) green_part1 = true; else if(green_part1 == true && green_rightup>150) green_ok = true; if(yellow_part1 == false && rightup > 150) yellow_part1 = true; else if(yellow_part1 == true && yellow_rightdown>150) yellow_ok = true; } println(rightdown); if(dpx > 100 && dpy < 40) stroke(255,0,0);//type1 紅色橫線 else if(dpx<40 && dpy>100) stroke(0,0,255);//type2 藍色直線 else if(green_ok) stroke(0,255,0);//type3全部完成 else if(green_part1) stroke(0,128,0);//type3 的前半段,往右下 暗綠色 else stroke(0);//不是就黑色線 for(int i=0; i<pt.size()-1; i++){ PVector p = pt.get(i),p2 = pt.get(i+1); line(p.x,p.y,p2.x,p2.y);//ellipse(p.x,p.y,3,3); } ellipse(ghostX,ghostY,15,15); float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy); ghostX += dx / len / 3; ghostY += dy / len / 3; println(dx, dy, len, ghostX, ghostY, frameRate); } void mouseReleased(){ //background(255); for(int i=pt.size()-1; i>=0; i--){ pt.remove(i); } }-11






沒有留言:
張貼留言