ทุกคนเคยเห็นเกมไดโนเสาร์หน้าตาแบบนี้บ้างไหมครับ

ใช่แล้วครับ นี่คือเกมไดโนเสาร์กระโดดจาก Google นั่นเองครับ และสถานการณ์ส่วนใหญ่ที่ทำให้พบเจอน้องไดโนเสาร์ตัวนี้คือช่วงเวลาที่เราเข้าโปรแกรม Google Chrome ในช่วงที่ไม่มีอินเตอร์เน็ตนั่นเอง ซึ่งจริงๆแล้วเราสามารถเข้าเล่นเกมนี้ได้เลยโดยไม่ต้องรอให้อินเตอร์เน็ตมีปัญหาครับ
( สามารถคลิกที่ลิ้งก์นี้ได้เลยครับ chrome://dino )
เราใช้ Scratch มาทำเกมไดโนเสาร์กระโดด ได้เหมือนกัน Code อยู่ข้างล่าง
มาทำความรู้จักเกมไดโนเสาร์ให้มากขึ้นกัน
เกมไดโนเสาร์นี้เปิดตัวครั้งแรกช่วงปี 2014 โดย Google ในวาระครบรอบ 10 ปีของโปรแกรม Google Chrome ครับ โดยในช่วงแรกที่เกมนี้ถูกปล่อยออกมามีจำนวนผู้ใช้งานกว่า 270 ล้านคนทั่วโลกเลยทีเดียว ซึ่งผู้พัฒนาได้ให้สัมภาษณ์ว่าแนวคิดในการนำไดโนเสาร์มาเป็นตัวละครเอกของเกมนั่นคือ การเปรียบเปรยการที่อินเตอร์เน็ตหลุด หรือ ล่มนั้น ไม่ต่างกับโลกในยุคไดโนเสาร์ เพราะว่าในยุคนั้นยังไม่มีเทคโนโลยีการสื่อสารใดๆเกิดขึ้นบนโลกนั่นเอง ในส่วนของตัวละครมีรูปแบบเป็น Pixel art เพราะต้องการให้สอดคล้องกับการแจ้งเตือนของโปรแกรม Google Chrome เวลา Error นั่นเอง
รูปแบบของเกมนี้คือ “An Endless Runner Game” นั่นหมายถึงเกมที่วิ่งไปเรื่อยๆไม่มีวันจบ แต่ถึงแม้จะใช้คำว่า Endless Game แต่ผู้พัฒนายังมีการทิ้งท้ายไว้อีกว่า
” We built it to max out at approximately 17 million years, the same amount of time that the T-rex was alive on Earth… but we feel like your spacebar may not be the same afterwards.”
ถ้าให้เข้าใจง่ายๆคือ เกมนี้ใช้เวลาเล่น 17 ล้านปีตามจำนวนปีที่ไดโนเสาร์ไทรันโนซอรัสอยู่บนโลกเกมนี้ถึงจะจบครับ
(= =”)
ที่มา : As the Chrome dino runs, we caught up with the Googlers who built it (blog.google)
เรามาลองสร้างเกม Running Dinosaur กันดีกว่า
วันนี้จะพาทุกคนมาสร้างเกม Running Dinosaur กันครับ โดยเราจะสร้างบนโปรแกรม Scratch ซึ่งสามารถเข้าใช้งานได้ฟรี! ผ่านลิ้งก์นี้เลยครับ Scratch – Imagine, Program, Share (mit.edu)
สามารถอ่านบทความเรื่อง Scratch ได้ที่ Scratch เรียนรู้โค้ดดิ้งอย่างง่าย สร้างสรรค์ได้ไม่รู้จบ

เรามาดูส่วนประกอบของเกม และบล็อกคำสั่งที่ใช้ในการเขียนโค้ดกันครับ
Running Dinosaur

แนะนำส่วนประกอบของเกม
เวที (Stage)

ตัวละคร (Sprite)
T-Rex

Costume: ตัวละครนี้มีชุดอยู่ 4 ชุดด้วยกัน เพื่อใช้ในการสร้างท่าทางให้กับของไดโนเสาร์ (ดังภาพด่านล่าง)

สามารถเข้าไปตกแต่งรูปไดโนเสาร์ได้ตามใจชอบในส่วนของ Costume ดังภาพ

Cactus

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


เริ่มต้นเขียนโปรแกรมให้กับเกมของเรากัน
ชุดคำสั่งสำหรับตัวละคร T-Rex
1. ชุดคำสั่งสำหรับการตั้งค่าตัวละคร

- เมื่อกดธงเขียว
- แสดงตัวบนเวที
- กำหนดขนาดที่ 80%
- ไปที่ตำแหน่ง x = -165, y = -110
- เปลี่ยนชุดเป็น T-rex
- วนซ้ำคำสั่งต่อไปนี้ตลอดเวลา => คำสั่งต่อไปนี้ทำให้ตัวละครแสดงผลเป็นท่าทางกำลังวิ่งอยู่ตลอดเวลา
- เปลี่ยนชุดเป็น T-rex run1
- รอ 0.1 วินาที
- เปลี่ยนชุดเป็น T-rex run2
- รอ 0.1 วินาที
note : ระยะเวลาที่ใส่ในบล็อกคำสั่ง wait for seconds สามารถปรับเปลี่ยนได้ตามใจชอบตัวเลขยิ่งน้อยตัวละครยิ่งเปลี่ยนชุดเร็ว
2. ชุดคำสั่งควบคุมตัวละครไดโนเสาร์
(ในการสร้างคำสั่งต่อไปนี้จะไม่ได้ใช้บล็อกคำสั่ง When this sprite clicked เพราะว่าทีมงานต้องการให้ คลิกตรงจุดไหนก็สามารถทำให้ตัวละครกระโดดได้ ไม่จำเป็นต้องคลิกที่ตัวละครเท่านั้น)

- เมื่อกดธงเขียว
- วนซ้ำคำสั่งต่อไปนี้ตลอดเวลา => เพื่อให้เกิดการตรวจสอบการคลิกตลอดเวลา
- ถ้าเมาส์ถูกคลิก => คำสั่งต่อไปนี้ทำให้ตัวละครกระโดดขึ้นและ กลับลงมายืนบนพื้น
- เล่นเสียง Jump
- วนซ้ำคำสั่งต่อไปนี้ 14 ครั้ง
- เปลี่ยนค่า Y ทีละ 10 หน่วย
- วนซ้ำคำสั่งต่อไปนี้ 14 ครั้ง
- เปลี่ยนค่า Y ทีละ -10 หน่วย
note : ระยะเวลาที่ใส่ในบล็อกคำสั่ง wait for seconds สามารถปรับเปลี่ยนได้ตามใจชอบตัวเลขยิ่งน้อยตัวละครยิ่งเปลี่ยนชุดเร็ว
- ถ้าเมาส์ถูกคลิก => คำสั่งต่อไปนี้ทำให้ตัวละครกระโดดขึ้นและ กลับลงมายืนบนพื้น
3. ชุดคำสั่งตรวจสอบการสัมผัสของตัวละคร
สร้างคำสั่งตรวจสอบการสัมผัสถูกตัวละคร Cactus เพื่อสร้างความสนุกให้กับเกม

- เมื่อกดธงเขียว
- วนซ้ำคำสั่งต่อไปนี้ตลอดเวลา => คำสั่งตรวจสอบการสัมผัสตลอดเวลา
- ถ้าสัมผัสตัวละคร Cactus
- หยุดการทำงานคำสั่งอื่นๆของ ตัวละครนี้
- เปลี่ยนชุดเป็น T-rex Touch
- เล่นเสียง hit จนกว่าจะจบ
- สิ้นสุดการทำงานทั้งหมด
- ถ้าสัมผัสตัวละคร Cactus
ชุดคำสั่งสำหรับตัวละคร Cactus
1. ชุดคำสั่งตั้งค่าตัวละคร

- เมื่อกดธงเขียว
- ซ่อนตัว
- กำหนดขนาดที่ 80%
- ไปที่ชิ้นงานหลังสุด
- ไปที่ตำแหน่ง x = 240, y = -120
- รอ 1 วินาที
- วนซ้ำคำสั่งต่อไปนี้ตลอดเวลา
- แสดงตัว
- เปลี่ยนตำแหน่ง x ทีละ -5
- ถ้าตำแหน่ง x น้อยกว่า -200 => คำสั่งต่อไปนี้จะตรวจสอบตำแหน่งของตัวละครเพื่อทำการกลับสู่ตำแหน่งเริ่มต้น
- ซ่อนตัว
- เปลี่ยนชุดถัดไป
- ไปที่ตำแหน่ง x = 240, y = -120
ชุดคำสั่งสำหรับเวที (Stage)
1. ชุดคำสั่งตั้งค่าเกม

- เมื่อกดธงเขียว
- กำหนดค่าตัวแปร score เป็น 0
- เลือกฉากหลักเป็น Land
- วนซ้ำคำสั่งต่อไปนี้ตลอดเวลา
- กำหนดค่าตัวแปร score เป็น round timer => คำสั่งนี้เราจะนำตัวแปร timer ที่โปรแกรมมีให้มาใช้เป็นคะแนนให้กับผู้เล่น
- ถ้าตัวแปร score > ตัวแปร high_score => คำสั่งนี้ทำให้เกิดการบันทึกสถิติคะแนนสูงสุดที่ทำได้
- กำหนดค่าตัวแปร high_score เป็น score
- ถ้าตัวแปร score > 0 และตัวแปร score mod 10 = 0 => คำสั่งต่อไปนี้จะทำให้เกิดการเล่นเสียงเตือนผู้เล่นทุกๆ 10 คะแนน
- เล่นเสียง reach จนกว่าจะจบ
- รอ 1 วินาที
สามารถ Share Project ได้ที่ https://scratch.mit.edu/projects/973190595