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

เราจะทำอย่างไรเพื่อปรับภาพเคลื่อนไหวของเรา ตามที่เราได้เขียนโค้ดไว้ตอนนี้เกล็ดหิมะสามารถเริ่มต้นชีวิตของมันได้ทุกที่ที่ด้านบนของเวทีที่ตำแหน่งระหว่าง 0 และ 510 บนแกน X จากนั้นเกล็ดหิมะนี้ลงไปในทิศทางที่เป็นมุมฉากไปทางขวา ดูเหมือนว่ามันเป็นทิศทางเชิงมุมที่ทำให้เกล็ดหิมะหายไปจากมุมล่างซ้ายของเวที เราสามารถนำโค้ดที่สร้างการเคลื่อนที่เชิงมุมออกมาและเกล็ดหิมะของเราจะตกลงบนเวที หากเราทำสิ่งนี้หิมะจะปกคลุมทั่วทั้งเวที แต่เราจะปลดปล่อยภาพลวงตาของลมที่การเคลื่อนไหวเชิงมุมเลียนแบบ

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

ตอนนี้เรากำลังสร้างตัวเลขสุ่มสำหรับคุณสมบัติ_Snowflake.x โปรดจำไว้ว่ามันเป็นคุณสมบัติ _Snowflake.x ซึ่งควบคุมตำแหน่ง X เริ่มต้นสำหรับเกล็ดหิมะของเรา ตำแหน่งเริ่มต้นนี้สามารถเป็นตัวเลขใด ๆ ระหว่าง 0 ถึง 510 ตามแนวแกน X

_Snowflake.x = Math.random () * 510;

ถ้าเราบอกให้ Flash ใช้ตัวเลขระหว่าง -350 ถึง 510 เกล็ดหิมะที่ขึ้นต้นด้วยจำนวนลบจะเป็นเกล็ดหิมะที่ในที่สุดก็ตกลงมาที่มุมซ้ายล่างของเวที เราสามารถทำได้โดยการเพิ่ม -350 ไปยังหมายเลขสุ่มที่สร้างขึ้นโดยวิธีการ Math.random ()

_Snowflake.x = -350 + Math.random () * 510;

เปลี่ยนรหัสบรรทัดนี้และทดสอบภาพยนตร์ของคุณ เกิดอะไรขึ้น? เราแก้ไขปัญหาและก่อให้เกิดปัญหาอื่น ตอนนี้เกล็ดหิมะหายไปจากมุมบนขวาของเวที ทำไม? จำนวนที่ใหญ่ที่สุดสำหรับคุณสมบัติ_Snowflake.x (ตำแหน่งของเกล็ดหิมะตามแนวแกน X) จะเท่ากับ 160 (510 - 350) ส่วนที่เหลือของแกน X ระหว่าง 161 ถึง 550 ไม่มีเกล็ดหิมะและนั่นคือสาเหตุที่มุมบนขวาไม่มีหิมะ เราจะรับหมายเลขสำหรับคุณสมบัติ_Snowflake.xให้อยู่ในช่วงระหว่าง 0 ถึง 550 ได้อย่างไร เราสามารถขยายช่วงของหมายเลขสุ่มให้อยู่ระหว่าง 0 ถึง 900 (550 + 350)

_Snowflake.x = -350 + Math.random () * 900;

เปลี่ยนรหัสและทดสอบอีกครั้ง มันได้ผล. เราเสร็จแล้วหรือ ไม่ถ้าคุณปล่อยให้แอนิเมชั่นนี้ทำงานสักพักคุณจะสังเกตเห็นว่ามันเริ่มทำงานกับทรัพยากรของคอมพิวเตอร์ของคุณ เราจำเป็นต้องทำการเปลี่ยนแปลงบางอย่างกับ ActionScript เพื่อให้มีประสิทธิภาพมากขึ้น

หมายเหตุ - รหัสภาพเคลื่อนไหวนี้ยังไม่สมบูรณ์จนกว่าคุณจะถึงตอนจบของบทช่วยสอน อย่าใช้รหัสที่ไม่สมบูรณ์ในโครงการ Flash ของคุณ

ลิขสิทธิ์ 2018 Adobe Systems Incorporated สงวนลิขสิทธิ์. ภาพหน้าจอผลิตภัณฑ์ Adobe พิมพ์ซ้ำได้รับอนุญาตจาก Adobe Systems Incorporated Adobe, Photoshop, อัลบั้ม Photoshop, องค์ประกอบ Photoshop, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, องค์ประกอบรอบปฐมทัศน์, สะพาน, After Effects, InCopy, Dreamweaver, แฟลช, ActionScript, ดอกไม้ไฟ, Contribute, Flash Catalyst และ Flash Paper เป็น / เป็น [a] เครื่องหมายการค้าจดทะเบียน [s] หรือเครื่องหมายการค้า [s] ของ Adobe Systems Incorporated ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