แสดงบทความที่มีป้ายกำกับ Assignment2 แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Assignment2 แสดงบทความทั้งหมด

วันพุธที่ 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;   //กำหนดระยะตามแนวตั้งของตัวมินเนี่ยน

วันอังคารที่ 27 สิงหาคม พ.ศ. 2556

(Game Manhole)Assignment 2

           GAME ที่เลือกคือ MANHOLE GAME หรือที่เรียกกันว่าเกมต่อสะพานหนึ่งใน Gold Series ของ GAME & WATCH ที่ถูกผลิตขึ้นมาโดยบริษัท  Nintendo 


                                      

                    สามารถดูตัวอย่างการเล่นได้ที่ : https://www.youtube.com/watch?v=TOmHDs87AZw


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

ประเภท : Smooth game


ออกแบบ Function

void setup(){
   size();   //ขนาดของตัวเกม
   background();   //สีพื้นหลังเกม
}

void draw(){
   drawFloor(x, y);  //วาดพื้น
   drawBall(a, b, r);  //วาดลูกบอลที่กลิ้ง
   drawMinion(c, d);  //วาดตัวมินเนี่ยน
}

void drawFloor(int x, int y){  //ฟังก์ชันที่ใช้วาดพื้น
   rect();   //พื้นเป็นสี่เหลี่ยม
}

void drawBall(int a, int b, int r){   //ฟังก์ชันที่วาดลูกบอลรับค่าเป็นพารามิเตอร์
   ellipse(a, b, r, r);   //ลูกบอลเป็นทรงกลม
}

void drawMinion(int c, int d){   //วาดตัวมินเนี่ยนและรับค่ามาเป็นพารามิเตอร์
   ellipse();//  วาดตัวและ ตาเป็นวงกลม
   arc();   //วาดปากเป็นส่วนของวงกลม
}

Function สำหรับใช้ในการสร้างเกมส์ 

drawBackground() // สร้าง ฟังก์ชั่นที่วาด พื้นหลัง ส่วนของดวงอาทิตย์และพื้นสีเขียว ไม่มีการรับค่า parameter ไม่มีการ return ค่า   

drawFloor(int x, int y) // สร้าง  ฟังก์ชั่นที่ใช้วาด ก้อนอิฐ รับค่า parameter x,y ไม่มีการ return ค่า  


drawMinion(int c, int d) // สร้าง ฟังก์ชั่นที่ใช้วาด  Minious รับค่า parameter c,d ไม่มีการ return ค่า 

 

drawBall(int a, int b, int r) // สร้าง ฟังก์ชั่นที่ใช้วาด Ball รับค่า parameter a ,b,c เพื่อกำหนดตำแหน่งและขนาดของลูกบอล   ใช้กำหนดการเคลื่อนที่ของบอลด้วย ไม่มีการ return ค่า   


moveArm () //สร้าง ฟังก์ชั่นกำหนดการขยับแขนของ Minious ให้ขยับออกไปรับลูกบอล ไม่มีการรับค่า parameter ไม่มีการ return ค่า   


scoreBall() // สร้างฟังก์ชั่นที่ใช้นับคะแนน เมื่อรับบอลได้ ไม่มีการรับค่า parameter และไม่มีการ return ค่า

   

drawGrass() // สร้าง ฟังก์ชั่นที่ใช้วาด พื้นหลังของภาพโดยเป็นส่วนที่วาดหญ้า ไม่มีการรับค่า parameter ไม่มีการ return ค่า




ผู้รับผิดชอบ


นางสาว ชลิตา กาญจนาเมือง

drawMinious();

scoreBall();


นางสาว ปนัดดา อ่อนพลับ


drawBackground();


drawGrass();


moveArm ();


นางสาว ธีระนันท์ เย็นไธสง


drawFloor();


drawBall();