試作型ブロック崩し
int sizex=350; //画面サイズX int sizey=500; //画面サイズY void setup(){ size(sizex,sizey); fill(0,0,0); } int i=100; //玉のX座標 int j=150; //玉のY座標 int x=3; //玉の移動ドットX int y=5; //玉の移動ドットY int a=0; void draw(){ background(255,255,255); fill(0,0,0); rect(mouseX-25,450,50,5); fill(255,255,255); rect(mouseX-15,450,10,5); rect(mouseX+5,450,10,5); fill(0,0,0); if(a==0)a=target(165,35,30); ellipse(i,j,8,8); i+=x; j+=y; if(i<=0)x=-x; if(j<=0)y=-y; if(i>=sizex)x=-x; if(j>=sizey){ x=0; y=0; textSize(35); text("GAME OVER",76,200); } if(j>=450&&j<=455&&i>=mouseX-25&&i<=mouseX-15){ y=-y; x=-2; } if(j>=450&&j<=455&&i>mouseX-15&&i<=mouseX-5){ y=-y; x=-1; } if(j>=450&&j<=455&&i>mouseX-5&&i<=mouseX+5){ y=-y; x=0; } if(j>=450&&j<=455&&i>mouseX+5&&i<=mouseX+15){ y=-y; x=1; } if(j>=450&&j<=455&&i>mouseX+15&&i<=mouseX+25){ y=-y; x=2; } } //Ti 標的の左上のX座標 //Tj 標的の左上のY座標 //TS 標的の大きさ int target(int Ti,int Tj,int TS){ rect(Ti,Tj,TS,TS); if(i>=Ti&&i<=Ti+5&&j>=Tj&&j<=Tj+TS)x=-x; if(i>=Ti+TS-5&&i<=Ti+TS&&j>=Tj&&j<=Tj+TS)x=-x; if(i>=Ti&&i<=Ti+TS&&j>=Tj&&j<=Tj+5)y=-y; if(i>=Ti&&i<=Ti+TS&&j>=Tj+TS-5&&j<=Tj+TS)y=-y; if(i>=Ti&&i<=Ti+TS&&j>=Tj&&j<=Tj+TS)return(1); else return(0); }
形になったのであげてみる。
まだまだ改良の余地はあるので、随時修正していくつもりです。