แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-6-25 12:16
[Renpy] 44. วิธีแทรกฉาก Movies ขณะเล่นเกมส์
การสั่งให้โปรแกรมเล่นไฟล์ Movie จะแบ่งออกเป็น2 ประเภทด้วยกันนะค่ะ คือ
1. สั่งให้เล่นฉาก Movie ก่อนเข้าสู่หน้าเมนูหลักเป็นไตเติ้ลก่อนเข้าเกมส์
2. สั่งให้เล่นฉาก Movie หลังผู้เล่นคลิกปุ่ม"Start" ตัวอย่างเช่น เพลงหรือเนื้อเรื่องอินโทรก่อนเข้าสู่เนื้อหาหลักของตัวเกมส์ หรือ สั่งให้เล่นฉากMovie แทรกขั้นกลางขณะเล่นเกมส์เมื่อมาถึงช่วงใดช่วงหนึ่ง
ในบทความนี้จะแนะนำเฉพาะวิธีที่ 2 นะค่ะ
*** สกุลไฟล์ที่ใช้ได้นะค่ะ.mpg .ogv (.avi ไม่ขอแนะนำบางไฟล์มันจะเล่นภาพกระตุก)
แล้วให้นำไฟล์ Movie ไปวางไว้ที่แฟ้ม"game" ของเรา หรือจะใส่ไว้ที่โฟลเดอร์ย่อยชื่ออะไรก็ได้แต่จะต้องให้อยู่ภายในแฟ้ม "game")
การเล่น Movie หรือ VDO แทรกระหว่างขณะเล่นเกมส์ ในโปรแกรม Renpyจะมี 2 ชนิดด้วยกัน คือ
1. แบบแสดงผลเต็มหน้าจอ
รูปแบบการเขียนโค๊ด...- Function: renpy.movie_cutscene (filename, delay=None, loops=0, stop_music=True):
คัดลอกไปที่คลิปบอร์ด
อธิบาย:-filename - คือชื่อไฟล์ Movieพร้อมสกุล
delay - จำนวนวินาทีที่จะเล่นMovie โดยปกติจะเล่นอัตโนมัติตามความยาวของ Movie และจะไม่หยุดเล่นจนกว่าผู้ใช้จะคลิกเม้าส์บนหน้าจอเกมส์
loops - จำนวนครั้งที่ต้องการให้เล่นวนซ้ำถ้ากำหนดเป็น -1 คือเล่นวนไปเรื่อยๆ
stop_music - ในกรณีที่มีMovie เล่นต่อกันมากกว่า 2 ไฟล์ถ้ากำหนดเป็น True เมื่อผู้ใช้คลิกเม้าส์ที่หน้าจอโปรแกรมจะหยุดเล่นเพลง และถ้าทำการคลิกเม้าส์ที่หน้าจออีกครั้ง Movie ถัดไปจะเล่นต่อแทน
ตัวอย่างการเขียนโค๊ด....
- $ renpy.movie_cutscene("On_Your_Mark.mpg")
คัดลอกไปที่คลิปบอร์ดตัวอย่างการนำไปใช้งาน
- label start:
- $ renpy.movie_cutscene("Echo.mpg") #<------------แบบแสดงภาพ Movie เต็มจอ
- e "You've created a new Ren'Py game."
- return
คัดลอกไปที่คลิปบอร์ด
พิมพ์โค๊ดลงไปใส่ไฟล์ script.rpy .....
ผลลัพธ์ที่ได้....
2. แบบกำหนดขนาดและตำแหน่งที่จะเล่น
รูปแบบการเขียนโค๊ด...
- Function: Movie (fps=24, size=None, **properties)
คัดลอกไปที่คลิปบอร์ด อธิบาย:-
fps - จำนวนเฟรมต่อวินาที
size - ขนาดของฉากMovie เทีบยกับขนาดของหน้าจอเกมส์
properties - ใช้ใส่รายละเอียดต่างๆเช่น ตำแหน่งพิกัดที่วาง Movie
ตัวอย่างการเขียนโค๊ด....
- init:
- image movie = Movie(fps=200, size=(400, 300), xalign=0.5, yalign=0.5) #<--- สร้างตัวแปรกำหนค่า Movie
- # The game starts here.
- label start:
- show movie #<---- เปิดใช้คุณสมับติที่กำหนดในของ Movie
- play movie "Echo.mpg" #<----สั่งให้โปรแกรมเล่น Movie
- e "You've created a new Ren'Py game."
-
- stop movie #<----สั่งให้โปรแกรมยุติการเล่น Movie
- hide movie #<----ปิดการใช้คุณสมบัติที่กำหนดในของ Movie
- e "Wow, this movie is really terrible."
- return
คัดลอกไปที่คลิปบอร์ด
พิมพ์โค๊ดลงไปใส่ไฟล์ script.rpy .....
ผลลัพธ์ที่ได้.... ฉาก Movie จะเล่นที่กลางหน้าจอเกมส์ เพราะเรากำหนดตำแหน่งไว้ที่ แกนX = 0.5 และ Y = แกน 0.5
วิธีป้องกันไม่ให้ผู้เล่นคลิกข้ามฉากMovie
อย่างที่รู้กันว่า...บางครั้ง user หรือผู้เล่นมักจะคลิกเม้าส์เพื่อข้ามฉาก Movie บางตอนที่สำคัญไปไม่ว่าจะด้วยความเร่งรีบ หรือความพลั้งเผลอก็ตาม เราสามารถบังคับให้ผู้เล่นทนดู Movieทั้งหมดตั้งแต่ต้นจนจบได้โดยการใส่คำสั่งดังนี้ค่ะ
- play movie "Echo.mpg"
- $ renpy.pause(188.4, hard=True) #<----คำสั่งตัวนี้จะป้องกันไม่ให้ผู้เล่นคลิกเม้าส์ข้ามฉาก
คัดลอกไปที่คลิปบอร์ด สรุปง่ายๆมันก็คือคำสั่ง "หยุดชั่วคราว"( pause )เมื่อใช้คำสั่งนี้โปรแกรมจะไม่ทำงานอะไรเลย รวมทั้งไม่รับคำสั่งจากเม้าส์ จนกว่าจะถึงเวลาที่กำหนด
เวลาที่กำหนดที่ว่านี้ คือ ตัวเลขที่อยู่ด้านหลังคำสั่งpause ค่ะ ซึ่งจะแทนค่าเวลาที่โปรแกรมจะหยุดรับคำสั่งมีหน่วยเป็นวินาทีตัวอย่างการคิดตัวเลข ก็เช่น ถ้า Movie มีความยาวในการเล่นทั้งสิ้น3 นาที 14 วินาที ก็ให้เอา 3 คูณด้วย 60 วินาที บวกด้วย 14 แค่นี้เราก็จะได้ตัวเลขหน่วยที่เป็นวินาทีมาเท่ากับ194 ค่ะ
ขอให้สนุกกับการสร้างเกมส์นะค่ะ
******************************
บทความโดย นุ้ก
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
(ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.comเท่านั้น)
|