•  

ยินดีต้อนรับสู่ ThaiFlashDev

ผู้เขียน หัวข้อ: มีโค้ดตัวอย่างเกมตอบคำถามไหมครับ  (อ่าน 146 ครั้ง)

ออฟไลน์ benchbaby

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 6
อยากได้ตัวอย่าง เกมตอบคำถามที่มี ช้อย ให้เลือกข้อที่ถูก ก ข ค ง แล้วเก็บคะแนนไปแสดงผลตอนท้าย ใน action script 3 อะครับ

ผมหาดูตาม google แล้ว งง มากไม่ค่อยเข้าใจเลย มีใครพอจะมีไฟล์ตัวอย่างไหมครับ จะนำไปศึกษาดู

ขอบคุณครับ  :05: :05:

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 429
Re: มีโค้ดตัวอย่างเกมตอบคำถามไหมครับ
« ตอบกลับ #1 เมื่อ: 30 ม.ค. 17, 04:15:16 »
อย่าถามหาไฟล์ตัวอย่างครับ มันคือความมักง่าย
ไฟล์ตัวอย่างจะมีเฉพาะในหมวดสอนครับ หรือถ้ามีคนต้องการให้เอาไว้ศึกษา
แต่การมาโพสต์ขอแบบนี้มันมักง่ายเกินไปครับ ต้องพยายามทำเองก่อนครับ ถ้าไม่ได้ติดตรงไหนจึงจะมีคนคอยช่วย

ต้องถามว่าคุณเข้าใจพื้นฐานแค่ไหน??
พื้นฐานที่จำเป็นต้องเข้าใจ ถ้าไม่เข้าใจก็ไม่สามารถเขียนอะไรได้เลยครับ
-ตัวแปร คือตัวอักษรที่ต้องประกาศขึ้นเพื่อใช้แทนสิ่งใดๆ เช่น int = จำนวนเต็ม, Number = ตัวเลข, String = ตัวหนังสือ, Array = ช่องไว้สำหรับเก็บสิ่งใดๆ, MovieClip = ชิ้นงานที่สามารถแสดงผลหน้าจอและเก็บตัวแปรและคำสั่งต่างๆ ไว้ข้างในได้
-ประกาศตัวแปร var xx:int = 0; var ss:String = "Hello"; var arr:Array = [0,"Hello"];
-กระทำทางคณิตสาสตร์ + - * /
-การควบคุม timeline เช่น play(); stop(); gotoAndStop();
-การสร้างและใช้งานฟังก์ชัน
-สร้างการรอรับคำสั่งของปุ่มเป็น สำหรับ as3 คือ ปุ่ม.addEventListener(MouseEvent.CLICK, ฟังก์ชันที่จะทำเมื่อ Event เป็นจริง);

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

