Thaigraph

 

   

ค้นหา
Thaigraph หน้าฟอรั่ม Ren'Py [renpy] วิธีแทรกฉาก Movies ขณะเล่น ...
ดู: 2147|ตอบ: 6
go

[renpy] วิธีแทรกฉาก Movies ขณะเล่นเกมส์

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 26-4-2013 06:29 |แสดงโพสต์ทั้งหมด
[renpy] วิธีแทรกฉาก Movies ขณะเล่นเกมส์

การสั่งให้โปรแกรมเล่นไฟล์ Movie จะแบ่งออกเป็น 2 ประเภทด้วยกันนะค่ะ คือ
1. สั่งให้เล่นฉาก Movie ก่อนเข้าสู่หน้าเมนูหลัก เป็นไตเติ้ลก่อนเข้าเกมส์
2. สั่งให้เล่นฉาก Movie หลังผู้เล่นคลิกปุ่ม "Start" ตัวอย่างเช่น เพลงหรือเนื้อเรื่องอินโทร ก่อนเข้าสู่เนื้อหาหลักของตัวเกมส์
หรือ สั่งให้เล่นฉาก Movie  แทรกขั้นกลางขณะเล่นเกมส์เมื่อมาถึงช่วงใดช่วงหนึ่ง

ในบทความนี้จะแนะนำเฉพาะวิธีที่ 2 นะค่ะ



*** สกุลไฟล์ที่ใช้ได้นะค่ะ .mpg .ogv (.avi ไม่ขอแนะนำบางไฟล์มันจะเล่นภาพกระตุก)


แล้วให้นำไฟล์ Movie ไปวางไว้ที่แฟ้ม "game" ของเรา  หรือจะใส่ไว้ที่โฟลเดอร์ย่อยชื่ออะไรก็ได้ แต่จะต้องให้อยู่ภายในแฟ้ม "game")

*** ดูวิธีการแปลงไฟล์ให้เป็นสกุลต่างๆ ได้ที่นี่ค่ะ Format Fatory โปรแกรมแปลงไฟล์ครอบจักรวาล




การเล่น Movie หรือ VDO แทรกระหว่างขณะเล่นเกมส์ ในโปรแกรม Renpy จะมี 2 ชนิดด้วยกัน คือ

1. แบบแสดงผลเต็มหน้าจอ

รูปแบบการเขียนโค๊ด...




  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 ถัดไปจะเล่นต่อแทน


ตัวอย่างการเขียนโค๊ด....

  1. $ renpy.movie_cutscene("On_Your_Mark.mpg")
คัดลอกไปที่คลิปบอร์ด
ตัวอย่างการนำไปใช้งาน
  1. label start:
  2.     $ renpy.movie_cutscene("Echo.mpg") #<------------แบบแสดงภาพ Movie เต็มจอ
  3.     e "You've created a new Ren'Py game."
  4.     return
คัดลอกไปที่คลิปบอร์ด

พิมพ์โค๊ดลงไปใส่ไฟล์ script.rpy .....  


ผลลัพธ์ที่ได้....


2. แบบกำหนดขนาดและตำแหน่งที่จะเล่น
รูปแบบการเขียนโค๊ด...

  1. Function:  Movie  (fps=24, size=None, **properties)
คัดลอกไปที่คลิปบอร์ด
อธิบาย:-
fps
- จำนวนเฟรมต่อวินาที
size - ขนาดของฉาก Movie เทีบยกับขนาดของหน้าจอเกมส์
properties - ใช้ใส่รายละเอียดต่างๆ เช่น ตำแหน่งพิกัดที่วาง Movie



ตัวอย่างการเขียนโค๊ด....


  1. init:
  2.     image movie = Movie(fps=200, size=(400, 300), xalign=0.5, yalign=0.5) #<--- สร้างตัวแปรกำหนค่า Movie

  3. # The game starts here.
  4. label start:
  5.     show movie #<---- เปิดใช้คุณสมับติที่กำหนดในของ Movie
  6.     play movie "Echo.mpg" #<----สั่งให้โปรแกรมเล่น Movie

  7.     e "You've created a new Ren'Py game."
  8.    
  9.     stop movie #<----สั่งให้โปรแกรมยุติการเล่น Movie
  10.     hide movie #<----ปิดการใช้คุณสมบัติที่กำหนดในของ Movie

  11.     e "Wow, this movie is really terrible."
  12.     return
คัดลอกไปที่คลิปบอร์ด

พิมพ์โค๊ดลงไปใส่ไฟล์ script.rpy .....


