ตัวอย่างการอธิบายโค้ด

4,425 views

Published on

ตัวอย่างการ comment code ของเราที่จะให้ผู้นำไปศึกษาต่อเข้้าใจถึงการทำงานของโปรแกรมได้อย่างไม่มีปัญหา ไม่ต้องเสียค่าใช้จ่ายในการเรียนเพิ่มเติม

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
4,425
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

ตัวอย่างการอธิบายโค้ด

  1. 1. stop ();import flash.media.Sound.*;import flash.events.*;var aaa:Sound = new Sound()aaa.attachSound("sound12")var scheerup = new Sound()scheerup.attachSound("Cheering-timtube-14")var kidcheer = new Sound()kidcheer.attachSound("kids_che-A_Algie-365")var tuommer = new Sound()tuommer.attachSound("sound2")var tuommer2 = new Sound()tuommer2.attachSound("sound1") stagetxt.stagetxt.text = String("Stage"+cordlevel);this.btn_sopen._visible = false;bt_main.onRelease = function(){ gotoAndStop(1)}btn_sopen.onRelease = function(){ btn_sclose._visible = true; btn_sopen._visible = false; aaa.setVolume(100); tuommer.setVolume(100) tuommer2.setVolume(100)}btn_sclose.onRelease = function(){ btn_sclose._visible = false; btn_sopen._visible = true; aaa.setVolume(0); tuommer.setVolume(0) tuommer2.setVolume(0)}COURT_W = 180; //เก็บตัวแปรความกวางของคอร์ดCOURT_H = 360; //เก็บตัวแปรความยาวของคอร์ดSERVE_H = 200; //เก็บตัวแปรความยาวของ ระยะ เสริฟSCREEN_OX = 300; //ตัวแปร ความกว้างscreenSCREEN_OY = 300;//ตัวแปร ความยาวscreenmcNet._y = SCREEN_OY; //ตั้งขนาดความกว้างของ ตาข่าย = 300NET_H = 40; //ตั้งขนาดความสูงของตาข่ายTOSS_H = 50; // ตั้งตัวแปรความสูงของการข้ามลูกGRAVITY = 8.000000E-001; // ตั้งตัวแปรแรงโน้มถ่วงPS_WAIT = 1; // ใส่ค่าตัวเลข ของตัวแปร นีเป้น 1 ้
  2. 2. PS_MOVE = 2; // ใส่ค่าตัวเลข ของตัวแปร นีเป้น 2 ้PS_STROKE = 3;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 3 ้PS_SERVE = 4;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 4 ้PS_TOSS = 5;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 5 ้PS_FREEZE = 6;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 6 ้PS_AFTER = 7;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 7 ้ST_FORE = 1; // ใส่ค่าตัวเลข ของตัวแปร นีเป้น 1 ้ST_BACK = 2;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 2้ST_SMASH = 3;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 3 ้HIT_X1_FORE = -10;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น -10 ้HIT_X2_FORE = 60;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 60 ้HIT_X1_BACK = -60;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น -60 ้HIT_X2_BACK = 10;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 1 0 ้HIT_X1_SMASH = -30;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น -30 ้HIT_X2_SMASH = 50;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 50 ้HIT_Y1 = -120;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น -120 ้HIT_Y2 = 80;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 80 ้HIT_Z = 120;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 120 ้WM_WAIT = 1;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 1 ้WM_MOVE = 2;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 2 ้RESULT_FAULT = 1;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 1 ้RESULT_OUT = 2;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 2 ้RESULT_MISS = 3;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 3 ้RESULT_VOLLEY = 4;// ใส่ค่าตัวเลข ของตัวแปร นีเป้น 4 ้import flash.geom.ColorTransform;eval(mcPlayer1).transform.colorTransform = new ColorTransform(1,1,150,1,1,1,1,1);pname = new Array(2);//สร้างอาเรย์ ที่มีสมาชิกทั้งหมด 2 ตังfor (i = 0; i < 2; i++) //ลูป ปรแกรม 2 ครั้ง{ if(modeplay == "vscom") // ถาmodeplay เป้นโหมด vscom ้ { if(i != 0)// ถ้าไอไม่เท่ากับ 0 { pname[i] = "player"+(i+1); // ให้ ตัวแปร pname ตัวที่ i เท่ากับชื่อ player2 (ชื่อของคอม) mc = eval("mcPlayer" + i);// ตัวแปร mc จะเก็บข้อมูลมูปวี่คลิฟของรูปmcPlayer1 ไว้ mc.forehand = 20 + 1 * enemydata[enemylevel][0];// ตั้งค่าการตี forehandด้วย20+1 คูณด้วยตัวแปรความยากของ enemydata mc.backhand = 20 + 5.000000E-001 * enemydata[enemylevel][1];// ตั้ง
  3. 3. ค่าการตี backhand ด้วย20 + 5.000000E-001คูณด้วยตัวแปรความยากของ enemydata mc.serve = 30 + 3 * enemydata[enemylevel][2];// ตั้งค่าการตี serve ด้วย30+ 3คูณด้วยตัวแปรความยากของ enemydata mc.footwork = 6 + 3.000000E-001 * enemydata[enemylevel][3];// ตั้งค่าวิ่ง ด้วย6 + 3.000000E-001คูณด้วยตัวแปรความยากของ enemydata mc.netplay = enemydata[enemylevel][4];// ตั้งค่าการเล่นnetplayตัวแปรความยากของ enemydata mc.tech = enemydata[enemylevel][5];// ตั้งค่าการตี ลูกเทคนิคด้วยตัวแปรความยากของ enemydata } else // ถา i = 0 ้ { pname[i] = textname1;// ให้ ตัวแปร pname ตัวที่ 0 เก็บชื่อของผู้เล่นไว้ mc = eval("mcPlayer" + i); // ตัวแปร mc จะเก็บข้อมูลมูปวี่คลิฟของรูปmcPlayer0 ไว้ mc.forehand = 20 + 1 * 5;// ตั้งค่าการตี forehand ด้วย20+1 คูณด้วย5 mc.backhand = 20 + 5.000000E-001 * 5;// ตั้งค่าการตี backhand ด้วย20 +5.000000E-001คูณด้วย5 mc.serve = 30 + 3 * 5;// ตั้งค่าการตี serve ด้วย30 + 3คูณด้วย5 mc.footwork = 6 + 3.000000E-001 * 5;// ตั้งค่า วิ่ง ด้วย6 +3.000000E-001คูณด้วย5 mc.netplay = 5;// ตั้งค่าการเล่นnetplay ด้วย 5 mc.tech = 5;// ตั้งค่าการตี ลูกเทคนิค } } else // หาก เป็น mode player vs player { if(i == 0) { pname[i] = textname1;// ให้ ตัวแปร pname ตัวที่ 0 เก็บชื่อของผู้เล่นคนที่1ไว้ mc = eval("mcPlayer" + i);// ตัวแปร mc จะเก็บข้อมูลมูปวี่คลิฟของรูปmcPlayer0 ไว้ mc.forehand = 20 + 1 * 5;// ตั้งค่าการตี forehand ด้วย20+1 คูณด้วย10 mc.backhand = 20 + 5.000000E-001 * 10;// ตั้งค่าการตี backhand ด้วย20+ 5.000000E-001คูณด้วย10 mc.serve = 30 + 3 * 10;// ตั้งค่าการตี serve ด้วย30 + 3คูณด้วย10 mc.footwork = 6 + 3.000000E-001 * 10;// ตั้งค่า วิ่ง ด้วย6 +3.000000E-001คูณด้วย10 mc.netplay = 10;// ตั้งค่าการเล่นnetplay ด้วย 10 mc.tech = 10;// ตั้งค่าการตี ลูกเทคนิค }
  4. 4. else { pname[i] = textname2;// ให้ ตัวแปร pname ตัวที่ 0 เก็บชื่อของผู้เล่นคนที่2ไว้ mc = eval("mcPlayer" + i);// ตัวแปร mc จะเก็บข้อมูลมูปวี่คลิฟของรูปmcPlayer1 ไว้ mc.forehand = 20 + 1 * 10;// ตั้งค่าการตี forehand ด้วย20+1 คูณด้วย10 mc.backhand = 20 + 5.000000E-001 * 10;// ตั้งค่าการตี backhand ด้วย20+ 5.000000E-001คูณด้วย10 mc.serve = 30 + 3 * 10;// ตั้งค่าการตี serve ด้วย30 + 3คูณด้วย10 mc.footwork = 6 + 3.000000E-001 * 10;// ตั้งค่า วิ่ง ด้วย6 +3.000000E-001คูณด้วย10 mc.netplay = 10;// ตั้งค่าการเล่นnetplay ด้วย 10 mc.tech = 10;// ตั้งค่าการตี ลูกเทคนิค } }} // end of forserver = 0; // ตั้งค่าตัวแปร ผู้เสริฟเป็น 0receiver = 1; // ตั้งค่า ผู้รับ 1textwinner ;// ตั้งค่าตัวแปร text winnergpoint = [0, 0]; // สร้างตัวแปร gpoint เก็บค่าx yinit_game(); //เรียกฟังก์ชน initgame ่ัonEnterFrame = function (){ user_action(); move_ball(); check_pad2() if(modeplay == "vscom") { move_enemy(); } else { move_player2() }};function init_game(){ //ตั้งค่าเริ่มต้นให้กับเกมส์ serve_pos = 1; // ตั้งค่าตัวแปร servepos ให้เป้น 1
  5. 5. play_winner = -1; //ตั้งค่า playerwinner = -1 fault_cnt = 0;//ตั้งค่า fault เป็น 0 point = [0, 0]; //ตั้งค่า point เป็น 0 ,0 score_txt = pname[server] + " 0 - 0 " + pname[receiver]; // ที่หน้าจอเกม ใส่ข้อความเป็น ชอผเลน สกอร์ และชือผูเล่นที่ 2 หรือคอม ่ื ้ ่ ่ ้ if(modeplay == "vscom") // ถา หาก mode = vs com ้ { number_txt.text._visible = true; //ให้โชว์แถบข้อความตัวแปร number_txt number_txt.text = "Score : "+numscore; // ให้ขอความนี้ โชว์คะแนนที่เราได้รับ } else // ถาหากเปน mode vsplayer ้ ้ { number_txt.text._visible = false; //ให้ซ่อนแถบข้อความที่หน้าจอ } init_play(); // เรยกฟกงชน init_play ี ั ่ั cord.gotoAndStop(cordlevel) //ให้คอร์ดสนามเปลี่ยนไปตาม ตัวเลขตัวแปรcordlevel} // End of the functionfunction init_play(){ rally_cnt = 0; //ตั้งค่า rally_cnt เท่ากับ 0 play_result = 0;//ตั้งค่า play_result เป็น 0 mcMes.gotoAndStop("inplay"); // ให้มูปวี่คลิป mcMes ไปเล่นเฟรม inplay var i = 0; // ตั้ค่า i เป็น 0 while (i < 2) //หาก ค่า i น้อยกว่า 2 { var mc = eval("mcPlayer" + i); //เรียกมุปวี่คลิฟ คนเล่นว่าเป้นคนไหน mc.vy = COURT_H + 20; //ให้ค่า nc.vy เป็น ความสูงของคอร์ด + 20 if (i == 1) // ถา i เท่ากับ 1 ้ { mc.vy = mc.vy * -1; //ให้ค่า mc.vy เป้นค่าเท่ากับ ค่าของ mc.vy คุณด้วย -1 } // end if if (server == i) // ถ้าตัวแปรserver เท่ากับ ค่า i { mc.vx = serve_pos * 20; //ให้ค่า mc.vx เท่ากับ ค่าของ serve_pos คุณด้วย 20 start_serve(i); //เรยกฟงกชน start_serve ตัวแปรที่ใส่ไปคือ ค่าตัวเลข 0 และ 1 ซึ่ง 0 ี ั ่ัจะเป้น ผู้ เล่น 1 คือคอมพิวเตอร์ } else// ถ้าตัวแปรserver ไม่เท่ากับ ค่า i { mc.vx = serve_pos * -COURT_W * 2 / 3; //ตั้งคาตัวแปร mc.vx เท่ากับค่าของserve_posคุณด้วยค่าของ -COURT_W คุณด้วย 2 แล้วทั้งหมดหาร 3
  6. 6. mc.stat = PS_WAIT; // ให้ค่า มุปวี่คลิฟที่ถูกเลือกที่ ตั้งสถานะเป็ รอ mc.gotoAndStop("wait");// ให้ มุปวี่คลิปเล่นเฟรม wait mc.wm = WM_WAIT; //ตั้งค่า wm เป้นค่า WM_WAIT } // end else if if (server == 1)//ถ้าตัวแปร server เทกับ 1 { mc.vx = mc.vx * -1;//ให้ค่า mc.vx เท่ากับ ค่าของ mc.vx คูณด้วย -1 } // end if player_position(i);//เรยกฟงกชน player_position ี ั ่ํ mc.net_flg = 0;//ให้ค่าnet_flg ของมูฟวี่คลิปที่เลือกอยุ่เป้น 0 ++i; //+ค่า i } // end while init_ball(); //เรยกฟงกชน init_ball ี ั ่ํ debug_txt = "";} // End of the functionfunction start_serve(pn){ var mc = eval("mcPlayer" + pn); //ตั้งให้มูปวี่คลิฟที่ถูกลือกคือชื่อของ ค่ามุปวี่คลิปตามตวเลขที่เราลือกอยุ่ (0 = player 1 computer) mc.stat = PS_SERVE; // ใหสถานะมฟวคลปตวนนเปน พร้อมเสริฟ ้ ู ่ี ิ ั ้ั ้ mc.cnt = 0; //ใส่คา cnt เทากับ0 ่ mc.gotoAndStop("serve");// ให้มูปวี่คลปนั้นเล่นเฟรม serve} // End of the functionfunction start_toss(pn){ var mc = eval("mcPlayer" + pn);//ตั้งให้มูปวี่คลิฟที่ถูกลือกคือชื่อของ ค่ามุปวี่คลิปตามตวเลขที่เราลือกอยุ่ (0 = player 1 computer) mc.stat = PS_TOSS;// ใหสถานะมฟวคลปตวนนเปน toss หรือการตีลูก ้ ู ่ี ิ ั ้ั ้ mc.gotoAndStop("toss");// ให้มูปวี่คลปนั้นเล่นเฟรม toss mc.cnt = 0;//ใส่คา cnt เทากับ0 ่} // End of the functionfunction start_stroke_user(pn){ var mc = eval("mcPlayer" + pn);//ตั้งให้มูปวี่คลิฟที่ถูกลือกคือชื่อของ ค่ามุปวี่คลิปตามตวเลขที่เราลือกอยุ่ (0 = player 1 computer) mc.stat = PS_STROKE;// ใหสถานะมฟวคลปตวนนเปน stroke ้ ู ่ี ิ ั ้ั ้ mc.cnt = 0;//ใส่คา cnt เทากับ0 ่ var nx = mcBall.vx + mcBall.ax * 2; //ตั้งค่าตัวแปร nx ให้เท่ากับ ความเร็วของลูกบอลคุณอัตราเร่งของลุกบอล คูณ้วย 2 if (mcBall.vh > 70 && nx > mc.vx + HIT_X1_SMASH && nx < mc.vx +HIT_X2_SMASH) //ถ้าความสูงของลูกบอล มากกว่า 70 และ ค่า nx มากกว่า ค่าx มูปวี่คลิป
  7. 7. + ด้วยตัวแปรHIT_X1_SMASH และ ค่า nx น้อยกว่า ค่า xของ มูฟวี่คลป บวกด้วยHIT_X2_SMASH { mc.stroke_type = ST_SMASH; //ตั้งค่า mc.stroke_type ให้เป็นST_SMASH mc.hit_x1 = HIT_X1_SMASH;//ให้ค่า mc.hit_x1 เป็นHIT_X1_SMASH mc.hit_x2 = HIT_X2_SMASH;// mc.hit_x2 เป็น HIT_X2_SMASH mc.gotoAndStop("smash");//ให้มูฟวี่คลิปเล่นเฟรม smash หรือการตบลูก } else if (mcBall.vx + mcBall.ax * 3 < mc.vx) //ถา ตําแหน่งของลุกบอล คูรด้วย 3 ยังมีค่า ้มากว่า มูฟวี่คลิป { mc.stroke_type = ST_BACK; //ให้mc.stroke_type เป้น ST_BACK mc.hit_x1 = HIT_X1_BACK;//ให้ค่า mc.hit_x1 เป็นHIT_X1_BACK mc.hit_x2 = HIT_X2_BACK;//ให้ค่า mc.hit_x2 เป็นHIT_X2_BACK mc.gotoAndStop("back");//ให้มูฟวี่คลิปเล่นเฟรม back หรือตีลูกหลังมือ } else // ถ้าไม่ใช่ ทั้งหมด { mc.stroke_type = ST_FORE; //ให้mc.stroke_type เป้น ST_FORE mc.hit_x1 = HIT_X1_FORE;//ให้ค่า mc.hit_x1 เป็น HIT_X1_FORE mc.hit_x2 = HIT_X2_FORE;//ให้ค่า mc.hit_x2 เป็น HIT_X2_FORE mc.gotoAndStop("fore");//ให้มูฟวี่คลิปเล่นเฟรม fore หรือตีลูกหน้ามือ } // end else if mc.hit_y1 = HIT_Y1; //ให้่ค่า mc.hit_y1เทากับHIT_Y1 mc.hit_y2 = HIT_Y2;//ให้่ค่า mc.hit_y2เทากับHIT_Y2} // End of the functionfunction check_hit(pn){ var mc = eval("mcPlayer" + pn); //ตั้งให้มูปวี่คลิฟที่ถูกลือกคือชื่อของ ค่ามุปวี่คลิปตามตวเลขที่เราลือกอยุ่ (0 = player 1 computer) if (mcBall.vx < mc.vx + mc.hit_x1)// ถ้าตําแหน่งxของลุกบอล มคานอยกวา ตําแหน่งของ ี ่ ้ ่มูฟวี่คลิปผู้เล่นที่เลือก + mc.hit_x1 { return (0);// คืนค่าเป้น0 } // end if if (mcBall.vx > mc.vx + mc.hit_x2)// ถ้าตําแหน่งxของลุกบอล มีค่ามากกว่า ตําแหน่งของมูฟวี่คลิปผู้เล่นที่เลือก + mc.hit_x2 { return (0); } // end if if (mcBall.vy < mc.vy + mc.hit_y1)// ถ้าตําแหน่งyของลุกบอล มคานอยกวา ตําแหน่งของ ี ่ ้ ่มูฟวี่คลิปผู้เล่นที่เลือก + mc.hit_y1 {
  8. 8. return (0); } // end if if (mcBall.vy > mc.vy + mc.hit_y2)// ถ้าตําแหน่งyของลุกบอล มคานอยกวา ตําแหน่งของ ี ่ ้ ่มูฟวี่คลิปผู้เล่นที่เลือก + mc.hit_y2 { return (0); } // end if if (mcBall.vh > HIT_Z) //ถ้าค่า vh ของลูกบอลมีมากกว่าHIT_Z { return (0); } // end if return (1);// คืนค่าตัวเลข1} // End of the functionfunction set_ball_dest_user(){ if (mcBall.side == 0) // ถา ค่า side ของลูกบอลมีค่าเป้น 0 ้ { return;//ให้รีเทริ์นค่าทิ้ง } // end if check_pad();//เรยกฟงกชนcheck_pad ี ั ่ั var _loc6 = 1; //ให้ค่า _loc6 เทากับ 1 if (pad_y < 0)// หากค่า y น้อยกว่า 0 { _loc6 = 0;//ให้ค่า _loc6 เทากับ 0 } // end if if (pad_y > 0)// หากค่า y มากกว่า0 { _loc6 = 2;//ให้ค่า _loc6 เทากับ 2 } // end if var _loc5 = 1;//ให้ค่า _loc5 เทากับ 1 if (pad_x < 0)// หากค่า x น้อยกว่า 0 { _loc5 = 0;//ให้ค่า _loc5 เทากับ 0 } // end if if (pad_x > 0)// หากค่า x มากกว่า 0 { _loc5 = 2;//ให้ค่า _loc5 เทากับ 2 } // end if var _loc1; //ตั้งค่า _loc1 _loc2 _loc3 _loc7 var _loc2; var _loc3; var _loc7; if (rally_cnt == 0) // ถ้าค่า rally_cnt เท่ากับ 0 { if (serve_pos > 0) //ถา serve_pos มากกว่า 0 ้
  9. 9. { _loc1 = -COURT_W; //ให้ _loc1 เท่ากับค่าติดลบของตัวแปรCOURT_W _loc2 = 0;//_loc2 เทากับ 0 } else { _loc1 = 0; //ให้ _loc1 เท่ากับ0 _loc2 = COURT_W; //ให้ _loc2 เท่ากับค่าของตัวแปรCOURT_W } // end else if _loc3 = -SERVE_H; //ให้ค่า _loc3 เทากับ ค่าติดลบของ SERVE_H _loc7 = -SERVE_H / 2;//ให้ค่า _loc7 เทากับ ค่าติดลบของ SERVE_H หาร 2 } else// ถ้าค่า rally_cnt ไม่เท่ากับ 0 { _loc1 = -COURT_W;//ให้ _locๅ เท่ากับค่าติดลบของตัวแปรCOURT_W _loc2 = COURT_W;//ให้ _loc2 เท่ากับค่าของตัวแปรCOURT_W _loc3 = -COURT_H;//ให้ _loc- เท่ากับค่าติดลบของตัวแปรCOURT_H _loc7 = -COURT_H / 3;////ให้ _loc7 เท่ากับค่าของตัวแปรCOURT_H ski 3 } // end else if var _loc9 = (_loc2 - _loc1) / 3; //ตั้งค่าตัวแปร _loc9 โดย นําค่า _loc2 - _loc1หารด้วย3 var _loc8 = (_loc7 - _loc3) / 3;//ตั้งค่าตัวแปร _loc9 โดย นําค่า _loc2 - _loc1 var _loc11 = _loc1 + _loc9 * _loc6 + Math.random() * _loc9; // ตั้งคาตัวแปร _loc11 var _loc10 = _loc3 + _loc8 * _loc5 + Math.random() * _loc8; // ตั้งคาตัวแปร _loc10 var _loc4 = mc.forehand;// ตั้งคาตัวแปร _loc4 ด้วยค่าของ การตี forehand if (mcPlayer0.stroke_type == ST_BACK) //ถา ผู้เล่นมีสถานะตัวแปร stroke_type ้เท่ากับ ST_BACK { _loc4 = mc.backhand;//ให้ค่า _loc4เท่ากับ ค่า backhand } if (mcPlayer0.stroke_type == ST_SMASH) //ถา ผู้เล่นมีสถานะตัวแปร stroke_type ้เท่ากับ ST_SMASH { _loc4 = mc.serve;//ให้ค่า _loc4เท่ากับ ค่า serve } start_move_ball(_loc11, _loc10, 0, _loc4);//นําค่าที่ได้มาคํานวณใน ฟงกชน ั ์ ่ัstart_move_ball}function start_wait(pn){ var mc = eval("mcPlayer" + pn);//ตั้งให้มูปวี่คลิฟที่ถูกลือกคือชื่อของ ค่ามุปวี่คลิปตามตวเลขที่เราลือกอยุ่ (0 = player 1 computer) if (mc.stat == PS_STROKE && mc.stroke_type == ST_SMASH) //ถาสถานะ ของผู้เล่น ้เป็น PS_STROKE และ สถานะการตีลกเป็ร ST_SMASH ู
  10. 10. { var ay = -20; //ให้ค่า ay เทากับ -20 if (pn == 1)// ถา pn เท่ากับ 1 ้ { ay = ay * -1;//ให้ค่า ay เป็นค่าตรงกันข้ามโดยให้ -1 เข้าไปคูณ } mc.vy = mc.vy + ay; // ให้ค่า y เท่ากับ ค่า y ปัจจุบน บวดด้วย ค่า ay ั if (pn == 0 && mc.vy < 0) //ถา pn เท่ากับ 0 และ ค่า y ของผู้เล่น น้อยกว่า 0 ้ { mc.vy = 0; //ให้ค่า y ของผู้เล่นเป็น 0 } if (pn == 1 && mc.vy > 0) // ถา ค่า pn เท่ากับ 1 และ ค่า y ของผูเล่นมากกว่า 0 ้ ้ { mc.vy = 0;// ให้ค่า y เป็น 0 } player_position(pn);// เรยกฟงกชน player_positio โดดย ส่งค่า ไปเป็น ตัวผู้เล่น ว่า ี ั ่ัเป็นคอมพิวเตอร์หรือู๔้เล่นเอง } mc.stat = PS_WAIT;// ตงสถานะเปน wait ้ั ้ mc.gotoAndStop("wait");//เล่นเฟรม wait if (pn == 1 && mcBall.vy < mc.vy) // ถา ค่า pn เท่ากับ 1 และ ตําแหน่งลุกบอล มากกว่า ้ตําแหน่งyของ ผูเล่น ้ { mc.stat = PS_AFTER; // ตังสถานะผูเล่น เป้น after ้ ้ mc.gotoAndStop("win"); // ให้มุฟวี่คลิปเล่นเฟรม win } if (mc.net_flg == 0) // ถา net_flg ของผู้เล่น เท่ากับ 0 ้ { if (mc.netplay > Math.random() * 20) //ถ้าค่า netplay มากกว่า ค่าแรนดอมระหว่าง 1- 20 { mc.net_flg = 1; //ให้ค่าnet_flag เป็น 1 } } mc.wm = WM_MOVE; //ตั้งค่า mc.wm = WM_MOVE mc.dest_x = 0;// ให้ค่า dest_x เป็น 0 mc.dest_y = -COURT_H;//ให้ค่าdest_y เป็นค่าติดลบของ ตัวแปร COURT_H if (mc.net_flg)//mc.net_flg ถ้ามีค่าเป้นจริง { mc.dest_x = mcBall.dx / 3; // ให้ค่า mc.dest_x เทากับ mcBall.dx / 3 mc.dest_y = -150;// ให้ค่า mc.dest_y เทากับ -150 }}
  11. 11. function start_stroke_com(pn)//เหมือนกัย ฟงกชน start_stroke_user ทุกอย่างแต่เปลี่ยน ั ่ัเป้นการคํานวณของตัวเล่นที่เป้นคอมพิวเตอร์{ var mc = eval("mcPlayer" + pn); mc.stat = PS_STROKE; mc.cnt = 0; var nx = mcBall.vx + mcBall.ax * 2; if (mcBall.vh > 70 && nx > mc.vx - HIT_X2_SMASH && nx < mc.vx -HIT_X1_SMASH) { mc.stroke_type = ST_SMASH; mc.hit_x1 = -HIT_X2_SMASH; mc.hit_x2 = -HIT_X1_SMASH; mc.gotoAndStop("smash"); } else if (mcBall.vx + mcBall.ax * 3 > mc.vx) { mc.stroke_type = ST_BACK; mc.hit_x1 = -HIT_X2_BACK; mc.hit_x2 = -HIT_X1_BACK; mc.gotoAndStop("back"); } else { mc.stroke_type = ST_FORE; mc.hit_x1 = -HIT_X2_FORE; mc.hit_x2 = -HIT_X1_FORE; mc.gotoAndStop("fore"); } // end else if mc.hit_y1 = -HIT_Y2; mc.hit_y2 = -HIT_Y1;} // End of the functionfunction set_ball_dest_com(){ var cx = Math.floor(Math.random() * 3);// ให้ค่า cx เป้ค่าแรนดอของ 0-3 var cy = Math.floor(Math.random() * 3);// ให้ค่า cy เป้ค่าแรนดอของ 0-3 var x1;// สร้างตัวแปร x1 x2 y1 y2 var x2; var y1; var y2; if (rally_cnt == 0) // ถา rally_cnt เท่ากับ 0 ้ { if (serve_pos > 0) // ถา serve_posมากกว่า 0 ้ { x1 = -COURT_W; // ให้ค่า x1 เท่ากับ ค่าติดลบ ของ COURT_W x2 = 0;// x2 เทากับ 0 }
  12. 12. else // ถา rally_cnt ไม่เท่ากับ 0 ้ { x1 = 0; // x 1 เท่ากับ 0 x2 = COURT_W;// x2 ท่ากับ COURT_W } y1 = -SERVE_H; // y1 เท่ากับ ค่าติดลบ SERVE_H y2 = -SERVE_H / 2; // y2 เท่ากับ ค่าติดลบ SERVE_H หารด้วย 2 } else { if (mcPlayer1.tech > Math.random() * 10)// ถ้ามูฟวี่คลิป mcPlayer1 มีค่า techมากกว่าคาแรนดอม ระหว่าง 1-10 { if (mcPlayer0.vx < 0) // ถา mcPlayer0 ตําแหน่ง x มากกว่า 0 ้ { cx = 0; //ให้ cx เท่ากับ 0 } else //หากตําแหน่งx มากกว่าเท่ากับ 0 { cx = 2;//ให้ cx เท่ากับ 2 } } if (mcPlayer1.net_flg) // ถาmcPlayer1.net_flg มีค่าเป็นจริง ้ { cy = Math.floor(Math.random() * 2); //กําหนดค่า cy เท่ากับค่าแรนดอมระกว่าง 0-2 } x1 = -COURT_W;//ให้ x1 เท่ากับค่าติดลบค่าตัวแปรของCOURT_W x2 = COURT_W;//ให้ x2เท่ากับค่าตัวแปรของCOURT_W y1 = -COURT_H;//ให้ y1 เท่ากับค่าติดลบค่าตัวแปรของCOURT_H y2 = -COURT_H / 3;//ให้ y2 เท่ากับค่าติดลบค่าตัวแปรของCOURT_H ski 3 } var w = (x2 - x1) / 3;// สร้างตัวแปร w เท่ากับ x2 ลบ x1 หาร 3 var h = (y2 - y1) / 3;/// สร้างตัวแปร h เท่ากับ y2 ลบ y1 หาร 3 var x = x1 + w * cx + Math.random() * w; // สร้างตัวแปร x เท่ากับ x1+ w คูณ cx + ด้วยค่าแรนดอมของ ตั้งแต่ตัวที่ 0 ถึง ตัวที่ w var y = y1 + h * cy + Math.random() * h;// สร้างตัวแปร y เท่ากับ y1+ h คูณ cy + ด้วยค่าแรนดอมของ ตั้งแต่ตัวที่ 0 ถึง ตัวที่ h x = x * -1; //x เท่ากับ x คุณด้วย -1 y = y * -1;// y เท่ากับ y คูณด้วย -1 mc = mcPlayer1; //กานด ตัวแปร mc ให้เทกับ ตัวคอมพิวเตอร์ ํ var s = mc.forehand; //สร้างตัวแปร s ให้เท่ากับ ค่า ของ mc.forehand if (mcPlayer1.stroke_type == ST_BACK) // ถา mcPlayer1.stroke_type มีค่าเทา ้กบST_BACK ั
  13. 13. { s = mc.backhand;// ให้ s เท่ากับ ค่า mc.backhand } // end if if (mcPlayer1.stroke_type == ST_SMASH)// ถา mcPlayer1.stroke_type มีค่าเทา ้กบST_SMASH ั { s = mc.serve;// ให้ s เท่ากับ ค่า mc.serve } // end if start_move_ball(x, y, 1, s); //เรยกฟงกชน start_move_ball ี ั ่ั} // End of the functionfunction player_position(n){ var mc = eval("mcPlayer" + n); //ตั้งให้มูปวี่คลิฟที่ถูกลือกคือชื่อของ ค่ามุปวี่คลิปตามตวเลขที่เราลือกอยุ่ (0 = player 1 computer) var per = 1 + mc.vy / COURT_H / 10; //สร้างตัวแปร per เทากับ ค่าของ 1 + mc.vy /COURT_H / 10 var x = mc.vx * per; // สร้างตัวแปร x ให้เท่ากับ mc.vx * per var y = mc.vy / 2;// สร้างตัวแปร y ให้เท่ากับ mc.vy / 2 mc._x = SCREEN_OX + x;// เซ็ตตําแหน่ง x ของมูปวี่คลิปเท่ากับ SCREEN_OX + x mc._y = SCREEN_OY + y;// เซ็ตตําแหน่ง y ของมูปวี่คลิปเท่ากับ SCREEN_OY + y mc._xscale = 60 * per;//ปรับขนาดกว้าง ของมูฟวี่คลิป เท่ากับ 60* per mc._yscale = 60 * per;//ปรับขนาดยาวของมูฟวี่คลิป เท่ากัย 60 *per var mc2 = eval("mcShadow" + n); //สร้างตัวแปร mc2 โดยเรียก รุปเงา เข้ามา mc2._x = mc._x; // กําหนดตําแหน่งเงา ให้อยุ่เท้าของมูฟวี่คลิป mc2._y = mc._y;} // End of the functionfunction init_ball(){ var mc = eval("mcPlayer" + server); //ตั้งให้มูปวี่คลิฟที่ถูกลือกคือชื่อของ ค่ามุปวี่คลิปตามตวเลขที่เราลือกอยุ่ (0 = player 1 computer) mcBall.ax = 0; // ตั้งค่าเริ่มต้น mcBall.ay = 0; mcBall.vx = mc.vx; mcBall.vy = mc.vy; mcBall.vh = 0; mcBall.up = 0; mcBall.down = 0; mcBall.side = 0; if (server == 0) // ถา server เท่ากับ 0 ้ { mcBall.side = 1; // ให้ side ของ บอล เท่ากับ 1 } // end if mcBall.area = 0;//area ของบอล เท่ากับ 0 if (server == 1) // ถา server เทากับ 1 ้
  14. 14. { mcBall.area = 1;//area ของบอล เท่ากับ 1 } // end if mcBall.moving = 0; //moving ของบอล เท่ากับ 0 mcBall._visible = false; //ซ่อนรุปบอล mcBallShadow._visible = false;//ซ่อนเงา} // End of the functionfunction start_toss_ball(pn){ var mc = eval("mcPlayer" + pn);//ตั้งให้มูปวี่คลิฟที่ถูกลือกคือชื่อของ ค่ามุปวี่คลิปตามตวเลขที่เราลือกอยุ่ (0 = player 1 computer) mcBall.ax = 0; //กําหนด ax ay ของบอลเทากับ 0 mcBall.ay = 0; var ax = 10; //สร้างตัวแปร ax เทากับ 10 if (pn == 1)// ถา pm เท่ากับ 1 ้ { ax = ax * -1; //ให้ ax เท่ากับ ax คุณ -1 } mcBall.vx = mc.vx + ax; // กําหนด ค่า x ของบอลเท่ากับ mc.vx + ax; mcBall.vy = mc.vy;//กําหนดตําแหน่ง y ขอบอลเท่ากับ mc.vy mcBall.vh = TOSS_H;// กําหนดความสูง เทากับ TOSS_H mcBall.up = 10;//ให้ตัวแปร up เท่ากับ 10 mcBall.down = 0;// ให้ตัวแปร down เท่ากับ 0 mcBall.side = 0;// side ของลุกบอล เท่ากับ 0 if (pn == 0)// ถา pm เท่ากับ 0 ้ { mcBall.side = 1; //ให้ ค่า side ของบอลเท่ากับ 1 } mcBall.bound = 0; // กําหนดค่า bound ของลูกบอลเท่ากับ 0 mcBall.moving = 1; // กําหนดค่า mobing ของลุกบอล เท่ากับ 1 mcBall._visible = true; // โชว์ลูกบอลทางหน้าจอ mcBallShadow._visible = true;// โชว์เงา}function start_move_ball(dx, dy, side, max_speed){ if (rally_cnt == 1 && mcBall.bound == 0) // ถา rally_cnt เท่ากับ 1 และ ้mcBall.bound เท่ากับ 0 { set_result(RESULT_VOLLEY); // เรยกฟงกชน set_result โดยใส่ค่า ี ั ่ัRESULT_VOLLEY } mcBall.side = side; // เซ็ตตัแปร side ของบอลให้เท่ากับตัวแปร side mcBall.dx = dx; // / เซ็ตตัแปร dx ของบอลให้เท่ากับตัวแปร dx
  15. 15. mcBall.dy = dy;// เซ็ตตัแปร dy ของบอลให้เท่ากับตัวแปร dy var _loc3 = mcBall.dx - mcBall.vx; // สร้างตัวแปร _loc3 เท่ากับmcBall.dx -mcBall.vx; var _loc2 = mcBall.dy - mcBall.vy;// สร้างตัวแปร _loc2 เท่ากับmcBall.dy - mcBall.vy; var _loc4 = Math.sqrt(_loc3 * _loc3 + _loc2 * _loc2); // สร้างตัวแปร _loc4 เท่ากับสแควรูท(_loc3 * _loc3 + _loc2 * _loc2); for (i = 0; i < 5; i++)// วนลบ 5 รอบ ู { var _loc1 = max_speed - i * 4; //สร้างตัวแปร _loc1เท่ากับ max_speed - i * 4; if (check_hit_net(_loc3, _loc2, _loc1, _loc4) == 1) // ถา การเรยก ฟังกชั่นของ ้ ีcheck_hit_net ค่าที่ได้ เท่ากับ 1 { break; //เบรค } } var _loc5 = _loc4 / _loc1; //สร้างตัวแปร _loc5 เท่ากับ_loc4 / _loc1; var _loc7 = _loc5 * (_loc5 - 1) * GRAVITY / 2;//สร้างตัวแปร _loc7 เท่ากับ _loc5 *(_loc5 - 1) * GRAVITY / 2 mcBall.ax = _loc3 / _loc5; // ตั้งค่า ax ของลุกบอลเท่ากับ_loc3 / _loc5; mcBall.ay = _loc2 / _loc5;// ตั้งค่า ay ของลุกบอลเท่ากับ_loc2 / _loc5; mcBall.up = (_loc7 - mcBall.vh) / _loc5; // ตั้งค่า up ของลุกบอลเท่ากับ(_loc7 -mcBall.vh) / _loc5; mcBall.down = 0;//ตั้งค่า down ของลุกบอล เท่ากับ 0 mcBall.bound = 0;//ตั้งค่า bound ของลูกบอล เท่ากับ 0 ++rally_cnt; //rally_cnt + เพิ่ม 1 aaa.start();//ใชฟงกชนsndHit.start ้ ั ่ั}function check_hit_net(sx, sy, speed, dt){ var _loc6 = dt / speed; //สร้างตัวแปร _loc6 เทกับdt / speed; var _loc7 = _loc6 * (_loc6 - 1) * GRAVITY / 2; //สร้างตัวแปร _loc7 เทากับ _loc6 *(_loc6 - 1) * GRAVITY / 2; var _loc8 = sx / _loc6;//สร้างตัวแปร _loc8 เทากับ sx / _loc6; var _loc4 = sy / _loc6;//สร้างตัวแปร _loc4 เทากับ sy / _loc6; var _loc5 = (_loc7 - mcBall.vh) / _loc6; //สร้างตัวแปร _loc5 เท่ากับ(_loc7 -mcBall.vh) / _loc6; var _loc3 = 0; //สร้างตัวแปร _loc3 เทาากับ 0 var _loc2 = mcBall.vy; //สร้างตัวแปร _loc2 เทาากับ mcBall.vy var _loc1 = mcBall.vh;//สร้างตัวแปร _locๅ เทาากับ mcBall.vh while (true) { _loc1 = _loc1 + (_loc5 - _loc3); //ให้ตัวแปร _loc1 เท่ากับ_loc1 + (_loc5 - _loc3); _loc3 = _loc3 + GRAVITY;//ให้ตัวแปร _loc3 เท่ากับ_loc3 + GRAVITY;
  16. 16. _loc2 = _loc2 + _loc4;//ให้ตัวแปร _loc2 เท่ากับ_loc2 + _loc4; if (_loc1 < 0)//ถ้าค่า _loc1 น้อยกว่า 0 { return (0); } if (mcBall.side == 0 && _loc2 < 0)// ถา ค่า side ของบอล เท่ากับ 0 และ _loc2 นอย ้ ้กว่า 0 { if (_loc1 > NET_H + 10) // ถา _loc1 มากกว่า NET_H + 10 ้ { return (1);//รีเทรินค่า 1 } else//ถ้าไม่ใช่ ให้รีเทรินค่า 0 { return (0); } } if (mcBall.side == 1 && _loc2 > 0)// ถา side ของบอล เท่ากับ 1 และ _loc2 มากกว่า ้0 { if (_loc1 > NET_H + 10)// ถา _loc1 มากกว่า NET_H + 10 ้ { return (1);// รีเทรินค่า เป้น 1 continue;// ให้ระบบทํางานต่อ } return (0); } }}function move_ball(){ if (mcBall.moving != 1) // ถาmcBall.mobing มีค่าเป้น 1 ้ { return; // รีเทรินค่ากลับไป } mcBall.vh = mcBall.vh + (mcBall.up - mcBall.down);//ให้ mcBall.vh เทากับmcBall.vh + (mcBall.up - mcBall.down); if (mcBall.vh < 0)// ถา mcBall.vh น้อยกว่า 0 ้ { mcBall.up = (mcBall.down - mcBall.up) * 2 / 3;//ให้ mcBall.up เท่ากับ(mcBall.down - mcBall.up) * 2 / 3; if (mcBall.up < 1.300000E+000) {//ถา mcBall.up น้อยกว่า 1.300000E+000 ้ mcBall.vh = 0;// ให้ mcBall.vh เเท่ากับ 0 mcBall.moving = 0; // ให้ mcBall.moving เเท่ากับ 0
  17. 17. } mcBall.down = 0; // ให้ค่า mcBall.down เท่ากับ 0 mcBall.vh = 0;// ให้ค่า mcBall.vh เท่ากับ 0 mcBall.ax = mcBall.ax * 3 / 5; // mcBall.ax เท่ากับ mcBall.ax * 3 / 5; mcBall.ay = mcBall.ay * 3 / 5; //mcBall.ay เท่ากับ mcBall.ay * 3 / 5; ++mcBall.bound; //บวกค่า mcBall.bound เพิ่มอีก 1 mcBall.vx = mcBall.vx + mcBall.ax; //ให้ค่า mcBall.vx เท่ากับ mcBall.vx +mcBall.ax; mcBall.vy = mcBall.vy + mcBall.ay; //ให้ค่า mcBall.vy เท่ากับ mcBall.vy +mcBall.ay; draw_ball();//เรียกฟังก์ชน draw_ball ่ั mcBound._x = mcBall._x; //mcBound._x ,ให้มีค่าเท่ากับ mcBall._x; mcBound._y = mcBall._y;//mcBound._y ,ให้มีค่าเท่ากับ mcBall._y; mcBound.gotoAndStop(2);//ให้mcBound ไปเล่นเฟรมที่ 2 if (mcBall.bound == 1) // ถา mcBall.bound มีค่าเทากับ 1 ้ { if (rally_cnt <= 1) // ถา rally_cntมีค่าน้อยกว่าเท่ากับ 1 ้ { if (check_out_serve()) //ถา ในฟงกชน check_out_serve() มีค่าเป็น จริง ้ ั ่ั { set_result(RESULT_FAULT);//เรยกฟงกชน set_result โดยส่งค่า ี ั ่ัRESULT_FAULT } } else if (check_out())//ถา ฟกงชน check_out มีค่าเป้นจจรืง ้ ั ่ั { set_result(RESULT_OUT);//เรยกฟงกชน set_result โดยส่งค่า RESULT_OUT ี ั ่ั } } else if (mcBall.bound == 2) // ถา mcBall.bound มีค่าเท่ากับ 2 ้ { set_result(RESULT_MISS);//เรยกฟงกชน set_result โดยส่งค่า RESULT_MISS ี ั ่ั } sndBound.start();//เรยกฟงกชน sndBound.start(); ี ั ่ั draw_ball();//เรยกฟงกชน ี ั ่ั draw_ball(); } else { mcBall.down = mcBall.down + GRAVITY;// ให้ค่า mcBall.downเท่ากับmcBall.down + GRAVITY; mcBall.vx = mcBall.vx + mcBall.ax;// ให้ค่า mcBall.vxเท่ากับ mcBall.vx +mcBall.ax; mcBall.vy = mcBall.vy + mcBall.ay;// ให้ค่า mcBall.vyเท่ากับ mcBall.vy +mcBall.ay
  18. 18. draw_ball();//เรยกฟงกชน draw_ball ี ั ่ั }}function draw_ball(){ var _loc1 = 1 + mcBall.vy / COURT_H / 10; // ให้ค่า _loc1 เทากับ 1 + mcBall.vy /COURT_H / 10; var _loc3 = mcBall.vx * _loc1;// ให้ค่า _loc3 เท่ากับ mcBall.vx * _loc1; var _loc2 = mcBall.vy / 2; //ให้ค่า_loc2 เท่ากับ mcBall.vy / 2; var _loc4 = mcBall.vh * _loc1; // ให้ค่า _loc4 เท่ากับ mcBall.vh * _loc1; mcBall._x = SCREEN_OX + _loc3;// ให้ค่า mcBall._x เท่ากับ SCREEN_OX +_loc3; mcBall._y = SCREEN_OY + _loc2 - _loc4;// ให้ค่า mcBall._y เท่ากับSCREEN_OY + _loc2 - _loc4; mcBall._xscale = 100 * _loc1;//ให้ค่า mcBall._xscale เท่ากับ 100 คูณ _loc1 mcBall._yscale = 100 * _loc1;//ให้ค่า mcBall._yscale เท่ากับ 100 คูณ _loc2 mcBallShadow._x = SCREEN_OX + _loc3;//ให้ค่า mcBallShadow._x เท่ากับSCREEN_OX + _loc3 mcBallShadow._y = SCREEN_OY + _loc2;///ให้ค่า mcBallShadow._y เท่ากับSCREEN_OY + _loc2} // End of the functionfunction check_out_serve(){ var _loc2;//สร้างตัวแปร _loc2 _loc4 _loc1 _loc3 var _loc4; var _loc1; var _loc3; if (server == 0)//ถา server เทากับ 0 ้ { if (serve_pos > 0) // ถา serve_pos มาก 0 ้ { _loc2 = -COURT_W; //ให้ _loc2 เท่ากับ -COURT_W; _loc1 = 0;//ให้ _loc1 เทากับ 0 } else // ถา serve_pos น้อยกว่าเท่ากับ 0 ้ { _loc2 = 0; // ให้ _loc2 เทากับ 0 _loc1 = COURT_W; // ให้ _loc1 เท่ากับ COURT_W; } _loc4 = -SERVE_H; // ให้ _loc 4 เท่ากับ -SERVE_H; _loc3 = 0;//ให้ _loc3 เท่ากับ 0 } else { if (serve_pos > 0) // ถา serve_pos ากกว่า 0 ้
  19. 19. { _loc2 = 0; //ให้ _loc2 เท่ากับ 0 _loc1 = COURT_W; // ให้ _loc1 เท่ากับ COURT_W } else// ถา serve_pos น้อยกว่าเท่ากับ 0 ้ { _loc2 = -COURT_W; //ให้ _loc2 เท่ากับ -COURT_W; _loc1 = 0;//ให้ _loc1 เท่ากับ 0 } _loc4 = 0; // ให้ _loc4 เท่ากับ 0 _loc3 = SERVE_H; // ให้ _loc3 เ่ากับ SERVE_H } if (mcBall.vx < _loc2)//ถา mcBall.vx น้อยกว่า _loc 2 ้ { return (1);// รีเทรินค่าเป้น 1 } // end if if (mcBall.vx > _loc1) //ถา mcBall.vx มากกว่า _loc1 ้ { return (1);// รีเทรินค่าเป็น 1 } // end if if (mcBall.vy < _loc4) // ถา mcBall.vy น้อยกว่า _loc4 ้ { return (1);// รีเทรินค่าเป็น 1 } // end if if (mcBall.vy > _loc3)//ถาmcBall.vy มากกว่า _loc3 ้ { return (1); } // end if return (0);} // End of the functionfunction check_out() // มี ระะบเหมือนกัน กบ check_out_serve ั{ var _loc4; var _loc2; var _loc3; var _loc1; _loc4 = -COURT_W; _loc3 = COURT_W; if (mcBall.side == 0) { _loc2 = -COURT_H; _loc1 = 0; } else { _loc2 = 0;
  20. 20. _loc1 = COURT_H; } if (mcBall.vx < _loc4) { return (1); } if (mcBall.vx > _loc3) { return (1); } if (mcBall.vy < _loc2) { return (1); } if (mcBall.vy > _loc1) { return (1); } return (0);}function set_result(res){ if (play_result > 0)// ถา play_result มีค่ามากกว่า 0 ้ { return; } // end if play_result = res; //ให้ play_result เท่ากับ res switch (res)// ถาres อยุ๋ในหมวด ้ { case RESULT_FAULT: //ถาres เท่ากับ RESULT_FAULT ้ { ++fault_cnt;// ให้บวกค่า fault_cnt เพิ่ม 1 if (fault_cnt == 1)// ถา fault_cnt เท่ากับ 1 ้ { mcMes.mes_txt = "FAULT";// ให้ข้อความหน้าจอ โชว์คําว่า FAULT } else// ถา มากกว่า 1 ้ { mcMes.mes_txt = "DOUBLE FAULT"; // ให้ข้อความหน้าจอ โชว์คําว่าDOUBLE FAULT play_winner = server == 0 ? (1) : (0); // โชว์เพิ่มสกอ } // end else if mcMes.gotoAndStop("mes");//มูฟวี่คลิป mcMes ไปเล่นเฟรมmes break; } case RESULT_OUT: //ถาres เท่ากับ RESULT_OUT ้ {
  21. 21. mcMes.mes_txt = "OUT"; // ให้ข้อความหน้าจอ โชว์คําว่า OUT play_winner = mcBall.side == 0 ? (1) : (0);// โชว์เพิ่มสกอ mcMes.gotoAndStop("mes");//มูฟวี่คลิป mcMes ไปเล่นเฟรมmes break; } case RESULT_MISS://ถาres เท่ากับ RESULT_MISS ้ { if (_parent.match_mode == 1) // ถา match mode เทากับ 1 ้ { sndApp.start();//เรยกฟงกชน sndApp.start(); ี ั ่ั } play_winner = mcBall.side; // ให้ค่า play_winnerเท่ากับ mcBall.side start_score();//เรยกฟงกชน start_score ี ั ่ั break; } case RESULT_VOLLEY: //ถาres เท่ากับ RESULT_VOLLEY ้ { play_winner = server; // ให้ค่า play_winnerเท่ากับ server start_score(); //เรยกฟงกชน start_score ี ั ่ั break; } } // End of switch} // End of the functionfunction start_score(){ if (play_winner < 0)// ถา play_winner มคานอยกวา 0 ้ ี ่ ้ ่ { init_play();//เรยกฟงกชน init_play ี ั ่ั return; } else// ถ้ามีค่ามากกว่า 0 { ++point[play_winner];// ตัวแปร point[play_winner]; บวกค่าขึน 1 ้ if(play_winner == 0)// ถา play_winner เท่ากับ 0 ้ { if(modeplay == "vscom") // ถาmodeplay เป็น vscom ้ { numscore += 300; // บวกแต้ม 300 number_txt.text = "Score : "+numscore;// ให้ หน้าจอโชว์แต้มอัพเดท tuommer.start(); } } else // ถา play_winner ไม่เท่ากับ 0 ้
  22. 22. { if(modeplay == "vscom") // ถาmodeplay เป็น vscom ้ { numscore -= 100;// ลบแต้ม100 if(numscore <= 0) // ถ้าหากแต้ม น้อยกว่า 0 { numscore = 0; // ให้แต้มเ่ากับ 0 } number_txt.text = "Score : "+numscore;// ให้ หน้าจอโชว์แต้มอัพเดท } } if (point[play_winner] > 3)//ถา /ตัวแปร point[play_winner] มากกว่า 3 ้ { if (point[0] == point[1])// ถา อาเรย์ point ตัวที่ 0 มีค่าเทากับ ตัวที่ 1 ้ { score_txt = "DEUCE"; // ให้โชว์หน้าจอเกมว่า DEUCE mcMes.mes_txt = score_txt; mcMes.gotoAndStop("score"); } else if (Math.abs(point[0] - point[1]) <= 1) // ถถ้า อาเรย์ point ตัวที่ 0 ลบตัว ตัวที่1 มีค่าน้อยกว่าเท่ากับ 1 { score_txt = "Advantage " + pname[play_winner]; // ให้ โชว์ข้อความAdvantage +ตามด้วยชื่อผู้เล่น mcMes.mes_txt = "Advantage " + pname[play_winner]; mcMes.gotoAndStop("score"); } else//ถ้าไม่ใช่ { game_winner = play_winner; // ให้ game_winner มีค่าเท่ากับ play_winner ++gpoint[game_winner];//ให้ค่า gpoint[game_winner] บวกขึนอีก 1 ้ pname[play_winner] mcMes.mes_txt = "Game won by " + pname[play_winner];// โชว์ข้อความ ว่าผู้ ชนะคือใคร mcMes.gotoAndStop("game"); mcPlayer0.stat = PS_AFTER;//ให้ mcPlayer0.stat มีสถานะเป้น PS_AFTER mcPlayer0.gotoAndStop("win"); tuommer2.start(); scheerup.start(); return; } // end else if } else // ถ้ายังไม่มากกว่า 3
  23. 23. { var _loc3 = point[server]; // ให้ค่า _loc3 เท่ากับ point[server]; var _loc2 = point[receiver]; // ให้ค่า _loc2 เท่ากับ point[receiver]; var _loc1 = [0, 15, 30, 40];// ให้ค่า _loc1 เทากับ [0, 15, 30, 40] score_txt = pname[server] + " " + _loc1[_loc3] + " - " + _loc1[_loc2] + " " +pname[receiver];// โชว์ข้อความเริ่มจาก ชือผูเล่น ตามด้วยสกอ และตามด้วยชื่อผู้เล่นคนที่ 2 ่ ้หรือคอม mcMes.mes_txt = _loc1[_loc3] + " - " + _loc1[_loc2]; //ให้มูฟวี่คลิป mcMes โชว์ค่า แต้ม mcMes.gotoAndStop("score"); } // end else if if (play_winner == 1)// ถา play_winner เท่ากับ 1 ้ { mcPlayer1.gotoAndStop("win"); //ให้มูฟี่คลิป mcPlayer1 เล่นเฟรม win mcPlayer1.stat = PS_AFTER;//ให้สถานะของ mcPlayer1 เป้น PS_AFTER textwinner = pname[0]; // ให้ textwinner เท่ากับค่า pname[play_winner] } else// ถา play_winner ไม่เท่ากับ 1 ้ { mcPlayer1.gotoAndStop("lose");//ให้มูฟี่คลิป mcPlayer1 เล่นเฟรม lose mcPlayer1.stat = PS_AFTER;//ให้สถานะของ mcPlayer1 เป้น PS_AFTER textwinner = pname[play_winner];// ให้ textwinner เท่ากับค่า pname[play_winner] } // end else if } // end else if} // End of the functionfunction after_score(){ fault_cnt = 0;// ให้ค่า fault_cnt เป็น 0 play_winner = -1;// play_winner มีค่าเท่ากับ -1 serve_pos = serve_pos == 1 ? (-1) : (1); // serve_pos มี่าเท่ากับ 1 init_play();//เรยกฟงกชน init_play ี ั ่ั} // End of the functionfunction after_game_winner(){ if (gpoint[game_winner] >= 3 && Math.abs(gpoint[0] - gpoint[1]) > 1) // ถา gpoint ้[game_winner] มากกว่าเท่ากับ 3 และ ค่าของบวกลบ gpoint[0] - gpoint[1] มากกว่า 1 { if (_parent.match_mode == 1)// ถา match_mode เท่ากับ 1 ้ { sndApp2.start(); //ใชฟงกชน sndApp2.start(); ้ ั ์ ่ั } // end if
  24. 24. score_txt = "";//ให้ score_text เป้นข้อความว่าง if (gpoint[0] > gpoint[1]) // ถา ค่า gpoint[0] มากกว่าค่า gpoint[1] ้ { match_winner = 0;//ให้match_winner เทากับ 0 mcMes.gotoAndStop("win");//มูฟวี่คลิป mcMes เล่นเฟรม win } else { match_winner = 1;//ให้match_winner เทากับ 1 mcMes.gotoAndPlay("lose");//มูฟวี่คลิป mcMes เล่นเฟรม lose } // end else if } else { mcMes.gotoAndStop("inplay");//มูฟวี่คลิป mcMes เล่นเฟรม inplay server = server == 0 ? (1) : (0); //ถา server เท่ากับ 0 ให้เป้นค่า (1) : (0); ้ receiver = server == 0 ? (1) : (0);//ถา receiver เท่ากับ 0 ให้เป้นค่า (1) : (0); ้ init_game();//เรยกฟงกชน init_game ี ั ่ั } // end else if} // End of the functionfunction after_match(){ if (_parent.match_mode == 0)// ถา match_mode เท่ากับ 0 ้ { trace("1") _parent.gotoAndStop("title");// ให้กลับไปหน้าไตเติ้ล } else if (match_winner == 0)// ถา match_winner เทากับ 0 ้ { _parent.result_txt[_parent.kaisen] = pname[0] + " " + gpoint[0] + " - " + gpoint[1]+ " " + pname[1];//ให้ปรับค่าเริ่มต้น _parent.after_match();//เรยกฟงกชน after_match ี ั ่ั _parent.gotoAndStop("title");// ให้กลับไปหน้าไตเติ้ล } else { _parent.gotoAndStop("title");// ให้กลับไปหน้าไตเติ้ล } // end else if} // End of the functionfunction end_match_quit(){ _parent.gotoAndStop("title");// ให้กลับไปหน้าไตเติ้ล
  25. 25. } // End of the functionfunction user_action(){ mc = mcPlayer0; // ให้ mc เป็นมูฟวี่คลิปตัวผู้เล่น switch (mc.stat)// เชคสถานะ { case PS_SERVE: // ถ้าสถานะเป้น PS_SERVE { check_pad(); // เรยกฟงกชน check_pad ี ั ่ั if (pad_trig) // ถา pad_trig มีค่าเป้นจริง ้ { start_toss(0);//เรยกฟงกชน start_toss ส่งค่าเป้น 0 ี ั ่ั } break; } case PS_TOSS:// ถ้าสถานะเป้น PS_TOSS { check_pad(); // เรยกฟงกชน check_pad ี ั ่ั ++mc.cnt;//บวกค่า mc.cnt if (mc.cnt > 8)// ถา mc.cnt มากกว่า 8 ้ { if(pad_trig)// ถา pad_trig มีค่าเป้นจริง ้ { start_stroke_user(0);// เรยกฟงกชนstart_stroke_user ส่งค่าเป้น 0 ี ั ่ั } } if (mc.cnt == 7)// ถา mc.cnt มีค่าเทากับ 7 ้ { start_toss_ball(0);// เรยกฟงกชนstart_toss_ball ส่งค่าเป้น 0 ี ั ่ั } // end if break; } case PS_STROKE:// ถ้าสถานะเป้น PS_STROKE { ++mc.cnt;//บวกค่า mc.cnt if (mc.cnt == 3)// ถา mc.cnt เท่ากับ 3 ้ { if (check_hit(0))// ถัา เรยฟงกชน check_hit ส่งค่าเป้น 0 แลว มีค่าเป้นจริง ้ ี ั ่ั ้ {
  26. 26. set_ball_dest_user();// เรยกฟงกชน set_ball_dest_user ี ั ่ั if (mcPlayer1.stat == PS_WAIT)// ถา mcPlayer1 มีสถานะเป็น PS_WAIT ้ { mcPlayer1.stat = PS_FREEZE;// ให้ mcPlayer1 มีสถานะเป้นPS_FREEZE mcPlayer1.cnt = 0;// ให้ mcPlayer1 มีค่าเป็น 0 mcPlayer1.gotoAndStop("wait"); // ให้ mcPlayer1 เล่นเฟรม wait } } } break; } case PS_WAIT:// ถ้าสถานะเป้น PS_WAIT { check_pad();//เรียกฟังก์ชน check_pad ่ั if (pad_x == 0 && pad_y == 0) // ถา ตําแหน่งx และ ตําแหน่ง y เท่ากับ 0 ้ { mc.gotoAndStop("wait");// ให้ มุฟวี่คลิปเล่นเฟรม wait move_cnt = 0;// ให้ตัวแปร move_cnt เท่ากับ 0 } else { var a = mc.footwork; // ให้ค่า a เท่ากับ mc.footwork mc.vx = mc.vx + pad_y * a; // mc.vx มีค่าเท่ากับ mc.vx + pad_y * a mc.vy = mc.vy + pad_x * a; // mc.vy มีค่าเท่ากับ mc.vy + pad_x * a; if (mc.vy <= 20) // ถา mc.vy น้อยกว่าเท่ากับ 20 ้ { mc.vy = 20;//ให้mc.vy เทากับ 20 } player_position(0);//เรียกฟังก์ชน player_position ส่งค่าเป้น 0 ่ั if (pad_y < 0)// ถา ค่า y น้อยกว่า 0 ้ { mc.gotoAndStop("left");//ให้มูฟวี่คลิปเล่นเฟรม left } else { mc.gotoAndStop("right");//ให้มูฟวี่คลิปเล่นเฟรม right } } if (pad_trig)// ถา pad_trig มีค่าเป้นจริง ้ { start_stroke_user(0);// เรยกฟงกชน start_stroke_user ส่งค่าเป็น 0 ี ั ่ั } break; }
  27. 27. }}function move_player2() //มีการทํางานเหมือนกับ user_action สวนนเปนสวนผเลนท่ี 2 ่ ้ี ้ ่ ู้ ่เมื่อ ผู้เล่นเลือกโหด player vs player{ var mc = mcPlayer1; switch (mc.stat) { case PS_SERVE: { check_pad2(); if (pad_trig2) { start_toss(1); } // end if break; /*++mc.cnt; if (mc.cnt > 10) { start_toss(1); } // end if break;0 */ } case PS_TOSS: { /* ++mc.cnt; if (mc.cnt == 7) { start_toss_ball(1); } // end if if (mc.cnt > 22) { start_stroke_com(1); } // end if break;*/ check_pad(); ++mc.cnt; if (mc.cnt > 8) { if(pad_trig2) {
  28. 28. start_stroke_user(1); } // end if } // end if if (mc.cnt == 7) { start_toss_ball(1); } // end if break;}case PS_WAIT:{ check_pad2(); if (pad_x2 == 0 && pad_y2 == 0) { mc.gotoAndStop("wait"); move_cnt = 0; } else { var a = mc.footwork; mc.vx = mc.vx + pad_y2 * a; mc.vy = mc.vy + pad_x2 * a; if (mc.vy >= -10) { mc.vy = -10; } player_position(1); if (pad_y2 < 0) { mc.gotoAndStop("right"); } else { mc.gotoAndStop("left"); } } if (pad_trig2) { start_stroke_user(1); } break;}case PS_STROKE:{ ++mc.cnt; if (mc.cnt == 3) {
  29. 29. if (check_hit(1)) { set_ball_dest_com(); } } break; } case PS_FREEZE: { ++mc.cnt; if (mc.cnt > 10) { if (mc.vy > mcBall.dy) { mc.dest_x = mcBall.ax / mcBall.ay * (mc.vy - mcBall.vy) + mcBall.vx; mc.dest_y = mc.vy; } else { mc.dest_x = mcBall.dx + mcBall.ax * 5; mc.dest_y = mcBall.dy + mcBall.ay * 5; } mc.stat = PS_WAIT; mc.wm = WM_MOVE; } break; } default: { break; } }}function move_enemy()//มีการทํางานเหมือนกับ user_action สวนนเปนสวนผเลนท่ี 2 เมื่อ ่ ้ี ้ ่ ู้ ่ผู้เล่นเลือกโหด player vs player{ var mc = mcPlayer1; switch (mc.stat) { case PS_SERVE: { ++mc.cnt; if (mc.cnt > 10) { start_toss(1); } break; }
  30. 30. case PS_TOSS:{ ++mc.cnt; if (mc.cnt == 7) { start_toss_ball(1); } if (mc.cnt > 22) { start_stroke_com(1); } break;}case PS_WAIT:{ if (mc.wm == WM_MOVE) { var foot = mc.footwork; var f = 0; var lr = 0; if (mc.vy < mc.dest_y - 10) { mc.vy = mc.vy + foot; } else if (mc.vy > mc.dest_y + 10) { mc.vy = mc.vy - foot; } else { ++f; } if (f == 0) { if (mc.vx > 0) { lr = 1; } else { lr = -1; } } if (mc.vx < mc.dest_x - 10) { mc.vx = mc.vx + foot; mc.gotoAndStop("left"); lr = -1; }
  31. 31. else if (mc.vx > mc.dest_x + 10) { mc.vx = mc.vx - foot; mc.gotoAndStop("right"); lr = 1; } else { ++f; } // end else if if (f == 2) { mc.wm = WM_WAIT; mc.gotoAndStop("wait"); } else { if (lr < 0) { mc.gotoAndStop("left"); } if (lr > 0) { mc.gotoAndStop("right"); } } player_position(1); } if (mcBall.vy + mcBall.ay * 4 < mc.vy) { if (Math.abs(mcBall.vx + mcBall.ax * 4 - mc.vx) < 60) { start_stroke_com(1); } } break;}case PS_STROKE:{ ++mc.cnt; if (mc.cnt == 3) { if (check_hit(1)) { set_ball_dest_com(); } } break;}
  32. 32. case PS_FREEZE: { ++mc.cnt; if (mc.cnt > 10) { if (mc.vy > mcBall.dy) { mc.dest_x = mcBall.ax / mcBall.ay * (mc.vy - mcBall.vy) + mcBall.vx; mc.dest_y = mc.vy; } else { mc.dest_x = mcBall.dx + mcBall.ax * 5; mc.dest_y = mcBall.dy + mcBall.ay * 5; } mc.stat = PS_WAIT; mc.wm = WM_MOVE; } break; } default: { break; } }}function check_pad(){ pad_x = 0; // ให้ค่า x เท่ากับ 0 if (Key.isDown(40)) //ถ้ากด ปุ่มลูกศร ขวา { pad_x = 1; // ค่า x เทากับ 1 } if (Key.isDown(38))//ถ้ากด ปุ่มลูกศร ซ้าย { pad_x = -1;// ค่า x เทากับ -1 } // end if pad_y = 0;// ให้ค่า y เท่ากับ 0 if (Key.isDown(37))//ถ้ากด ปุ่มลูกศร ขน ุ้ { pad_y = -1;// ค่า y เทากับ -1 } // end if if (Key.isDown(39))//ถ้ากด ปุ่มลูกศร ลง {
  33. 33. pad_y = 1;// ค่า y เทากับ 1 } pad_trig = Key.isDown(32); // ค่า pad_trig จะมีค่าเมื่อกด ป่ม space bar} // End of the functionfunction check_pad2() // สําหรับผ๔้เล่นคนที่ 2{ pad_x2 = 0;//ให้ x และ y มีค่าเป้น 0 pad_y2 = 0; if (Key.isDown(100)) //ถถากด ปุ่ม เบอ 8 (ด้าขวาสุดของคีย์บอร์ด) ้ { pad_y2 = -1;// ให้ y เทากับ -1 } if (Key.isDown(102)) //ถ้ากด ปุ่ม เบอ 5 { pad_y2 = 1;// ให้ y เทากับ 1 } if (Key.isDown(104))//ถ้ากด ปุ่ม เบอ 4 { pad_x2 =-1; // ให้ x เทากับ-1 } if (Key.isDown(101))//ถ้ากด ปุ่ม เบอ 6 { pad_x2=1 // ให้ x เทากับ1 } if (Key.isDown(96)) { // เบอร์0 ตี } // end if pad_trig2 = Key.isDown(96);//ค่า pad_trig2 จะมีค่าเมื่อกด เบอร์0} // End of the functionfunction win_match(){
  34. 34. _parent.match_mode = 0//ให้ match_mode เท่ากับ 0 _parent.match_winner =0 //ให้ match_winner เท่ากับ 0 cordlevel ++; // ให้่ค่า cordlevel บวกค่าไปอีก 1 _parent.result_txt[_parent.kaisen] = pname[0] + " " + gpoint[0] + " - " + gpoint[1]+ " " + pname[1];// เริ่มข้อความใหม่ทั้งหมด onEnterFrame = null;// กฟงกชนการ วนของการทํางาน ให้เป้นไม่มีค่า ั ์ ่ั if(modeplay == "vscom") // ถา modeplay เทากับ vscom ้ { if(cordlevel >5)// ภา cordlevel มากกว่า 5 ้ { savescore();//เรยกฟงกชน save score ี ั ่ั gotoAndPlay("highscore"); // หน้าจอไปเล่นเฟรม highscore } else { gotoAndPlay("delay") // หน้าจอไปเล่นเฟรม delay } } else { gotoAndPlay("title") // หน้าจอไปเล่นเฟรม title }}function savescore(){ var objectscore:Object = new Object(); // สร้าง objectscore เป้น ตัวแปร Object objectscore.name = textname1; // ให้objectscore .name เท่ากับ textname1 objectscore.num = numscore;// objectscore.numเทากับ numscore so.data.score.push({num:objectscore.num,name:objectscore.name}) //ตัวแปร so เพิ่มค่าเข้าไป โดยเพิ่มชื่อ และ แต้ม for(var t= 0;t < so.data.score.length ; t++)// วนลูบตามจํานวนตัวแปรสมาชิกของ so.data.score { if(t != so.data.score.length-1)// ถา t ไม่เทากับ ้สมาชิกตัวสุดท้ายของ so.data.score { if(so.data.score[so.data.score.length-1].name == so.data.score[t].name) // ถา มชอซากนในlist กับชื่อที่ ้ ี ่ื ํ้ ั
  35. 35. ถูกแอดมา { if(so.data.score[so.data.score.length-1].num >= so.data.score[t].num) // ถา สกอ ชือทีซากัน ถ้าตัวไหนมี ้ ่ ่ ํ้ค่ามากกว่า { so.data.score[t].num = 0; //ปรับให้ สมาชกอกตวทใชอซากนมสกอเปน 0 ิ ี ั ่ี ี ่ื ํ้ ั ี ้ } else { so.data.score[so.data.score.length-1].num =0; } } } } so.data.score.sortOn(["num", "name"],[Array.NUMERIC|Array.DESCENDING,Array.DESCENDING]); // จัดเรียงอาเรย์ใหม่โดยให้สกอร์สูงสุดขึ้นมาก่อน so.data.score.pop();// ลบสมาชิกตัวสุดท้ายทิ้งไป}

×