-สร้างแต่ละเฟรมให้เป็นแต่ละหน้า ตั้งแต่หน้าแรก หน้าจ้อแต่ละข้อ จนถึงหน้าจบ ตกแต่งกราฟิกทุกหน้าแล้วแต่ชอบรวมทั้งกราฟิกปุ่ม
-สร้างปุ่มเป็น movieClip หรือ sprite ไว้ ข้างในให้วาดสี่เหลี่ยมมาชิ้นเดียวโดยให้ alpha = 0 และเอาไปวางทับกราฟฟิกปุ่มต่างๆ และตั้งชื่อให้ปุ่มนั้นๆ
-ชื่อปุ่มคำตอบแต่ละข้อให้ตั้งเหมือนกัน เช่น bt_1,bt_2,bt_3,bt_4 แทน กขคง ใหเชื่อปุ่มเหมือนกันทุกๆ ข้อ
-เฟรมสุดท้ายเอา text มาวางแบบ dinamic และตั้งชื่อ showScore
-เฟรมแรกของหน้าหลักประกาศตัวแปรจำนวนเต็มมา 1 ตัว ให้ชื่อ thisScore ก็ได้
-สร้างลิสต์ว่าแต่ละข้อตัวเลือกไหนถูก เช่น var trueList:Array = [1,1,1,1,1,1,1,1,1,1];
-ใส่คำสั่ง this.stop(); ไว้ที่เฟรมแรกเพื่อไม่ให้งานมันวิ่ง
-สร้างฟังก์ชันไว้ในเฟรมแรกของหน้าหลักสำหรับไปหน้าถัดไป
โค๊ด: [Select]
function thisNext(e:MouseEvent = null){ this.nextFrame(); }-สร้างฟังก์ชันรองรับการกดตอบตอบ
โค๊ด: [Select]
function thisGetAns(e:MouseEvent = null){
var thisTrue:int = trueList.shift();//ดึงค่าตัวแรกออกมาจาก trueList
var thisUse:int = int(e.target.name.split("_")[1]);//แนกชื่อของตัวที่กดออกมาเช่น ถ้ากด bt_2 ก็จะได้ ["bt","2"] ตัวที่ 1(รับเริ่มจากตำแหน่งที่ 0 คือ "bt" ตำแหน่งที่ 1 ก็จะได้ค่า "2" ออกมา) และแปลงให้เป็น int ก็จะได้ออกมาคือเลข 2
if(thisTrue == thisUse) thisScore = thisScore + 1;//ถ้าเลขระหัสตัวเลือกตรงกับในลิสต์ให้เพิ่มคะแนน
//เอาคำสั่งออกจากปุ่มด้วย จะได้ไม่รวน
bt_1.removeEventListener(MouseEvent.CLICK, thisGetAns);
bt_2.removeEventListener(MouseEvent.CLICK, thisGetAns);
bt_3.removeEventListener(MouseEvent.CLICK, thisGetAns);
bt_4.removeEventListener(MouseEvent.CLICK, thisGetAns);

thisNext();//ไปเฟรมต่อไป
}
-สร้างฟังก์ชันโชว์ตอนจบ
โค๊ด: [Select]
function thisEnd(e:MouseEvent = null){ showScore.text = "" + thisScore }-ในเฟรมที่มีปุ่มให้เพิ่มการตอบสนองของปุ่มไป
โค๊ด: [Select]
//ในหน้าแรก ใส่
ชื่อปุ่มเริ่ม.addEventListener(MouseEvent.CLICK, thisNext);
//ในหน้าคำถามก็ใส่โคดนี้ไปทุกหน้า
if(bt_1.hasEventListener(MouseEvent.CLICK) == false) bt_1.addEventListener(MouseEvent.CLICK, thisGetAns);
if(bt_2.hasEventListener(MouseEvent.CLICK) == false) bt_2.addEventListener(MouseEvent.CLICK, thisGetAns);
if(bt_3.hasEventListener(MouseEvent.CLICK) == false) bt_3.addEventListener(MouseEvent.CLICK, thisGetAns);
if(bt_4.hasEventListener(MouseEvent.CLICK) == false) bt_4.addEventListener(MouseEvent.CLICK, thisGetAns);
//และในหน้าคะแนน
thisEnd();

ทำความเข้าใจดูครับ นี่ช่วยแบบละเอียดแล้ว ลองให้เข้าใจก่อน
« แก้ไขครั้งสุดท้าย: 30 ม.ค. 17, 04:19:55 โดย thora »
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ

ออฟไลน์ benchbaby

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 6
Re: มีโค้ดตัวอย่างเกมตอบคำถามไหมครับ
« ตอบกลับ #2 เมื่อ: 30 ม.ค. 17, 09:18:47 »
ขอบคุณมากๆนะครับ จะพยายามศึกษาดูครับ

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 429
Re: มีโค้ดตัวอย่างเกมตอบคำถามไหมครับ
« ตอบกลับ #3 เมื่อ: 31 ม.ค. 17, 02:55:11 »
 :12:
เยี่ยมครับ ลองดูก่อน ไม่เข้าใจตรงไหนถามมามีคนช่วยแน่นอนครับ
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