試作型ブロック崩し

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);
}


形になったのであげてみる。
まだまだ改良の余地はあるので、随時修正していくつもりです。