小葉老師在協助同學期末作品
彈弓的模擬
void setup(){
size(400,300);
}
float x,y,vx,vy;
boolean flying=false;
void draw(){
background(255);
line(mouseX,mouseY,100,200);
float force = 1*dist(mouseX,mouseY,100,200);
if(flying){
ellipse(x,y,30,30);
x+=vx; y+=vy;
vy+=0.98;
}
if(frameCount%(2*60)==0){
x=mouseX; y=mouseY; vx=(100-mouseX)*0.1; vy=(200-mouseY)*0.1;
flying=true;
}
}
------------------------------------------------
馬力歐採怪物
float []turtleX=new float[30];
float x=100,y=200,vx=0,vy=0;
boolean jumping=false,MarioDie=false;
boolean[]turtleAlive=new boolean[30];
void setup(){
size(500,300);
turtleX[0]=500;
for(int i=1;i<30;i++){
turtleX[i]=turtleX[i-1]+random(100,200);
turtleAlive[i]=true;
}
}
void draw(){
background(255);
if(MarioDie) background(255,0,0);
fill(#E5DCB7); rect(0,200,500,100);
for(int i=0;i<30;i++){
if(turtleAlive[i]){
if(dist(x,y-20,turtleX[i],200-20)<40){
if(jumping) turtleAlive[i]=false;
else MarioDie=true;
}
fill(0,255,0); ellipse(turtleX[i],200-20,40,40);
if(!MarioDie) turtleX[i]-=3;
}
}
fill(255,0,0); ellipse(x,y-20,40,40);
if(jumping){
x+=vx; y+=vy; vy+=0.98;
if(y>200){
y=200; jumping=false;
}
}
}
void mousePressed(){
jumping=true;
vy-=16;
}
---------------------------------------
寶石方塊
int[][]square=new int[8][8];
color[] c={#FA1E1E,#1E44FA};
void setup(){
size(400,400);
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
square[i][j]=int(random(2));
}
}
}
void draw(){
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
if(mousePressed&&i==moveI&&j==moveJ) strokeWeight(5);
else if(mousePressed&&i==moveI2&&j==moveJ2) strokeWeight(5);
else strokeWeight(1);
if(square[i][j]==0){
fill(c[0]); rect(j*50,i*50,50,50);
}else if(square[i][j]==1){
fill(c[1]); rect(j*50,i*50,50,50);
}
}
}
}
int moveI,moveJ,moveI2,moveJ2;
void mousePressed(){
int j=mouseX/50,i=mouseY/50;
moveJ=j; moveI=i;
moveJ2=j; moveI2=i;
}
void mouseDragged(){
int j=mouseX/50,i=mouseY/50;
moveJ2=j; moveI2=i;
}
void mouseReleased(){
int j=mouseX/50,i=mouseY/50;
moveJ2=j; moveI2=i;
if(testNeighbor(i,j,moveI,moveJ)==true){
int temp=square[i][j];
square[i][j]=square[moveI][moveJ];
square[moveI][moveJ]=temp;
}
}
boolean testNeighbor(int i,int j,int i2,int j2){
if(i==i2&&j-j2==1) return true;
if(i==i2&&j2-j==1) return true;
if(j==j2&&i-i2==1) return true;
if(j==j2&&i2-i==1) return true;
return false;
}
沒有留言:
張貼留言