2022年12月4日 星期日

互動技術 week12 課堂筆記

 void setup()

{ size(800, 800); } float x=400, y=750; float vx=2.0, vy=-2.5; float boardX, boardY=760, boardW=200, boardH=10; float enemyX=350, enemyY=0, enemyW=100, enemyH=100, enemyVX=1.0; boolean ballFlying = false, ballMoving = true; void draw() { boardX = mouseX-boardW/2; background(#099CFF); rect(boardX, boardY, boardW, boardH);//桿子 ellipse(x, y, 20, 20);//球 rect(enemyX, enemyY, enemyW, enemyH);//Boss enemyX = enemyX+enemyVX; if (enemyX>700 || enemyX<100) enemyVX=-enemyVX; if(ballMoving) x = mouseX; if(ballFlying) { x = x+vx; y = y+vy; } if (x>800 || x<0) vx=-vx; if (y<0) vy=-vy; if ((y>boardY && y<boardY+boardH) && (x>boardX && x<boardX+boardW)) { vy=-vy; vx+=(mouseX-pmouseX)/2; } if ((y>enemyY && y<enemyY+enemyH) && (x>enemyX && x<enemyX+enemyW)) { vy=-vy; vx+=(mouseX-pmouseX)/2; } if(mousePressed && mouseButton == LEFT) { ballFlying = true;//點擊滑鼠,球開始移動 ballMoving = false; } }










PImage p1, p2; void setup() { size(800, 800); colorMode(RGB, 255, 255, 255); //p1 = loadImage("win.png"); //p2 = loadImage("lose.png"); } float x=400, y=750; float vx=2.5, vy=-3.0; float boardX, boardY=760, boardW=200, boardH=10; float enemyX=350, enemyY=0, enemyW=100, enemyH=100, enemyVX=1.0, enemyLife=3; boolean ballFlying = false, ballMoving = true; int c=255; void draw() { if (enemyLife==1) boardW=100; if (enemyLife<3 && enemyVX>0) enemyVX=2.0; if (enemyLife<3 && enemyVX<0) enemyVX=-2.0; //if (enemyLife==0) image(p1, 0, 0); boardX = mouseX-boardW/2; if (enemyLife>0) { background(#099CFF); fill(255, 255, 255); rect(boardX, boardY, boardW, boardH);//桿子 ellipse(x, y, 20, 20);//球 } if (enemyLife>0) { fill(255, c, c); rect(enemyX, enemyY, enemyW, enemyH);//Boss enemyX = enemyX+enemyVX; } if (enemyX>700 || enemyX<0) enemyVX=-enemyVX; if (ballMoving) x = mouseX; if (ballFlying) { x = x+vx; y = y+vy; } if (x>800 || x<0) vx=-vx; if (y<0) vy=-vy; //if (y>800 && enemyLife!=0) image(p2, 0, 0); if ((y>boardY && y<boardY+boardH) && (x>boardX && x<boardX+boardW)) { vy=-vy; vx+=(mouseX-pmouseX)/2; } if ( enemyLife>0 && testSide2() ) { c=128; vy = -vy; enemyLife--; } else c=255; if ( enemyLife>0 && testSide() ) { c=128; vx = -vx; enemyLife--; } else c=255; if (mousePressed && mouseButton == LEFT) { ballFlying = true;//點擊滑鼠,球開始移動 ballMoving = false; } } boolean testSide() { float right = enemyX+enemyW; float left = enemyX; float up = enemyY; float down = enemyY+enemyH; if ( y<up || y>down ) return false; if ( x+vx<=right && x >= right) { println("touch right"); return true; } if ( x+vx>=left && x <= left) { println("touch left"); return true; } return false; } boolean testSide2() { float right = enemyX+enemyW; float left = enemyX; float up = enemyY; float down = enemyY+enemyH; if ( x<left || x>right ) return false; if ( y+vy<=down && y >= down) { println("touch down"); return true; } if ( y+vy>=up && y <= up) { println("touch up"); return true; } return false; }

沒有留言:

張貼留言