เกมขี่รถหลบหลีกสิ่งกีดขวาง ด้วยภาษา HTML (Road Racer by HTML)

ผู้เขียนบทความ : นายรบส เพชรสีช่วง 167204132044

คณะวิศวกรรมศาสตร์ : สาขาวิศวกรรมไฟฟ้า

วิชา : 04-000-104 การโปรแกรมคอมพิวเตอร์ 1/2567

1.ความเป็นมา

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

เเละเกมนี้ยังใช้แนวคิดด้านฟิสิกส์และการจำลองการเคลื่อนที่ ซึ่งถือเป็นพื้นฐานสำคัญในสาขาวิศวกรรมไฟฟ้าและอิเล็กทรอนิกส์ ในการพัฒนาเกมนี้มีการนำความรู้ทางฟิสิกส์ เช่น แรงเสียดทาน การเร่ง การชน และการเคลื่อนที่ของวัตถุ มาจำลองเพื่อสร้างประสบการณ์การขับขี่ที่สมจริง นอกจากนี้ ยังมีการจำลองการจัดการพลังงาน (หรือเชื้อเพลิง) ซึ่งเป็นอีกแนวคิดหนึ่งที่เกี่ยวข้องกับการบริหารจัดการพลังงานในวิศวกรรมไฟฟ้า เพื่อให้ผู้เล่นได้เรียนรู้ถึงการใช้งานทรัพยากรอย่างมีประสิทธิภาพ

2.วัตถุประสงค์

  • สร้างประสบการณ์การเล่นเกมที่น่าสนใจ: ให้ผู้เล่นมีความสนุกสนานและตื่นเต้นในการเล่นเกม
  • พัฒนาทักษะ: เพื่อช่วยให้ผู้เล่นฝึกฝนทักษะการตอบสนองและการคิดวิเคราะห์ในสถานการณ์ที่เปลี่ยนแปลงอย่างรวดเร็ว
  • เรียนรู้การเขียนโปรแกรม: เพื่อให้ผู้เรียนสามารถเข้าใจและเรียนรู้การพัฒนาเกมโดยใช้ HTML5 และ JavaScript ซึ่งเป็นเครื่องมือที่สำคัญในโลกการพัฒนาเว็บ

3.ขอบเขต

  • พื้นที่เกม: เกมถูกจำกัดให้เล่นในพื้นที่ของ <canvas> ขนาด 800×600 พิกเซล
  • การควบคุม: ผู้เล่นสามารถใช้ปุ่มลูกศรซ้ายและขวาในการเลี้ยวรถ โดยการกดปุ่มจะทำให้รถเคลื่อนที่ไปทางซ้ายหรือขวา
  • การเกิดสิ่งกีดขวาง: สิ่งกีดขวาง (รถที่วิ่งสวน) จะเกิดขึ้นแบบสุ่มจากด้านบนของจอ โดยมีความเร็วและระยะห่างที่แตกต่างกัน
  • สถานะน้ำมัน: น้ำมันจะลดลงทุกวินาที ขึ้นอยู่กับระยะเวลาที่ผู้เล่นขับรถในเกม และจะต้องมีการเก็บไอเทมถังน้ำมันเพื่อเพิ่มปริมาณน้ำมันให้เพียงพอ

4.ประโยชน์ที่คาดว่าจะได้รับ

  • ความสนุกสนาน: ผู้เล่นจะได้รับความสนุกสนานและความบันเทิงจากการเล่นเกม ซึ่งช่วยคลายเครียดและเพิ่มความสุข
  • การพัฒนาทักษะ: การเล่นเกมจะช่วยพัฒนาทักษะการตอบสนอง การวิเคราะห์สถานการณ์ และการวางแผนในการหลบหลีก
  • ความรู้ด้านการเขียนโปรแกรม: ผู้เรียนจะได้เรียนรู้แนวทางการเขียนโปรแกรม การใช้ HTML และ JavaScript ในการสร้างเกม
  • ประสบการณ์การทำงานเป็นทีม: หากมีการทำงานเป็นกลุ่มในการพัฒนาเกม ผู้เรียนจะได้ฝึกทักษะการทำงานร่วมกันและการสื่อสาร

5.ความรู้ที่เกี่ยวข้อง

  • HTML5: ความรู้เกี่ยวกับการสร้างหน้าเว็บและการใช้แท็ก <canvas> เพื่อวาดกราฟิกในเกม
  • JavaScript: ความรู้เกี่ยวกับการเขียนโค้ดเพื่อจัดการการควบคุมเกม ฟังก์ชันต่าง ๆ และการจัดการเหตุการณ์ (event handling)
  • ฟิสิกส์พื้นฐาน: ความรู้เกี่ยวกับการเคลื่อนที่ของวัตถุ ฟิสิกส์ที่ใช้ในการตรวจสอบการชน และการจำลองการเคลื่อนที่ที่สมจริง
  • การออกแบบเกม: ความรู้เกี่ยวกับการออกแบบและพัฒนาเกม เช่น การสร้างระดับความยาก การจัดการกับข้อผิดพลาด และการปรับสมดุลของเกม

6.การดำเนินงาน

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

7.วิธีการใช้งานโปรแกรม

1.เปิดเว็บเบราว์เซอร์: ผู้เล่นสามารถเปิดเว็บเบราว์เซอร์ที่รองรับ HTML5

2.เข้าถึงเกม: เข้าสู่หน้าเกมโดยป้อน URL ที่กำหนด

3.เริ่มเกม: คลิกปุ่มเริ่มเกมเพื่อเริ่มเล่น

4.ควบคุมรถ: ใช้ปุ่มลูกศรซ้ายและขวาในการเลี้ยวรถเพื่อหลบสิ่งกีดขวาง

