วันพุธที่ 23 ตุลาคม พ.ศ. 2556

Minion Manhole Game :MMG

      ชื่อเกม : Minion Manhole Game (MMG)

      ประเภท : Smooth game          



    Play this game pressed keys :  Left,Right for top line and A,D for down.
                                 ARE  YOU  READY!! 
                              Let's fun our game together :)



function example and condition

ตัวอย่าง Function  ที่มีการนำมาใช้ในการสร้างเกมส์ได้แก่

          
             Function ที่มีพารามิเตอร์แต่ไม่มีการรีเทิร์นค่ากลับ

              void drawBall(int a, int b, int r) {
                    noStroke ();
                    strokeWeight (1);
                    fill (#F50202);
                    ellipse(a+Move_up, b+Set_up, r, r);
                    ellipse(a+Move_down-90, b+Set_down+240, r, r);//down
                    stroke (0);
                    fill(255);
                    ellipse(a-13+Move_up, b+Set_up, 25, 25);
                    ellipse(a+13+Move_up, b+Set_up, 25, 25);
                    ellipse(a-13+Move_down-90, b+Set_down+240, 25, 25);//down
                    ellipse(a+13+Move_down-90, b+Set_down+240, 25, 25);//down
                    fill(0);
                    quad(a-2+Move_up, b+Set_up-23, a-4+Move_up, b+Set_up-17, a-24+Move_up,
                    b+Set_up-20, a-22+Move_up, b+Set_up-27);
                    quad(a+2+Move_up, b+Set_up-23, a+4+Move_up, b+Set_up-17, a+24+Move_up, 
                    b+Set_up-20, a+22+Move_up, b+Set_up-27);
                    quad(a-2+Move_down-90, b+Set_down-23+240, a-4+Move_down-90, b+Set_down-17+240, 
                    a-24+Move_down-90, b+Set_down-20+240, a-22+Move_down-90, b+Set_down-27+240);//down
                    quad(a+2+Move_down-90, b+Set_down-23+240, a+4+Move_down-90, b+Set_down-17+240,
                     a+24+Move_down-90, b+Set_down-20+240, a+22+Move_down-90, b+Set_down-27+240);//down
                    ellipse(a-8+Move_up, b+Set_up, 10, 10);
                    ellipse(a+8+Move_up, b+Set_up, 10, 10);
                    ellipse(a-8+Move_down-90, b+Set_down+240, 10, 10);//down
                    ellipse(a+8+Move_down-90, b+Set_down+240, 10, 10);//down
               }

     
       Function นี้เป็นฟังก์ชั่นที่ใช้สำหรับสร้างบอล ภายในฟังก์ชันมีการกำหนดค่าให้แก่พารามิเตอร์ เมื่อพารามิเตอร์รับค่าดังกล่าวมาก็จะนำไปใช้ในฟังก์ชั่น ทำให้สะดวกเเละรวดเร็วในการเรียกใช้งาน สามารถกำหนดและนำเอาไปใช้ได้หลายๆค่าและหลายครั้ง หากมีการเปลี่ยนแปลงค่าก็สามารถเปลี่ยนได้ที่เดียวเลยจาะนั้นพารามิเตอร์ก็จะมีการนำเอาค่าใหม่ไปใช้



             Function ที่ไม่มีพารามิเตอร์และไม่มีการรีเทิร์นค่ากลับ

          void moveBall(){
                     if (Move_up<800) {
                       Move_up=Move_up+Speed_up;
                       if (Move_up>=190 && Move_up<200) {
                         if (keyCode==LEFT && Set_up==0) {
                         }
                         else {
                           fill(250, 12, 13);
                          Move_up=190;
                           Set_up=Set_up+1;
                         }
                       }
                       if (Move_up>=440 && Move_up<=460) {
                          if (keyCode==RIGHT && Set_up==0) {
                         }
                         else {
                            Move_up=440;
                           Set_up=Set_up+1;
                           fill(250, 12, 13);
                         }
                       }
                       if (Move_up>=800) {
                         Move_up = 0;
                         Speed_up = Speed_up + 0.5;
                       }
                     }
                     if (Move_down<800) {
                       Move_down = Move_down+Speed_down;
                       if (Move_down>=290 && Move_down<300) {
                         if (keyCode=='A' && Set_down==0) {
                         }
                         else {
                           fill(250, 12, 13);
                           Move_down=290;
                           Set_down=Set_down+1;
                         }
                       }
                        if (Move_down>=530 && Move_down<=540) {
                         if (keyCode=='D' && Set_down==0) {
                         }
                         else {
                           Move_down=530;
                           Set_down=Set_down+1;
                           fill(250, 12, 13);
                         }
                       }
                       if (Move_down>=800) {
                         Move_down = -30;
                         Speed_down = Speed_down + 0.5;
                       }
                     }
                     if (miss>=1 && miss <5) {
                       if (Set_up==400) {
                         Set_up=0;
                         Move_up=0;
                         Move_up = Move_up+Speed_up;
                       }
                       if (Set_down==200) {
                         Move_down=-90;
                         Set_down=0;
                         Move_down = Move_down+Speed_up;
                       }
                     }  
                   }
         Function นี้เป็นฟังก์ชันที่ใช้สร้างเงื่อนไขการขยับของบอล  ภายในฟังก์ชั่นไม่มีทั้งพารามิเตอร์และ
การกำหนดค่า มีการกำหนด Statement ให้แก่ฟังก์ชั่นเพื่อเมื่อมีการเรียกใช้ฟังก์ชั่นดังกล่าวแล้วมีการแสดงค่าตาม Statement
          
            if else condition

                   void scoreBall() {
                     fill(0);
                     if (miss<5) {
                       if (Move_up<800) {
                         if (Move_up>=190 && Move_up<191) {
                           if (Set_up==0) {
                             score++;
                           }
                           if (Set_up==10) {
                             miss++;
                           }
                         }

                         if (Move_up>=440 && Move_up<441) {
                           if (Set_up==0) {
                             score++;
                           }
                           if (Set_up==10) {
                             miss++;
                           }
                         }
                       }
                       if (Move_down<800) {
                         if (Move_down>=290&&Move_down<291) {
                           if (Set_down==0) {
                             score++;
                           }
                           if (Set_down==10) {
                             miss++;
                           }
                         }

                         if (Move_down>=530 && Move_down<531) {
                           if (Set_down==0) {
                             score++;
                           }
                           if (Set_down==10) {
                             miss++;
                           }
                         }
                       }
                     }
                     if (miss>=5) {
                       miss=5;
                       Right_down=0;
                       Left_down=+5;
                       slide_Ldown=-5;
                       Right_up=0;
                       Left_up=0;
                       slide_Rup=-5;
                       slide_Ldown=-5;
                       slide_Rdown=-5;
                       slide_Lup=-5;
                       x_Minion=x_Minion+2;
                       y_Minion=y_Minion+0.6;
                       if (x_Minion>=410) {
                         x_Minion=410;
                       }
                       if (y_Minion>=250) {
                         y_Minion=250;
                         fill (255);
                         rect(-10, -10, 620, 420);
                         fill (#FC0505);
                         textSize(120);
                         text("GAMEOVER", 50, 150);
                         textSize(36);
                         text("Score : "+score, 100, 260);
                         text("Miss : "+miss, 280, 260);
                         text("Restart  press  R", 150, 360);
                       }
                       Move_down=-30;
                       Move_up=-30;
                     }
                     else {
                       fill(0);
                       textSize(20);
                       text("Score : "+score, 480, 180);
                       text("Miss : "+miss, 480, 230);
                     }
                   }


         Function นี้เป็นฟังก์ชั่นที่สร้างขึ้นเพื่อคำนวณคะแนนและความผิดพลาดเมื่อมีการตกของลูกบอล พร้อมกับแสดงค่าให้เราเห็นในรูปแบบของคำสั่ง text ภายในฟังก์ชั่นมีการใช้เงื่อนไข if-else ซึ่งการนำเอาเงื่อนไขที่นำเอาไปใช้สามารถซ้อนกันได้

            while loop condition          

          
                   void drawFloor() {
                     int[][]dis_Brick= {{-10, 30, 70, 110, 230, 270, 310, 350, 470, 510, 550, 590 }, {0, 80, 320} };
                     int i=0;
                     while (i<dis_Brick[0].length) {
                       strokeWeight(1.8);
                       stroke(#000000);
                       fill(#6F3006);
                       rect(dis_Brick[0][i], dis_Brick[1][1], 40, 20);
                       rect(dis_Brick[0][i]-10, dis_Brick[1][1]+20, 40, 20);
                       rect(dis_Brick[0][i], dis_Brick[1][2], 40, 20);
                       rect(dis_Brick[0][i]-10, dis_Brick[1][2]+20, 40, 20);//Brick up
                       noStroke();
                       fill(#46220B);
                       rect(dis_Brick[0][i]+3, dis_Brick[1][1]+10, 35, 10);
                       rect(dis_Brick[0][i]-10+3, dis_Brick[1][1]+20+10, 35, 10);
                       rect(dis_Brick[0][i]+3, dis_Brick[1][2]+10, 35, 10);
                       rect(dis_Brick[0][i]-10+3, dis_Brick[1][2]+20+10, 35, 10);//Brick down
                       i=i+1;
                     }
                 }

        Function นี้เป็นฟังก์ชั่นที่ใช้ในการสร้างพื้นอิฐ ภายในฟังก์ชั่นมีการสร้างเงื่อนไขในรูปแบบของการวนลูป  จะมีการทำรูปแบบเดิมซ้ำๆจนครบเงื่อนไขที่กำหนด (i<dis_Brick[0].length) เพื่อสะดวกและรวดเร็วในการสร้างภาพขึ้นมา นอกจากนี้ภายในฟังก์ชั่นยังมีการกำหนดตัวแปรในรูปของ array 2 มิติง่ายต่อการนำไปใช้และไม่ต้องมีการกำหนดค่าของสิ่งเดิม หลายๆค่า (local variable )


Global variable


ตัวแปร Global ทั้งหมดในเกมนี้ได้แก่

float Move_up = 0;   //ตัวแปรควบคุมการเคลื่อนที่ให้ไปทางขวาของลูกบอลลูกบน
int Right_down = 0;   //ตัวแปรควบคุมการขยับแขนของมินเนี่ยน (แขนขวาขยับขึ้นด้านบน)
int Left_up = 0;   //ตัวแปรควบคุมการขยับแขนของมินเนี่ยน (แขนซ้ายขยับขึ้นด้านบน)
int Right_up = 0;   //ตัวแปรควบคุมการขยับแขนของมินเนี่ยน (แขนขวาขยับลงข้างล่าง)
int Left_down = 0;   //ตัวแปรควบคุมการขยับแขนของมินเนี่ยน (แขนซ้ายขยับลงข้างล่าง)
float Move_down = 0;   //ตัวแปรควบคุมการเคลื่อนที่ให้ไปทางขวาของลูกบอลลูกบน
int Set_up = 0;   //ตัวแปรที่ควบคุมลูกบอลให้ร่วงลงมาตามเงื่อนไขของลูกบอลลูกบน
int Set_down=0;   //ตัวแปรที่ควบคุมลูกบอลให้ร่วงลงมาตามเงื่อนไขของลูกบอลลูกล่าง
float Speed_up=1;   //กำหนดความเร็วของลูกบอลลูกบน
float Speed_down = 1;   //กำหนดความเร็วของลูกบอลลูกล่าง
int miss=0;   //กำหนดตัวแปรเก็บค่าและแสดงผลจำนวนครั้งที่ลูกบอลร่วง
int score=0;   //กำหนดตัวแปรเก็บค่าและแสดงผลจำนวนครั้งที่ลูกบอลข้ามผ่านช่องได้
int slide_Lup=0;   //ตัวแปรควบคุมอิฐที่ค่อยๆเลื่อนมาปิดช่องโหว่ เคลื่อนที่ตามมือมินเนี่ยนด้วยการกดปุ่มซ้าย (ซ้ายบน)
int slide_Rup=0;   //ตัวแปรควบคุมอิฐที่ค่อยๆเลื่อนมาปิดช่องโหว่ เคลื่อนที่ตามมือมินเนี่ยนด้วยการกดปุ่มขวา (ขวาบน)
int slide_Ldown=0;   //ตัวแปรควบคุมอิฐที่ค่อยๆเลื่อนมาปิดช่องโหว่ เคลื่อนที่ตามมือมินเนี่ยนด้วยการกดตัว A (ซ้ายล่าง)
int slide_Rdown=0;   //ตัวแปรควบคุมอิฐที่ค่อยๆเลื่อนมาปิดช่องโหว่ เคลื่อนที่ตามมือมินเนี่ยนด้วยการกดปุ่ม D (ขวาล่าง)
float x_Minion = 225;   //กำหนดระยะแนวนอนของตัวมินเนี่ยน
float y_Minion = 190;   //กำหนดระยะตามแนวตั้งของตัวมินเนี่ยน

Code game


float Move_up = 0;
int Right_down = 0;
int Left_up = 0;
int Right_up = 0;
int Left_down = 0;
float Move_down = 0;
int Set_up = 0;
int Set_down=0;
float Speed_up=1;
float Speed_down = 1;
int miss=0;
int score=0;
int slide_Lup=0;
int slide_Rup=0;
int slide_Ldown=0;
int slide_Rdown=0;
float x_Minion = 225;
float y_Minion = 190;

void setup() {
  size(600, 400);
  PFont myFont;
  myFont = createFont("Impact", 20);
  textFont(myFont);
}
void draw() {
  if (miss>=5 && keyCode == 'R') {
    score=0;
    miss=0;
    x_Minion=235;
    y_Minion=190;
    Speed_down=1;
    Speed_up=1;
    drawBackground(); 
    drawBall(-10, 49, 60);
    moveBall();
    drawGrass();
    moveArm ();
    drawFloor();
    scoreBall();
    drawMinion();
  }
  else {
    drawBackground(); 
    drawBall(-10, 49, 60);
    moveBall();
    drawGrass();
    moveArm ();
    drawFloor();
    scoreBall();
    drawMinion();
  }
}
  
void drawFloor() {
  int[][]dis_Brick= {
    {
      -10, 30, 70, 110, 230, 270, 310, 350, 470, 510, 550, 590
    }
    , {
       80, 320
    }
  };
  int i=0;
  while (i<dis_Brick[0].length) {
    strokeWeight(1.8);
    stroke(#000000);
    fill(#6F3006);
    rect(dis_Brick[0][i], dis_Brick[1][0], 40, 20);
    rect(dis_Brick[0][i]-10, dis_Brick[1][0]+20, 40, 20);
    rect(dis_Brick[0][i], dis_Brick[1][1], 40, 20);
    rect(dis_Brick[0][i]-10, dis_Brick[1][1]+20, 40, 20);//Brick up
    noStroke();
    fill(#46220B);
    rect(dis_Brick[0][i]+3, dis_Brick[1][0]+10, 35, 10);
    rect(dis_Brick[0][i]-10+3, dis_Brick[1][0]+20+10, 35, 10);
    rect(dis_Brick[0][i]+3, dis_Brick[1][1]+10, 35, 10);
    rect(dis_Brick[0][i]-10+3, dis_Brick[1][1]+20+10, 35, 10);//Brick down
    i=i+1;
  }
}
void drawBackground() {
  background(#77FAF0); 
  noStroke();//tree
  fill(#15900D);
  quad(1, 170, 12, 165, 20, 170, 20, 180);
  quad(15, 350, 18, 100, 30, 100, 39, 350);
  fill(#1AB410);
  quad(35, 350, 37, 150, 45, 150, 55, 350);
  fill(#21D315);
  quad(50, 350, 55, 190, 65, 170, 70, 350);//
  fill(#FAFF03);//sun
  stroke(39);
  strokeWeight(2);
  ellipse(430, 400, 300, 300);
  noStroke();
  fill(#FAC60A);
  ellipse(430, 400, 200, 200);
  arc(430, 400, 230, 230, PI, PI+PI/9);
  arc(430, 400, 230, 230, PI+PI/7, PI+PI/4.9);
  arc(430, 400, 230, 230, PI+PI/4.2, PI+PI/3.3);
  arc(430, 400, 230, 230, PI+PI/2.95, PI+PI/2.4);
  arc(430, 400, 230, 230, PI+PI/2.15, PI+PI/1.85);
  arc(430, 400, 230, 230, TWO_PI-PI/9, TWO_PI);
  arc(430, 400, 230, 230, TWO_PI-PI/4.9, TWO_PI-PI/7);
  arc(430, 400, 230, 230, TWO_PI-PI/3.3, TWO_PI-PI/4.2);
  arc(430, 400, 230, 230, TWO_PI-PI/2.40, TWO_PI-PI/2.95);
  fill(255);//Clouds
  ellipse(125, 260, 40, 30);
  ellipse(150, 265, 20, 20);
  ellipse(120, 275, 60, 10);
  ellipse(140, 275, 60, 10);
  ellipse(83, 276, 10, 4);
  ellipse(74, 277, 6, 3);//
  ellipse(430, 330, 60, 8);
  ellipse(430, 325, 40, 15);
  ellipse(433, 323, 23, 23);
  ellipse(45, 33, 70, 8);//1
  ellipse(70, 25, 50, 40);
  ellipse(50, 25, 50, 20);
  ellipse(80, 34, 70, 10);
  ellipse(430, 55, 70, 8);//2
  ellipse(455, 48, 50, 40);
  ellipse(435, 48, 50, 20);
  ellipse(465, 56, 70, 10);
  ellipse(260, 170, 45, 45);//
  ellipse(245, 170, 40, 20);
  ellipse(275, 170, 40, 20);
  ellipse(260, 180, 120, 15);
  stroke(39);//grass
  strokeWeight(2);
  fill(#8ED827);
  ellipse(150, 400, 120, 90);
  fill(#84FC14);
  bezier(3, 360, 5, 350, 50, 290, 160, 400);
  bezier(180, 380, 220, 390, 340, 330, 450, 400);
  bezier(370, 380, 440, 410, 610, 290, 650, 380);
  ellipse(-30, 430, 450, 150);
  noStroke();
  rect(0, 400, 600, -20);
  triangle(40, 340, 20, 390, 190, 390);
  fill(#8ED827);
  triangle(0, 370, 90, 380, 0, 395);
  ellipse(435, 385, 65, 20);
  fill(180);//Rock
  ellipse(425, 380, 65, 10);
  ellipse(440, 377, 30, 15);
  stroke(30);
  noFill();
  arc(425, 380, 65, 10, 0, PI+PI/2);
  arc(440, 377, 30, 15, PI/1.2, TWO_PI);
}
void drawGrass() {
  int[]High_B= {
    65, 80, 305, 320
  };//High_Blade
  int Space_G=3;
  int i=0;
  while (i<=7) {
    strokeWeight(1);
    stroke(#12CE52);
    fill(#04C602);
    triangle(-10+Space_G, High_B[0], -3+Space_G, High_B[1], 9+Space_G, High_B[1]);
    triangle(62+Space_G, High_B[1], 74+Space_G, High_B[1], 83+Space_G, High_B[0]);
    triangle(-10+Space_G, High_B[2], -3+Space_G, High_B[3], 9+Space_G, High_B[3]);
    triangle(62+Space_G, High_B[3], 74+Space_G, High_B[3], 83+Space_G, High_B[2]);
    triangle(235-10+Space_G, High_B[0], 235-3+Space_G, High_B[1], 235+9+Space_G, High_B[1]);
    triangle(235+62+Space_G, High_B[1], 235+74+Space_G, High_B[1], 235+83+Space_G, High_B[0]);
    triangle(235-10+Space_G, High_B[2], 235-3+Space_G, High_B[3], 235+9+Space_G, High_B[3]);
    triangle(235+62+Space_G, High_B[3], 235+74+Space_G, High_B[3], 235+83+Space_G, High_B[2]);
    triangle(470-10+Space_G, High_B[0], 470-3+Space_G, High_B[1], 470+9+Space_G, High_B[1]);
    triangle(470+62+Space_G, High_B[1], 470+74+Space_G, High_B[1], 470+83+Space_G, High_B[0]);
    triangle(470-10+Space_G, High_B[2], 470-3+Space_G, High_B[3], 470+9+Space_G, High_B[3]);
    triangle(470+62+Space_G, High_B[3], 470+74+Space_G, High_B[3], 470+83+Space_G, High_B[2]);
    Space_G=Space_G+11;
    i=i+1;
    strokeWeight(0);
  }
  strokeWeight(6);
  stroke(#8CDB26);
  line(-10, 78, 145, 80);
  line(235, 78, 390, 80);
  line(470, 78, 600, 80);
  line(-10, 320, 145, 320);
  line(235, 320, 390, 320);
  line(470, 320, 600, 320);
  strokeWeight(0);
}
void drawBall(int a, int b, int r) {
  noStroke ();
  strokeWeight (1);
  fill (#F50202);
  ellipse(a+Move_up, b+Set_up, r, r);
  ellipse(a+Move_down-90, b+Set_down+240, r, r);//
  stroke (0);
  fill(255);
  ellipse(a-13+Move_up, b+Set_up, 25, 25);
  ellipse(a+13+Move_up, b+Set_up, 25, 25);
  ellipse(a-13+Move_down-90, b+Set_down+240, 25, 25);//
  ellipse(a+13+Move_down-90, b+Set_down+240, 25, 25);//
  fill(0);
  quad(a-2+Move_up, b+Set_up-23, a-4+Move_up, b+Set_up-17, a-24+Move_up, b+Set_up-20, a-22+Move_up, b+Set_up-27);
  quad(a+2+Move_up, b+Set_up-23, a+4+Move_up, b+Set_up-17, a+24+Move_up, b+Set_up-20, a+22+Move_up, b+Set_up-27);
  quad(a-2+Move_down-90, b+Set_down-23+240, a-4+Move_down-90, b+Set_down-17+240, a-24+Move_down-90, b+Set_down-20+240, a-22+Move_down-90, b+Set_down-27+240);//
  quad(a+2+Move_down-90, b+Set_down-23+240, a+4+Move_down-90, b+Set_down-17+240, a+24+Move_down-90, b+Set_down-20+240, a+22+Move_down-90, b+Set_down-27+240);//
  ellipse(a-8+Move_up, b+Set_up, 10, 10);
  ellipse(a+8+Move_up, b+Set_up, 10, 10);
  ellipse(a-8+Move_down-90, b+Set_down+240, 10, 10);//
  ellipse(a+8+Move_down-90, b+Set_down+240, 10, 10);//
}
void drawMinion() {
  strokeWeight (18); 
  stroke(#FFDC12);
  line (x_Minion+Left_up/3+Left_down/2, y_Minion+40+Left_up-Left_down, x_Minion+30, y_Minion); //arm
  line (x_Minion+130, y_Minion, x_Minion+160+Right_up/3+Right_down/2, y_Minion+40-Right_up+Right_down); //arm
  fill (#FFDC12);
  rect (x_Minion+32, y_Minion+10, 96, 60);//body
  ellipse (x_Minion+80, y_Minion-10, 100, 130);//head
  stroke (0);
  strokeWeight (1);
  fill (0);
  ellipse (x_Minion+Left_up/3+Left_down/2, y_Minion+44-2+Left_up-Left_down, 20, 20); //hand
  ellipse (x_Minion+160+Right_up/3+Right_down/2, y_Minion+44-2-Right_up+Right_down, 20, 20); //hand
  fill (#0E33E3);
  stroke(8, 41, 64);
  rect (x_Minion+55, y_Minion+90, 20, 40);//leg
  rect (x_Minion+85, y_Minion+90, 20, 40);
  fill (0);
  arc (x_Minion+65, y_Minion+130, 20, 30, 0, PI);//foot
  arc (x_Minion+95, y_Minion+130, 20, 30, 0, PI);
  fill (#0E33E3);
  strokeWeight (1.5);
  rect(x_Minion+45, y_Minion+40, 70, 41);//clothes
  arc (x_Minion+80, y_Minion+80, 115, 85, 0, PI);//trousers(pants)
  line(x_Minion+45, y_Minion+79, x_Minion+22, y_Minion+79);
  line(x_Minion+115, y_Minion+79, x_Minion+137, y_Minion+79);
  fill(15, 100, 180);
  arc(x_Minion+45, y_Minion+80, 25, 30, PI/2, PI);
  arc(x_Minion+115, y_Minion+80, 25, 30, 0, PI/2);
  line(x_Minion+45, y_Minion+80, x_Minion+45, y_Minion+80+15);
  line(x_Minion+115, y_Minion+79, x_Minion+115, y_Minion+79+15);
  strokeWeight (10);
  stroke (#0E33E3);
  line (x_Minion+50, y_Minion+40, x_Minion+25, y_Minion);//cordon
  line (x_Minion+110, y_Minion+40, x_Minion+135, y_Minion);
  stroke (0);
  line (x_Minion+30, y_Minion-45, x_Minion+80, y_Minion-30);//leg monocle
  line (x_Minion+80, y_Minion-30, x_Minion+130, y_Minion-45);//leg monocle
  fill (255);
  stroke (#9DA1A5);//gray
  strokeWeight (7);
  ellipse (x_Minion+80, y_Minion-30, 60, 60);//white and glasses
  noFill();
  stroke (#676A6C);//old gray
  strokeWeight (3);
  ellipse (x_Minion+80, y_Minion-30, 60, 60);//white and glasses
  fill (#764A3B);
  noStroke();
  ellipse (x_Minion+80, y_Minion-30, 35, 35);//brown eye
  fill (0);
  strokeWeight (1);
  stroke (0);
  ellipse(x_Minion+50, y_Minion+41, 10, 10);//button
  ellipse(x_Minion+110, y_Minion+41, 10, 10);
  ellipse (x_Minion+80, y_Minion-30, 15, 15);//black eye
  stroke(255);
  fill (255);
  ellipse (x_Minion+72, y_Minion-40, 5, 5);//small white eye
  strokeWeight (4);
  stroke (#FFC36A);
  arc (x_Minion+80, y_Minion+10, 50, 30, 0, PI);//mouth
  stroke(0);
  strokeWeight(0.1);
  fill(8, 41, 64);
  quad(x_Minion+63, y_Minion+74, x_Minion+97, y_Minion+74, x_Minion+98, y_Minion+53, x_Minion+62, y_Minion+53);
  arc(x_Minion+80, y_Minion+74, 33, 14, 0, PI);
  fill(15, 100, 180);
  quad(x_Minion+65, y_Minion+74, x_Minion+95, y_Minion+74, x_Minion+96, y_Minion+54, x_Minion+64, y_Minion+54);
  arc(x_Minion+80, y_Minion+74, 30, 13, 0, PI);
  fill(35, 41, 65);
  ellipse(x_Minion+80, y_Minion+67, 20, 20);
  fill(164, 206, 230);
  quad(x_Minion+80-8, y_Minion+67, x_Minion+80, y_Minion+67-8, x_Minion+80+8, y_Minion+67, x_Minion+80, y_Minion+67+8);
  fill(35, 41, 65);
  ellipse(x_Minion+80, y_Minion+67, 8, 8);
  rect(x_Minion+80, y_Minion+67, 10, -2);
  fill(164, 206, 230);
  rect(x_Minion+80, y_Minion+67, 10, 2);
}
void moveArm () {
  strokeWeight(1.8);
  stroke(#000000);
  fill(#6F3006);
  if (keyCode == LEFT) {
    Left_up = Left_up-5;
    slide_Lup = slide_Lup+5;
    if (Left_up <= -120) {
      Left_up = -120;
    }
    if (slide_Lup >= 80) {
      slide_Lup = 80;
    }
    fill (#FAD29A);
    rect(70+slide_Lup, 80, 40, 20);
    rect(70-10+slide_Lup, 80+20, 40, 20);
    rect(110+slide_Lup, 80, 40, 20);
    rect(110-10+slide_Lup, 80+20, 40, 20);
    fill(#F7A12F);
    noStroke();
    rect(70+slide_Lup+3, 80+10, 35, 10);
    rect(70-10+slide_Lup+3, 80+10+20, 35, 10);
    rect(110+slide_Lup+3, 80+10, 35, 10);
    rect(110-10+slide_Lup+3, 80+20+10,35, 10);
  }  
  else {
    Left_up=0;
    slide_Lup=0;
  }

  if (keyCode == RIGHT) {
    Right_up=Right_up+5;
    slide_Rup=slide_Rup+5;
    if (Right_up>=120) {
      Right_up =120;
    }
    if (slide_Rup>=80) {
      slide_Rup=80;
    }
    fill (#FAD29A);
    rect(310+slide_Rup, 80, 40, 20);
    rect(310-10+slide_Rup, 80+20, 40, 20);
    rect(350+slide_Rup, 80, 40, 20);
    rect(350-10+slide_Rup, 80+20, 40, 20);
    fill(#F7A12F);
    noStroke();
    rect(310+slide_Rup+3, 80+10, 35, 10);
    rect(310-10+slide_Rup+3, 80+20+10, 35, 10);
    rect(350+slide_Rup+3, 80+10, 35, 10);
    rect(350-10+slide_Rup+3, 80+20+10, 35, 10);
  }
  else {
    Right_up=0;
    slide_Rup=0;
  }
  if (keyCode == 'A') {
    Left_down=Left_down-5;
    slide_Ldown=slide_Ldown+5;
    if (Left_down<=-80) {
      Left_down =-80;
    }
    if (slide_Ldown>=80) {
      slide_Ldown= 80;
    }
    fill (#FAD29A);
    rect(70+slide_Ldown, 320, 40, 20);
    rect(70-10+slide_Ldown, 320+20, 40, 20);
    rect(110+slide_Ldown, 320, 40, 20);
    rect(110-10+slide_Ldown, 320+20, 40, 20);
    fill(#F7A12F);
    noStroke();
    rect(70+slide_Ldown+3, 320+10, 35, 10);
    rect(70-10+slide_Ldown+3, 320+20+10, 35, 10);
    rect(110+slide_Ldown+3, 320+10, 35, 10);
    rect(110-10+slide_Ldown+3, 320+20+10, 35, 10);
    if (miss>=5) {
      Left_down=0;
      slide_Ldown=-5;
    }
  }
  else {
    Left_down=0;
    slide_Ldown=0;
  }
  if (keyCode == 'D') {
    Right_down=Right_down+5;
    slide_Rdown=slide_Rdown+5;
    if (Right_down>=80) {

      Right_down =80;
    }
    if (slide_Rdown>=80) {
      slide_Rdown=80;
    }
    fill (#FAD29A);
    rect(310+slide_Rdown, 320, 40, 20);
    rect(310-10+slide_Rdown, 320+20, 40, 20);
    rect(350+slide_Rdown, 320, 40, 20);
    rect(350-10+slide_Rdown, 320+20, 40, 20);
    fill(#F7A12F);
    noStroke();
    rect(310+slide_Rdown+3, 320+10, 35, 10);
    rect(310-10+slide_Rdown+3, 320+20+10, 35, 10);
    rect(350+slide_Rdown+3, 320+10, 35, 10);
    rect(350-10+slide_Rdown+3, 320+20+10, 35, 10);
  }
  else {
    Right_down=0;
    slide_Rdown=0;
  }
}
void scoreBall() {
  fill(0);
  if (miss<5) {
    if (Move_up<800) {
      if (Move_up>=190 && Move_up<191) {
        if (Set_up==0) {
          score++;
        }
        if (Set_up==10) {
          miss++;
        }
      }

      if (Move_up>=440 && Move_up<441) {
        if (Set_up==0) {
          score++;
        }
        if (Set_up==10) {
          miss++;
        }
      }
    }
    if (Move_down<800) {
      if (Move_down>=290&&Move_down<291) {
        if (Set_down==0) {
          score++;
        }
        if (Set_down==10) {
          miss++;
        }
      }

      if (Move_down>=530 && Move_down<531) {
        if (Set_down==0) {
          score++;
        }
        if (Set_down==10) {
          miss++;
        }
      }
    }
  }
  if (miss>=5) {
    miss=5;
    Right_down=0;
    Left_down=+5;
    slide_Ldown=-5;
    Right_up=0;
    Left_up=0;
    slide_Rup=-5;
    slide_Ldown=-5;
    slide_Rdown=-5;
    slide_Lup=-5;
    x_Minion=x_Minion+2;
    y_Minion=y_Minion+0.6;
    if (x_Minion>=410) {
      x_Minion=410;
    }
    if (y_Minion>=250) {
      y_Minion=250;
      fill (255);
      rect(-10, -10, 620, 420);
      fill (#FC0505);
      textSize(120);
      text("GAMEOVER", 50, 150);
      textSize(36);
      text("Score : "+score, 100, 260);
      text("Miss : "+miss, 280, 260);
      text("Restart  press  R", 150, 360);
    }
    Move_down=-30;
    Move_up=-30;
  }
  else {
    fill(0);
    textSize(20);
    text("Score : "+score, 480, 180);
    text("Miss : "+miss, 480, 230);
  }
}
void moveBall(){
  if (Move_up<800) {
    Move_up=Move_up+Speed_up;
    if (Move_up>=190 && Move_up<200) {
      if (keyCode==LEFT && Set_up==0) {
      }
      else {
        fill(250, 12, 13);
        Move_up=190;
        Set_up=Set_up+1;
      }
    }
    if (Move_up>=440 && Move_up<=460) {
      if (keyCode==RIGHT && Set_up==0) {
      }
      else {
        Move_up=440;
        Set_up=Set_up+1;
        fill(250, 12, 13);
      }
    }
    if (Move_up>=800) {
      Move_up = 0;
      Speed_up = Speed_up + 0.5;
    }
  }
  if (Move_down<800) {
    Move_down = Move_down+Speed_down;
    if (Move_down>=290 && Move_down<300) {
      if (keyCode=='A' && Set_down==0) {
      }
      else {
        fill(250, 12, 13);
        Move_down=290;
        Set_down=Set_down+1;
      }
    }
    if (Move_down>=530 && Move_down<=540) {
      if (keyCode=='D' && Set_down==0) {
      }
      else {
        Move_down=530;
        Set_down=Set_down+1;
        fill(250, 12, 13);
      }
    }
    if (Move_down>=800) {
      Move_down = -30;
      Speed_down = Speed_down + 0.5;
    }
  }
  if (miss>=1 && miss <5) {
    if (Set_up==400) {
      Set_up=0;
      Move_up=0;
      Move_up = Move_up+Speed_up;
    }
    if (Set_down==200) {
      Move_down=-90;
      Set_down=0;
      Move_down = Move_down+Speed_up;
    }
  }  
}