วันพฤหัสบดีที่ 30 กรกฎาคม พ.ศ. 2558

Construct 2 : เก็บคะแนนเกม

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

ขั้นตอนแรก คือการสร้างวัตถุในเกมแบบข้อความ โดยการ Insert New Object แล้วเลือกวัตถุแบบ Text คลิกปุ่ม Insert


จัดวางตำแหน่งของข้อความที่ด้านบนของเกม  ปรับแต่งแบบอักษรตามที่ต้องการ โดยใช้ tab Properties
Text  คือ  ข้อความที่จะแสดงที่หน้าเกม โดยกำหนดให้แสดงคำว่า Score
Font  คือ  แบบอักษรที่ใช้
Color คือ สีตัวอักษร


เพิ่มวัตถุข้อความอีกหนึ่งตัว  โดยกำหนดคุณสมบัติ ข้อความเริ่มต้น คือ 0


กำหนดคุณสมบัติเพิ่มเติมให้กับวัตถุแบบ text ตัวที่สองนี้ ด้วยการตั้งชื่อให้กับวัตถุด้วย เพิ่มใช้อ้างอิงในการแสดงคะแนน โดยผมกำหนดให้ชื่อว่า txt_score


ในตอนนี้ จะได้ข้อความที่ใช้แสดงคะแนนของเกมเป็นที่เรียบร้อยแล้ว


ต่อไป จะต้องสร้างตัวแปรขึ้นมาสำหรับเก็บค่าคะแนนที่ได้จากการเล่นเกม โดยการไปที่ event sheet คลิกขวา แล้วเลือกคำสั่ง Add global variable


จากปรากฎหน้า New global variable ขึ้นมา  กำหนด Name คือ score  กำหนด Type เป็นแบบ Number มีค่าเริ่มต้น Initial value เป็น 0


เมื่อมีการกำหนดตัวแปร ค่าตัวแปรที่กำหนดจะปรากฏที่ด้านบนของ Event sheet


ต่อไปจะเป็นการเพิ่มค่าตัวแปร score เมื่อมีการชนกันของตัว Hero กับวัตถุในเกม (อันนี้ต่อเนื่องจากบทความที่ผ่านมานะครับ ใครตามไม่ทันต้องกลับไปอ่านก่อน การชนกันของวัตถุในเกม) คลิก Add action เพิ่ม จากเดิมที่มีแค่ให้วัตถุกล้วยหายไป


เลือก Add action เป็นแบบ System แล้วกดปุ่ม Next


เลือกการดำเนินการเป็นแบบ Add to ในหมวด Global & local variables แล้วกดปุ่ม Next


เลือกตัวแปรที่ต้องการกำหนดค่า ในตอนนี้ให้เลือก score  ตรงช่อง Value คือค่าที่จะบวกเพิ่มเข้าไป อาจจะกำหนดเป็นค่าอื่นๆ ตามที่ต้องการได้  แล้วกดปุ่ม Done


ในหน้า event sheet จะมี action เพิ่มขึ้น คือเมื่อชนแล้ว เพิ่มคะแนน


ขั้นต่อไป คือการเอาค่าคะแนนจากตัวแปร score มาแสดงที่วัตถุข้อความ ชื่อ txt_score โดยการ add event ใหม่  แล้วเลือกเหตุการณ์เป็นแบบ System  คลิกปุ่ม Next


 เลือกการเกิดเหตุการณ์ แบบ Every tick คือ ทำงานทุกรอบของสัญญาณนาฬิกา แล้วคลิกปุ่ม Next


จะได้เหตุการณ์ในการทำงานทุกรอบของสัญญาณนาฬิกา  ต่อไปก็เพิ่มกระทำงาน ด้วยการกดปุ่ม Add event


แล้วเลือกวัตถุที่จะเกิดการทำงาน ให้เลือกวัตถุแบบข้อความที่ชื่อว่า txt_score แล้วกดปุ่ม Next


เลือก Set text คือการกำหนดค่าข้อความ แล้วกดปุ่ม Next


