Construct 2 : เกมฝึกพิมพ์ดีด

วันนี้มีตัวอย่างการสร้างเกมพิมพ์ดีดมาให้ดาวน์โหลดไปศึกษากันครับ วิธีการเล่นก็ง่ายๆครับ เพียงกดแป้นพิมพ์ให้ถูกต้องตรงตามข้อความที่ปรากฎบนจอ

ก่อนที่ตัวอักษรทั้งหมดของข้อความจะตกถึงพื้น จึงได้คะแนน ถ้าไม่สามารถพิมพ์ข้อความได้ถูกต้องทันเวลาก่อนที่ตัวอักษรตกถึงพื้นหมดทุกตัว พลังชีวิตของผู้เล่นจะลดลงหนึ่งชีวิต

 

 

 

ในเกมนี้เราจะใช้ทรัพยากรทั้งหมดดังนี้ครับ

การจัดวาง ทรัพยากรบนเลย์เอ้าต์

แนวคิดและวิธีการ

  • ตัวอักขระที่ใช้ทดสอบการพิมพ์โหลดข้อมูลจาก JSON เก็บไว้ใน Array
1. กำหนดค่าให้ ArrayLetters โหลดข้อมูลจาก JSON สำหรับตั้งค่าแอนิเมชั่นเฟรมให้ alphabet

"{""c2array"":true,""size"":[27,1,1],""data"":[[[""A""]],[[""B""]],[[""C""]],[[""D""]],[[""E""]],[[""F""]],[[""G""]],[[""H""]],[[""I""]],[[""J""]],[[""K""]],[[""L""]],[[""M""]],[[""N""]],[[""O""]],[[""P""]],[[""Q""]],[[""R""]],[[""S""]],[[""T""]],[[""U""]],[[""V""]],[[""W""]],[[""X""]],[[""Y""]],[[""Z""]],[["" ""]]]}"

2. กำหนดค่าให้ ArrayWords โหลดข้อมูลจาก JSON สำหรับแสดงข้อความฝึกพิมพ์ในด่านที่ 1

"{""c2array"":true,""size"":[36,1,1],""data"":[[[""dad""]],[[""leak""]],[[""deal""]],[[""lake""]],[[""door""]],[[""ask""]],[[""lug""]],[[""egg""]],[[""sell""]],[[""jade""]],[[""red""]],[[""jas""]],[[""see""]],[[""feet""]],[[""bus""]],[[""us""]],[[""far""]],[[""gold""]],[[""our""]],[[""here""]],[[""blue""]],[[""sat""]],[[""sad""]],[[""that""]],[[""test""]],[[""luck""]],[[""we""]],[[""say""]],[[""wrap""]],[[""two""]],[[""say""]],[[""we""]],[[""fix""]],[[""six""]],[[""zero""]],[[""quiz""]]]}"

3. กำหนดค่าให้ ArrayWords โหลดข้อมูลจาก JSON สำหรับแสดงข้อความฝึกพิมพ์ในด่านที่ 2

"{""c2array"":true,""size"":[30,1,1],""data"":[[[""pizza""]],[[""junky""]],[[""jumps""]],[[""junky""]],[[""jumbo""]],[[""juicy""]],[[""zombi""]],[[""unzip""]],[[""boozy""]],[[""jinks""]],[[""gizmo""]],[[""quark""]],[[""banjo""]],[[""waltz""]],[[""joker""]],[[""jolly""]],[[""japan""]],[[""jewel""]],[[""blaze""]],[[""comix""]],[[""maxim""]],[[""juice""]],[[""prize""]],[[""pyxes""]],[[""chick""]],[[""topaz""]],[[""mummy""]],[[""proxy""]],[[""zebra""]],[[""eject""]]]}"

4. กำหนดค่าให้ ArrayWords โหลดข้อมูลจาก JSON สำหรับแสดงข้อความฝึกพิมพ์ในด่านที่ 3

"{""c2array"":true,""size"":[30,1,1],""data"":[[[""jukebox""]],[[""puzzles""]],[[""kickbox""]],[[""zigzags""]],[[""squeeze""]],[[""junkmen""]],[[""quicken""]],[[""quicker""]],[[""complex""]],[[""jackals""]],[[""jouking""]],[[""waxwork""]],[[""showbiz""]],[[""subject""]],[[""picquet""]],[[""qualify""]],[[""mahjong""]],[[""juryman""]],[[""cerveza""]],[[""bazooka""]],[[""jackass""]],[[""pajamas""]],[[""feezing""]],[[""zooming""]],[[""zippier""]],[[""cashbox""]],[[""jewelry""]],[[""foxfish""]],[[""azimuth""]],[[""vizards""]]]}"

 

  • การตรวจสอบความถูกต้องของการพิมพ์ จะใช้วิธีการเปรียบเทียบค่าจากกล่องข้อความ (txtWord.Text) กับ ข้อความที่อยู่ใน alphabetFont ด้วยคำสั่งแอคชั่น Compare text
  • แสดงข้อความจากแป้นพิมพ์ให้ปรากฏใน alphabetFont ด้วยคำสั่งแอคชั่น Append Text
uppercase(Keyboard.StringFromKeyCode(Keyboard.LastKeyCode))
  • การลบข้อความใน alphabetFont เมื่อกดปุ่ม Backspace จะใช้คำสั่งแอคชั่น Set Text => left(Text,len(Text)-1
left(alphabetFont.Text,len(alphabetFont.Text)-1)

อีเวนต์และแอคชั่นทั้งหมดสำหรับเกมนี้





เมื่อสร้างเสร็จจะได้หน้าตาดังรูป

ขอให้ทุกท่านสนุกกับการประยุกต์ต่อยอดนะครับ

ตัวอย่างงาน : https://www.scirra.com/arcade/tutorial-games/typing-bomb-27071

ดาวน์โหลดไฟล์  JSON  : https://drive.google.com/16PpXkd7fKQy1Ulhx3XvHBmDa6vs7JsfO

ดาวน์โหลดไฟล์ capx : https://drive.google.com/DZVVGNFVnc