ผลลัพธ์ที่ได้.... ฉาก Movie จะเล่นที่กลางหน้าจอเกมส์ เพราะเรากำหนดตำแหน่งไว้ที่ แกน X = 0.5 และ Y = แกน 0.5





วิธีป้องกันไม่ให้ผู้เล่นคลิกข้ามฉาก Movie

อย่างที่รู้กันว่า... บางครั้ง user หรือ ผู้เล่นมักจะคลิกเม้าส์เพื่อข้ามฉาก Movie บางตอนที่สำคัญไป ไม่ว่าจะด้วยความเร่งรีบ หรือความพลั้งเผลอก็ตาม เราสามารถบังคับให้ผู้เล่นทนดู Movie ทั้งหมดตั้งแต่ต้นจนจบได้โดยการใส่คำสั่งดังนี้ค่ะ
  1.     play movie "Echo.mpg"
  2.     $ renpy.pause(194.0, hard=True) #<--- คำสั่งตัวนี้คือ การสั่งให้โปรแกรมหยุดการรับทุกคำสั่งชั่วคราว
คัดลอกไปที่คลิปบอร์ด
สรุปง่ายๆมันก็คือคำสั่ง "หยุดชั่วคราว"( pause )เมื่อใช้คำสั่งนี้ โปรแกรมจะไม่ทำงานอะไรเลย รวมทั้งไม่รับคำสั่งจากเม้าส์ จนกว่าจะถึงเวลาที่กำหนด


เวลาที่กำหนดที่ว่านี้ คือ ตัวเลขที่อยู่ด้านหลังคำสั่ง pause ค่ะ ซึ่งจะแทนค่าเวลาที่โปรแกรมจะหยุดรับคำสั่งมีหน่วยเป็นวินาที ตัวอย่างการคิดตัวเลข ก็เช่น ถ้า Movie มีความยาวในการเล่นทั้งสิ้น 3 นาที 14 วินาที ก็ให้เอา 3 คูณด้วย 60 วินาที บวกด้วย 14 แค่นี้เราก็จะได้ตัวเลขหน่วยที่เป็นวินาทีมาเท่ากับ 194 ค่ะ



ขอให้สนุกกับการสร้างเกมส์นะค่ะ


บทความโดย NOOKFUFU2
(ขอสงวนสิทธิ์ให้เผยแพร่เฉพาะในเว็บไทยกราฟเท่านั้น!!!)



ไฟล์แนบ: คุณจำเป็นต้องเข้าสู่ระบบก่อนจึงจะสามารถดูและดาวน์โหลดไฟล์แนบได้ หากยังไม่มีแอคเคานต์หรือยังไม่ได้เป็นสมาชิก กรุณาสมัครสมาชิก
บางบทความคุณจำเป็นต้องสมัครสมาชิกแบบ VIP และ SUPERVIP ถึงจะเข้าอ่านบทความได้

Rank: 1

โพสต์เมื่อ 27-4-2013 01:13 |แสดงโพสต์ทั้งหมด
ขอบคุณจากใจจริงขอรับ

Rank: 1

โพสต์เมื่อ 29-4-2013 16:03 |แสดงโพสต์ทั้งหมด
ขอบคุณมากครับจะติดตามบทความของคุณต่อๆไป
จนกว่าจะได้เป็นเกมของตัวเอง

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 29-4-2013 16:14 |แสดงโพสต์ทั้งหมด
ตอบกระทู้ hobbit2008 ตั้งกระทู้

แก้ไขให้แล้วค่ะ ขอบคุณค่ะที่ช่วยชี้จุดบกพร่อง ^^  

Rank: 1

โพสต์เมื่อ 27-10-2013 11:51 |แสดงโพสต์ทั้งหมด
กำ
ผมแอดไม่ได้

Rank: 1

โพสต์เมื่อ 24-1-2017 20:05 |แสดงโพสต์ทั้งหมด
thxx ครับผมม

Rank: 1

โพสต์เมื่อ 14-7-2017 21:12 |แสดงโพสต์ทั้งหมด
มันไม่มีเสียงอ่าครับ
คุณต้องเข้าสู่ระบบก่อนจึงจะสามารถตอบกลับ เข้าสู่ระบบ | สมัครสมาชิก


Thaigraph

GMT+7, 25-9-2017 03:58 , Processed in 0.259388 second(s), 20 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc. Thai Language by DiscuzThai! Team.

Top 10 Best Sellers in Clothing for 2017 Top 10 Best Sellers in Clothing Best Sellers in Clothing
Top 10 Best Sellers in Books reviewer 2017 Top 10 Best Sellers in Books Best Sellers in Books