ในช่อง Text จะเป็นการใส่ข้อความที่ต้องการให้แสดง ในตอนนี้เราจะนำค่าจากตัวแปร score มาแสดง ให้พิมพ์ชื่อตัวแปรลงไปในช่อง จะเกิดรายการให้เลือก ให้เราเลือกตัวแปรชื่อ score แล้วกดปุ่ม Done


จะได้เหตุการณ์ใหม่ คือ การแสดงค่าคะแนนของเกม


ทดลองเล่นเกม โดยเอาลิงกระโดดไปเก็บกล้วย คะแนนของเกมก็จะเพิ่มขึ้นทุกครั้งที่เก็บกล้วยได้


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

วันพุธที่ 29 กรกฎาคม พ.ศ. 2558

Construct 2 : การชนกันของวัตถุ

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


จากเกมที่ผมสร้างไว้นั้น คือ มีตัวละครเป็นลิงน้อย ตัววัตถุที่ผมจะให้ลิงไปเก็บผมเลยสร้างเป็นกล้วยครับ วิธีการสร้างก็เหมือนกับการสร้างตัวละคร โดยการ Insert new object เลือกวัตถุแบบ Sprite คลิกที่ปุ่ม Insert จะปรากฏหน้าต่าง  Edit image : Sprite ขึ้นมา จัดการวาดภาพกล้วยเลยครับ (ไม่ค่อยจะกล้วย ตรงวาดภาพนี้แหละ)


เสร็จแล้วก็ปิด กลับมาที่หน้าออกแบบเกมของเรา ย่อขนาดของกล้วยให้เหมาะสมกับฉากเกม แล้วคัดลอกและวางในตำแหน่งที่ต้องการภายในเกม


ต่อไปกำหนดวัตถุกล้วยของเราให้เป็นแบบ Solid เพื่อให้ตัว Hero เจ้าลิงน้อยของเราเดินชนได้ครับ คลิกที่กล้วยรูปไหนก็ได้ครับ แล้วเลือก Add/edit Behaviors


คลิกที่เครื่องหมายบวก จะปรากฎหน้า Add behavior เลือกคุณสมบัติแบบ Solid แล้วคลิกปุ่ม Add หลังจากนั้นกดปุ่มปิด กลับมายังหน้าออกแบบเกมของเรา


ตัววัตถุกล้วยของเราตอนนี้ก็จะมีสมบัติเป็นแบบ Solid หมดทุกภาพ ทดสอบการทำงานของเกม จะพบว่าเจ้าลิงน้อยของเรากระโดดไปชนกล้วยได้ หรือยืนบนกล้วยได้เลย เพราะกล้วยมีสมบัติเป็น Solid

ลักษณะที่เกิดขึ้นเมื่อลิงกับกล้วยมาเจอกัน เราเรียกว่า เกิดการชนกันของวัตถุในเกม ต่อไปจะเป็นการกำหนดเหตุการณ์ของเกมว่าจะให้เกิดอะไรขึ้น เมื่อวัตถุเกิดการชนกัน ให้เลือกที่ Tab Event sheet1 ของเกม คลิกที่ Add event


เมื่อปรากฏหน้าต่าง Add event ให้เลือกวัตถุที่จะกำหนดเหตุการณ์ ในที่นี้คือ เจ้าลิงน้อย แล้วกดปุ่ม Next


ขั้นต่อไป กำหนดเหตุการณ์ที่เกิดขึ้น การชนกันของวัตถุจะอยู่ในหมวด Collisions และเลือก On collision with another object  แล้วกดปุ่ม Next


ขั้นต่อไปคือการเลือกวัตถุที่ไปชน คลิกที่ จะปรากฏหน้าต่างให้เลือกวัตถุที่ไปชน


ให้เลือกกล้วย เป็นวัตถุที่จะให้ลิงของเราไปชน แล้วกดปุ่ม OK


ในตอนนี้ จะได้วัตถุที่เกิดเหตุการณ์ชนกันแล้ว คลิกที่ปุ่ม Done


ที่หน้า Event sheet ของเกม จะมีการกำหนดเหตุการณ์ไว้ตามที่เลือก คือ วัตถุลิง ไปชนกับวัตถุกล้วย แล้วจะเกิดอะไรขึ้น ให้เลือก Add action


ในขั้นตอนนี้ จะต้องเลือกวัตถุที่จะให้เกิดการเปลี่ยนแปลง คือ เลือกวัตถุกล้วย  แล้วกดปุ่ม Next


ต่อไปเป็นการเลือกเหตุการณ์ที่จะเกิดขึ้น คือ เมื่อลิงชนกล้วย ให้กล้วยหายไป การหายไปของวัตถุ จะอยู่ในหมวด Misc เลือกคำสั่ง Destroy แล้วคลิกปุ่ม Next


เสร็จแล้วครับ สำหรับการกำหนดเหตุการณ์ของเกมเมื่อเกิดการชนกันของวัตถุ


ทดสอบการทำงานของเกม จะพบว่า เมื่อลิงกระโดดหรือเดินไปชนกับกล้วย กล้วยก็จะหายไป  ในบทความต่อไปผมจะแนะนำการเก็บคะแนนของเกม เมื่อตัว Hero ได้ทำภาระกิจสำเร็จ จะมีการนับคะแนนเพิ่มให้


วันจันทร์ที่ 27 กรกฎาคม พ.ศ. 2558

Construct 2 : สร้างตัวละคร

หลังจากที่ได้แนะนำการออกแบบฉากและวางแนวทางเดินของเกมในบทความที่ผ่านมา ในบทความนี้จะขอแนะนำการสร้างตัวละครหรือที่เรียกว่า Hero และใส่การควบคุมตัวละครของเราให้เคลื่อนไหวได้ตามการควบคุมของเรา พร้อมหรือยังครับ มาลงมือกันเลย


เปิดงานเดิมที่เคยทำไว้ตามบทความที่ผ่านมา หรือจะสร้างขึ้นใหม่ก็ได้นะครับ โดยต้องมีฉากและแนวทางเดินของตัวละครไว้แล้วนะครับ อันนี้สร้างไว้แล้วตามบทความที่ผ่านมา


ขั้นแรกเริ่มด้วยการคลิกขวาที่บริเวณการสร้างเกม จะปรากฏหน้าต่างคำสั่งขึ้นมา เลือก Insert new object


จะได้หน้าต่าง Insert new object ซึ่งมีวัตถุแบบต่าง ๆ ที่เราจำเป็นต้องใช้ในการสร้างเกม


เลื่อนลงมาจนเจอแถบ General เลือกวัตถุแบบ Sprite คือ การสร้างตัวละคร  หลังจากนั้น คลิกที่ปุ่ม Insert โปรแกรมจะเปลี่ยนกลับมาที่หน้าต่างออกแบบเกมเหมือนเดิม หลังจากนั้นคลิกตรงตำแหน่งที่เราจะแทรกวัตถุ จะปรากฏหน้าต่าง  Edit image : Sprite ขึ้นมา


ต่อไปก็เป็นการวาดภาพตัวละครของเรา วาดได้ตามจินตนาการเลยนะครับ หลายคนแอบคิดว่า ไม่มีฝีมือในการวาดภาพเลยทำไงดี ไม่เป็นไรครับ ในบทความต่อไปจะแนะนำวิธีการนำตัวละครมาจากโปรแกรมอื่นเข้ามาใช้งานใน Construct 2 แต่ตอนนี้เอาให้พอรู้ว่าการสร้างตัวละครจะทำได้อย่างไรกันก่อนนะครับ ผมวาดออกมาง่ายๆ แบบนี้ครับ (จริงๆ แล้ว คือผมวาดภาพไม่สวย)


เมื่อได้ภาพตัวละครตามที่ต้องการแล้ว ก็กดปิดหน้าต่าง และกลับมายังหน้าเกมของเราได้เลยครับ ปรับย่อขนาดตัวละครของเราให้เหมาะสมกับขนาดทางเดินและฉากเกมของเรานะครับ