5.เก็บไอเทม: พยายามเก็บไอเทมถังน้ำมันเพื่อเพิ่มน้ำมันให้กับรถ

6.เกมจบ: หากเกิดการชนกับสิ่งกีดขวางหรือหมดน้ำมัน ระบบจะแสดงหน้าจอ GAME OVER พร้อมปุ่มเริ่มใหม่

8.การทดลองการทำงานของโปรเเกรม

1. ฟังก์ชันการควบคุมรถ (Movement)

ฟังก์ชันนี้ทำหน้าที่รับค่าปุ่มที่ผู้เล่นกด (ซ้ายหรือขวา) และทำการเคลื่อนรถไปทางซ้ายหรือขวา โดยมีการจำกัดความเร็วและการลดความเร็วเมื่อผู้เล่นปล่อยปุ่ม

การทำงาน:

  • หากผู้เล่นกดปุ่มลูกศรซ้าย (keys.left), รถจะเคลื่อนไปทางซ้าย โดยจะค่อยๆ เร่งความเร็วและจำกัดความเร็วสูงสุด (maxSpeed)
  • หากกดปุ่มลูกศรขวา (keys.right), รถจะเคลื่อนไปทางขวาด้วยการเร่งความเร็ว
  • เมื่อปล่อยปุ่ม ลูกศร รถจะค่อยๆ ลดความเร็วตามค่าความฝืด (friction)
  • มีการเช็กว่ารถไม่ออกนอกขอบเขตของหน้าจอ

2. ฟังก์ชันสร้างสิ่งกีดขวาง (Obstacles)

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

การทำงาน:

  • สุ่มเลือกชนิดของสิ่งกีดขวางจาก obstacleTypes
  • สุ่มตำแหน่ง x สำหรับการวางสิ่งกีดขวาง
  • เพิ่มสิ่งกีดขวางที่สุ่มได้ลงในอาร์เรย์ obstacles พร้อมกับตำแหน่งเริ่มต้น (ด้านบนของหน้าจอ)

3. ฟังก์ชันอัปเดตสิ่งกีดขวาง (Update Obstacles)

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

การทำงาน:

  • ทำให้สิ่งกีดขวางเลื่อนลงมาตามค่าความเร็ว (speed) ของมัน
  • ลบสิ่งกีดขวางออกเมื่อมันเคลื่อนผ่านหน้าจอ (ออกไปด้านล่าง)
  • เช็กการชนระหว่างสิ่งกีดขวางและรถ โดยเรียกใช้ฟังก์ชัน checkCollision() ถ้าชนกันจะเรียกฟังก์ชัน gameOver() เพื่อจบเกม

4. ฟังก์ชันสร้างไอเทมเชื้อเพลิง (Fuel Items)

ฟังก์ชันนี้สร้างไอเทมเชื้อเพลิงที่จะสุ่มปรากฏบนถนน

การทำงาน:

  • กำหนดขนาด (width, height) ของไอเทมเชื้อเพลิง
  • สุ่มตำแหน่ง x ที่จะวางไอเทม
  • เพิ่มไอเทมเชื้อเพลิงลงในอาร์เรย์ fuelItems พร้อมกับค่าความเร็วที่ใช้ในการเลื่อนลงบนถนน

5. ฟังก์ชันตรวจสอบการชน (Collision Check)

ฟังก์ชันนี้ใช้ในการตรวจสอบว่ารถชนกับสิ่งกีดขวางหรือไอเทมเชื้อเพลิงหรือไม่

การทำงาน:

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

6. ฟังก์ชันอัปเดตเชื้อเพลิง (Update Fuel)

ฟังก์ชันนี้ทำหน้าที่ลดปริมาณเชื้อเพลิงและอัปเดตแถบแสดงระดับเชื้อเพลิง

การทำงาน:

  • ลดค่าปริมาณเชื้อเพลิงของรถลงทีละ 1 หน่วย
  • อัปเดตขนาดของแถบเชื้อเพลิง (Fuel Bar) ตามปริมาณเชื้อเพลิงที่เหลือ
  • หากเชื้อเพลิงหมด (เชื้อเพลิงเป็น 0) เกมจะจบลงโดยเรียกฟังก์ชัน gameOver()

7. ฟังก์ชันจบเกม (Game Over)

ฟังก์ชันนี้ใช้ในการหยุดเกมเมื่อเกิดเหตุการณ์เกมโอเวอร์ เช่น รถชนหรือเชื้อเพลิงหมด

การทำงาน:

  • หยุดการทำงานของเกมทั้งหมด (หยุดการสร้างสิ่งกีดขวาง, ไอเทมเชื้อเพลิง, การจับเวลา, และการอัปเดตเชื้อเพลิง)
  • แสดงหน้าจอ “GAME OVER” ให้ผู้เล่นเห็น

8. ฟังก์ชันเริ่มเกมใหม่ (Restart Game)

ฟังก์ชันนี้ใช้ในการเริ่มเกมใหม่เมื่อผู้เล่นกดปุ่ม “Restart”

การทำงาน:

  • รีเซ็ตค่าต่าง ๆ ของเกม เช่น สร้างรถใหม่จากลิสต์ carTypes รีเซ็ตสิ่งกีดขวาง ไอเทมเชื้อเพลิง และตัวจับเวลา
  • ซ่อนหน้าจอ “GAME OVER”
  • เรียกฟังก์ชัน `startGame

9.สรุปผลการทดลองและข้อเสนอแนะ

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

10.ข้อมูลอ้างอิง

วิดิโออธิบายหลักการทำงานโปรเเกรม

LINK GAME : https://onlinegdb.com/ETfIIA3FI

You may also like...

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *