Categories
Scratch

โปรเจก GravityBlocks

โปรเจก GravityBlocks เป็นการจำลอง (simulation) ง่ายๆให้เห็นถึงแรงโน้มถ่วง ที่มวลวัตถุจะตกลงสู่พื้นหรืออะไรก็ได้ที่สามารถมารองรับมันได้ เปิดโปรเจค GravityBlocks โดยเลือก Open ในเมนู File จากนั้นคลิกปุ่ม Examples เลือกโฟรเดอร์ Simulations เลือกโปรเจก GravityBlocks

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

ใบคำสั่งมีไว้เพื่อให้ข้อมูลก่อนการแสดงการจำลอง ดังนั้นมันควรจะหายไปเมื่อการจำลองเริ่มขึ้น สคริปต์ของใบคำสั่งนี้เพียงแค่ทำให้มันหายไปหลังจากคลิกธงเขียว โดยใช้บล็อกตั้งค่าล่องหนตั้งค่าไปที่ 100 (หรือ -100 ก็ได้ 0 เป็นค่าปกติ)

โปรเจกนี้มีบล็อกอยู่ 15 ชิ้นซึ่งเหมือนกันหมด ดังนั้นสร้างบล็อกแรกพร้อมสคริปต์เท่านั้น จากนั้นคลิกขวาเลือกทำซ้ำ (duplicate) อีก 14 ครั้งก็จะได้บล็อกทั้งหมดเหมือนกัน

สคริปต์ของบล็อกก็ไม่ซับซ้อน โดยที่เมื่อคลิกธงเขียวแล้ว บล็อกจะทำการตรวจสอบอยู่ 2 เรื่อง ไปเรื่อยๆ โดยใช้บล็อกควบคุมวนซ้ำตลอดหาก (forever if) เรื่องแรกเป็นการตรวจดูว่าสีฟ้าอ่อนสัมผัสกับสีบานเย็นหรือไม่ โดยใช้บล็อกสีสัมผัสกันไหม (color is touching ?) แต่จริงๆแล้วเราต้องการตรวจสอบว่าสีสองสีนี้ ไม่ สัมผัสกัน ซึ่งแสดงว่าไม่มีสิ่งกีดขวางบล็อก ดังนั้นให้บล็อกเคลื่อนที่ลงได้ 1 หน่วย แต่ใน Scratch ไม่มีการตรวจสอบปฏิเสธ ดังนั้นจึงต้องใช้บล็อกไม่ (not) ในการเปลี่ยนตรรกะจากเท็จเป็นจริง (หรือจริงเป็นเท็จ) เนื่องจากบล็อกที่อยู่ในบล็อกวนซ้ำจะทำงานก็ต่อเมื่อการตรวจสอบเป็นจริงเท่านั้น

สังเกตุว่าตัวบล็อกมีสองสี ด้านบนเป็นแถบบางๆสีบานเย็น เพื่อให้บล็อกที่ตกมาใส่มัน หยุดอยู่บนบล็อกนั้น ทั้งนี้เพราะด้านล่างที่เหลือของบล็อกเป็นสีฟ้าอ่อนนั้นเอง นอกจากนั้นพื้นฉากหลังก็เป็นสีขาวโล่งๆ ยกเว้นที่พื้นเป็นแถบสีบานเย็นเพื่อหยุดบล็อกที่มาตกใส่มันให้หยุดที่พื้นนั้นเอง

อีกเรื่องที่ต้องตรวจสอบคือเสียงดังไหม (loud?) ถ้าเสียงดังพอ บล็อกจะถูกเคลื่อนที่ในแนวนอนด้วยค่าที่สุ่มมาระหว่าง -10 ถึง 10 โดยใช้บล็อกสุ่ม (pick random)

One reply on “โปรเจก GravityBlocks”

[…] ใบคำสั่งมีไว้เพื่อให้ข้อมูลก่อนการแสดงการจำลอง ดังนั้นมันควรจะหายไปเมื่อการจำลองเริ่มขึ้น สคริปต์ของใบคำสั่งนี้เพียงแค่ทำให้มันหายไปหลังจากคลิกธงเขียว เหมือนในโปรเจก GravityBlocks […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s