ตอนนี้ตัวละครของเราเป็นเพียงภาพวาดภาพหนึ่งเท่านั้น เราจะต้องเพิ่มคุณสมบัติให้กับตัวละครของเราซะก่อน เริ่มจากการเพิ่ม Behaviors โดยคลิกที่ตัวละครของเราแล้วไปเลือกแถบ Properties ในหมวด Behaviors เลือก Add/edit


จะปรากฏหน้าต่าง Add/edit Behaviors  ขึ้นมา คลิกที่เครื่องหมายบวก เพื่อเพิ่มพฤติกรรมให้กับตัวละครในเกมของเรา


จะปรากฏหน้า Add behavior ตัวละครที่เราจะสร้างจะเป็นแบบเดิน กระโดด จึงเลือก Movements แบบ Platform  แล้วคลิกที่ปุ่ม Add เพื่อเพิ่มคุณลักษณะให้กับตัวละครของเรา


ตอนนี้พฤติกรรมของตัวละครของเราก็จะเป็นแบบ Platform แล้วครับ กดปิดหน้าต่างเพื่อกลับไปยังหน้าเกมของเรา


ต่อไปลองทดสอบตัวเกมของเราดูนะครับ โดยคลิกที่ปุ่ม Run layout โปรแกรมจะเปิดหน้าเว็บเกมของเราขึ้นมา


เป็นไงครับ ตอนนี้ลองกดลูกศรซ้าย ขวา บน ล่าง จะเห็นว่าตัวละครของเราเดินและกระโดดได้ตามที่เราควบคุม


การกำหนดค่าต่างๆ ของการคุณสมบัติ Platform สามารถกำหนดค่าได้ ดังนี้



Max speed  กำหนดความเร็วสูงสุดของการเคลื่อนที่สูงขึ้นจากพื้นเป็นพิเซลต่อวินาที
Acceleration กำหนดอัตราเร่งของการเคลื่อนที่ในแนวนอน เป็นพิกเซลต่อวินาที^2
Deceleration  กำหนดอัตราการถ่วงความเร่งเมื่อมีการเคลื่อนที่ไปในทิศทางตรงกันข้ามกับทิศทางเดิม
Jump strength  กำหนดความเร็วเริ่มต้นของการกระโดดเมื่อกดลูกศรขึ้น ซึ่งจะลดลงเรื่อยๆ จนเท่ากับ Max speed ก็จะเคลื่อนที่ลงมา
Gravity กำหนดค่าแรงโน้มถ่วง เป็นพิกเซลต่อวินาที^2
Max fall speed กำหนดความเร็วสูงสุดของการเคลื่อนที่ลง เมื่อต้องการเร่งจากการเคลื่อนที่ลงแบบอิสระเป็นพิเซลต่อวินาที
Double jump ถ้ากำหนดให้เป็น enable จะทำให้ตัวละครสามารถกระโดดกลางอากาศได้
Jump sustain  คือการกำหนดเวลาเป็นมิลลิวินาทีในการกระโดด ก่อนที่จะใช้ค่าแรงโน้มถ่วงมาจัดการกับตัวละคร
Default controls ถ้ากำหนดค่าเป็น yes จะใช้การควบคุมการเคลื่อนที่ด้วยลูกศรซ้าย ขวา และขึ้นด้านบน หากกำนหนดเป็น No จะต้องใช้การกำหนดค่าของการเคลื่อนที่ด้วยตัวเอง
Initial state ถ้ากำหนดเป็น enable จะใช้ behavior นี้เป็นสถานะเริ่มต้นของตัวละคร เมื่อเริ่มเล่นเกม

ลองกำหนดค่าต่างๆ ของ behavior ชนิด platform แล้วทดสอบเล่นเกมดูนะครับ จะพบว่าพฤติกรรมของตัวละครเราจะเปลี่ยนไปตามที่ต้องการ  ในบทความต่อไปจะแนะนำการสร้างอุปสรรคหรือสัตว์ประหลาดในเกม เพื่อให้ Hero ของเราไปจัดการ อย่าลืมกลับมาติดตามกันนะครับ