Categories
Scratch

การโต้ตอบระหว่างบอลกับผู้ใช้ ตอน 1

ผู้ใช้สามารถเพิ่มหรือลดจำนวนลูกบอลบนเวทีได้ โดยคลิกปุ่มจำนวนลูกบอล ทุกครั้งที่คลิกจะเพิ่มลูกบอล 1 ลูก จนกระทั่งครบ 6 ลูกแล้วจะกลับมาเริ่มที่ 1 ลูกใหม่

สคริปต์นั้นไม่ยุ่งยาก เมื่อคลิกธงเขียว ก็กำหนดค่าตัวแปร balls = 3 แล้วก็เปลี่ยนชุดเป็นหมายเลข 3 จากนั้นส่งรหัส “number of balls changed” ให้ลูกบอลทุกลูกทราบ

แต่เมื่อผู้ใช้คลิกที่ปุ่มนี้ (when balls clicked) มันจะแสดงแอนิเมชั่นสั้นๆ ให้รู้ว่ามันถูกคลิก ด้วยการลดขนาดเหลือ 75% แล้วคอย 0.3 วินาที จากนั้นจะกำหนดค่าตัวแปร balls ใหม่ซึ่งต้องคำนวณกันนิดหน่อย โดยต้องการให้เพิ่มที่ละ 1 ลูก  แต่เมื่อจำนวนลูกบอลมาถึง 6 ให้กลับไป 1 ใหม่ ทำได้โดยใช้สูตรนี้ (1 + (balls mod 6))

mod เป็นการหารที่เอา เศษ เป็นผลลัพท์ เช่น 3 mod 6 ก็คือ 3 / 6 = 0 เศษ 3 ผลลัพท์ของการ mod ที่ได้เท่ากับ 3 เมื่อ balls = 6, balls mod 6 ก็คือ 6 / 6 = 1 เศษ 0 ดังนั้นผลลัพท์ของการ mod ที่ได้เท่ากับ 0 (ไม่ใช่ 1 นะครับ) เพราะฉนั้น  เมื่อ balls = 6, (1 + (balls mod 6)) = (1 + 0) = 1 นั้นคือสิ่งที่เราต้องการ

จากนั้นส่งรหัส “number of balls changed” เหมือนเดิม ให้ลูกบอลทุกลูกทราบ แล้วก็เปลี่ยนชุดถัดไป (next costume) ก่อนที่จะเปลี่ยนขนาดกลับมาเท่าเดิม (100%)

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

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 )

Twitter picture

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

Facebook photo

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

Connecting to %s