 |
บุคคลทั่วไป: 3
ไม่มีสมาชิกขณะนี้
สมาชิกทั้งหมด: 43
ยังไม่ยืนยัน: 0
สมาชิกล่าสุด: anyka
|
 |
|
|
Renpy Programming การปรับแต่ง Layout หน้าจอของเกมส์ ตอนที่ 2 (load save และ yesno prompt)
|
|
 |
โอ้ว.........ย้ากกกกกก........อ้าก...........โอ๊ย........ช่วงนี้ปวดหัวสุดๆเลยแฮะ......สวัสดีจ้าทุกท่านกลับมาอีกครั้งกับชั่วโมงเรียนวิชา Ren'py นะจ๊ะ ในคราวที่แล้วเราได้เอ่ยกล่าวกันไปถึงเรื่องของ Layout ในส่วนของ main_menu และ navigation ไปแล้วนะครับ ต่อไปในส่วนของคราวนี้เราจะมาขอเอ่ยกล่าวกันต่อในส่วนของload_save layouts และส่วนของ yesno_prompt layouts เอาล่ะเพื่อไม่ให้เสียเวลาเรามาดูกันเลยดีกว่าครับ
load_save layouts จะเป็นในส่วนของหน้าจอตอนเวลาเราคลิ๊กขวา Save - Load เกมส์โดยที่การกำหนดรูปแบบหน้าจอของฟังก์ชั่นต่างๆนั้นค่อนข้างจะตายตัวครับ ถ้าต้องการอะไรที่มัน Free Style นั้นแนะนำให้ใช้ฟังก์ชั่น layout.imagemap_load_save ซึ่งจะอธิบายอยู่ด้านล่างครับ
ในส่วนของ load_save layouts นั้นจะประกอบไปด้วยกลุ่มฟังก์ชั่นต่างๆ ดังนี้
layout.classic_load_save() เป็นฟังก์ชั่นในการกำหนดรูปแบบในการแสดงผลของหน้าจอ load_save แบบดั้งเดิม Classic ซึ่งจะมีรูปแบบมาตรฐาน ดังรูป
โดยที่เราสามารถปรับแต่งรูปร่างหน้าตาได้ซึ่งจะต้องกำหนดผ่านตัวแปรเหล่านี้
config.file_page_rows จำนวนของแถวของฺ Box ที่แสดงใน หน้า load_save โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.classic_load_save()
config.file_page_rows = 3 <---- จะแสดงออกมา 3 แถว
config.file_page_cols จำนวนของคอลัมของฺ Box ที่แสดงใน หน้า load_save โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.classic_load_save()
config.file_page_rows = 3 <---- จะแสดงออกมา 3 คอลัม
config.file_quick_access_pages จำนวนหน้าใน load_save โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.classic_load_save()
config.file_quick_access_pages = 3 <---- จะแสดงออกมา 3 หน้า
config.disable_file_pager ถ้าเป็น True จะไม่แสดงส่วนที่ใช้แสดงและเลือกหน้าของ load_save ถ้าอยากให้แสดงก็ตั้งค่าให้เป็นFalseหรือไม่ต้องใช้ฟังก์ชั่นนี้ก็ได้ โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.classic_load_save()
config.disable_file_pager = True
config.disable_thumbnails ถ้าเป็น True จะไม่แสดงภาพหน้าหัวข้อ Save ถ้าอยากให้แสดงก็ตั้งค่าให้เป็นFalseหรือไม่ต้องใช้ฟังก์ชั่นนี้ก็ได้ โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.classic_load_save()
config.disable_thumbnails = True
config.load_save_empty_thumbnail กำหนดรูปที่อยู่ข้างหน้าช่อง Save ที่ว่าง จะเป็น .GIF ก็ได้นะแต่มันไม่ขยับอ่ะ - - ถ้าไม่ต้องการให้แสดงรูปก็ใส่ค่าเป็น None ไปซะหรือไม่ก็ไม่ต้องใส่ค่าตัวแปรนี้ลงไปก็ได้ ข้อเสียเพียงอย่างเดียวของการใช้คำสั่งนี้ก็คือ มันจะไม่ยอมลดขนาดของรูปให้อ่ะนะ ซึ่งจะทำให้เกิดความผิดพลาดตอนเวลาแสดงผลได้ (เพราะภาพมันใหญ่เกิน) ดังนั้นจึงต้องตรวจสอบให้แน่ใจก่อนว่าภาพของเรานั้นมีขนาดไม่ใหญ่จนเกินไป โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.classic_load_save()
config.load_save_empty_thumbnail = aaaa.jpg
config.time_format กำหนดรูปแบบการแสดงผลของเวลาทีแสดงในช่อง Save โดยFormat ค่าต่างๆมีความหมายดังนี้
%a weekday name.
%A weekday name (full).
%b month name.
%B month name (full).
%c date and time (locale)
%d day of month [01,31].
%H hour [00,23].
%I hour [01,12].
%j day of year [001,366].
%m month [01,12].
%M minute [00,59].
%p AM or PM
%S Second [00,61]
%U week of year (Sunday)[00,53].
w weekday [0(Sunday),6].
W week of year (Monday)[00,53].
x date (locale).
%X time (locale).
%y year [00,99].
%Y year [2000].
%Z timezone name.
โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.classic_load_save()
config.time_format = "%b %d, %H:%M" <---- จะได้ว่า AUG 13 , 13:14 (เป็นค่าวันเวลาที่ Save ในขณะนั้น)
config.file_entry_format กำหนดรูปแบบในการการแสดงผลทั้งหมดในช่อง Save โดยที่ %(time)s หมายถึง Format ของเวลาที่ได้เอ่ยกล่าวไปแล้ว ส่วน%(save_name)s นั้นเป็นชื่อของ Save นั้นๆ ซึ่งจะต้องกำหนดไว้ตั้งแต่ตอนก่อน Save แล้วโดยใช้ฟังก์ชั่น renpy.save (ตรงนี้ไปดูเอง นิดเดียว) โดยปกติแล้วตรงส่วนนี้จะเหมาะสำหรับเกมส์ที่มี AutoSave น่ะเพราะเราจำเป็นที่จะต้องกำหนดชื่อการSave ไว้ด้วยหรือไม่ก็ต้องสร้างปุ่ม Save ขึ้นมาต่างหากอีกทีเพื่อเพื่อจัดการด้านข้อมูลการ Save ถ้าหากคิดไม่ได้ใช้งานอะไรขนาดนั้นตัวแปรนี้ก็ไม่จำเป็นต้องมีก็ได้
โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.classic_load_save()
config.file_entry_format = "%(time)s\n%(save_name)s"
หมายเหตุ %n หมายถึง ขึ้นบรรทัดใหม่
layout.scrolling_load_save เป็นฟังก์ชั่นในการกำหนดรูปแบบหน้าจอ load_save เป็นรูปแบบของ scrolling area ดังรูป
โดยที่เราสามารถปรับแต่งรูปร่างหน้าตาได้ซึ่งจะต้องกำหนดผ่านตัวแปรเหล่านี้
config.thumbnail_width ขนาดความกว้างของรูปในช่อง Save
config.thumbnail_height ขนาดความกว้างของรูปในช่อง Save
โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.scrolling_load_save()
config.thumbnail_width = 300
config.thumbnail_height = 300
หมายเหตุ รูปของเซฟนั้นจะอยู่ที่มุมขวาบนของหน้าจอนะครับไม่ใช่ในช่อง Save
config.load_save_slots จำนวนช่อง Save ทั้งหมดที่สามารถแสดงได้ในพื้นที่ scrolling area ช่อง Save เหล่านี้เป็นเป็นช่อง save แบบ manualนะครับ โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.scrolling_load_save()
config.load_save_slots = 50
config.load_save_auto_slots จำนวนช่อง AutoSave ทั้งหมดที่สามารถแสดงได้ในพื้นที่ scrolling area จะแสดงอยู่ในช่วงล่างๆของ Save Autosave เหล่านี้ตัวเกมส์จะทำการ Save ให้อัตโนมัติเวลาที่เรากดออกจากเกมส์ไปเฉยๆเลย ซึ่งมันจะเป็นช่อง Save ที่แยกตัวออกมาอีกทีหนึ่ง โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.scrolling_load_save()
config.load_save_auto_slots = 50
config.load_save_quick_slots จำนวนช่อง quickSave ทั้งหมดที่สามารถแสดงได้ในพื้นที่ scrolling area จะแสดงอยู่ในช่วงล่างๆของ Save quicksave แทบจะเหมือนกับ AutoSave ทุกประการต่างกันตรงที่ quicksave เราต้องเขียน function กำหนดในการ save เอง(ขอไม่อธิบายในบทนี้)แต่ autosave มันจะทำการ Save ให้อัติโนมัติเวลาออกจากเกมส์ โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.scrolling_load_save()
config.load_save_quick_slots = 50
config.load_save_empty_thumbnail กำหนดรูปของช่อง Save ที่ว่าง จะเหมือนกับของฟังก์ชั่น layout.classic_load_save()โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.scrolling_load_save()
config.load_save_empty_thumbnail = aaaa.jpg
config.time_format กำหนดรูปแบบการแสดงผลของเวลาทีแสดงในช่อง Save เหมือนกับของฟังก์ชั่น layout.classic_load_save()โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.scrolling_load_save()
config.time_format = "%b %d, %H:%M"
config.file_entry_format กำหนดรูปแบบในการการแสดงผลทั้งหมดในช่อง Save เหมือนกับของฟังก์ชั่น layout.classic_load_save()โดยมีหลักการใช้งานดังนี้
init -2 python:
layout.scrolling_load_save()
config.file_entry_format = "%(time)s\n%(save_name)s"
layout.imagemap_load_save จากที่กล่าวมาทั้งสองฟังก์ชั่นไม่ว่าจะป็น layout.scrolling_load_save() หรือ layout.classic_load_save() ก็ยังทำได้แค่ปรับแต่งรูปแบบของมันได้เพียงเล็กน้อยเท่านั้นเนื่องจาก รูปแบบหลักๆนั้นก็ยังคงเดิมไม่สามารถปรับแต่งอะไรได้ ซึ่งต่างจากฟังก์ชั่น layout.imagemap_load_save ที่มีความยืดหยุ่นในการจัดรูปแบบหน้าตาที่สูงกว่ามากโดยหลักการใช้งานฟังก์ชั่นนี้ก็จะคล้ายๆกับ imagemap ที่เคยกล่าวกันในคราวที่แล้วน่ะแหล่ะครับ เอาล่ะมาดูกันเลยดีกว่าว่ามันปรับแต่งกันอย่างไรและต่างจากบทที่แล้วยังไง
Function:
layout.imagemap_load_save
(ground, idle, hover, selected_idle, selected_hover, hotspots):
เป็นฟังกชั่นที่ใช้กำหนดรูปแบบหน้าตาในส่วน Save Load เองโดย พารามิเตอร์ต่างๆมีความหมายดังนี้
ground - รูปพื้นหลังของหน้า loadsave.
idle - รูปปุ่มตอนที่ยังไม่ได้เอาเมาส์ไปวางข้างบนปุ่ม.
hover - รูปปุ่มตอนที่เอาเมาส์ไปวางข้างบนปุ่ม.
selected_idle - รูปปุ่มตอนที่ยังไม่ได้เอาเมาส์ไปวางข้างบนปุ่ม (ในกรณีที่ปุ่มนี้กำลังอ้างถึงหน้านี้อยู่)
selected_hover - รูปปุ่มตอนที่เอาเมาส์ไปวางข้างบนปุ่ม (ในกรณีที่ปุ่มนี้กำลังอ้างถึงหน้านี้อยู่)
hotspots - เป็นชุดเซ็ตของข้อมูลในการกำหนดคุณสมบัติเกี่ยวกับพื้นที่ที่เป็นปุ่มกด(จะกำหนดมีกี่ชุดก็ได้แล้วแต่ความต้องการ) ดังนี้:
(จุดซ้ายสุด,จุดบนสุด,จุดขวาสุด,จุดล่างสุด,"ชนิดของปุ่มกด")
โดยที่ชนิดของปุ่มกดก็จะมีดังนี้
"previous" กลับไปหน้า Save ก่อนหน้านี้.
"next" ไปยังหน้า Save หน้าถัดไป.
"page_auto" ไปยังหน้าแสดง auto-save.
"page_quick" ไปยังหน้าแสดง quick-save.
"page_1", "page_2", "page_3", ... แสดงปุ่มหน้า Save นั้นๆ.
"slot_0", "slot_1", "slot_2", ... ปุ่มแสดงช่อง Save จะเริ่มต้นที่ช่องที่ 0 .
นอกจากนี้ยังมีตัวแปรที่ใช้กำหนดรูปแบบการแสดงผลด้วยซึ่งความหมายและการใช้งานก็จะเหมือนกับของ Function layout.classic_load_save() และ layout.scrolling_load_save()
เลยทีเดียวเชียว ซึ่งก็ได้แก่
config.disable_thumbnails
ถ้าเป็น True จะไม่แสดงภาพหน้าหัวข้อ Save ถ้าอยากให้แสดงก็ตั้งค่าให้เป็นFalseหรือไม่ต้องใช้ฟังก์ชั่นนี้ก็ได้
config.load_save_empty_thumbnail กำหนดรูปของช่อง Save ที่ว่าง จะเหมือนกับของฟังก์ชั่น layout.classic_load_save()
config.time_format
รูปแบบการแสดงผลของเวลาทีแสดงในช่อง Save เหมือนกับของฟังก์ชั่น layout.classic_load_save()
config.file_entry_format กำหนดรูปแบบในการการแสดงผลทั้งหมดในช่อง Save เหมือนกับของฟังก์ชั่น layout.classic_load_save()
โดยมีหลักการใช้งาน ดังนี้
init -2 python:
layout.imagemap_load_save("1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", [
(26, 485, 168, 535, " previous "),
(245, 485, 410, 535, " page_1"),
(104, 535, 286, 589, " page_2"),
(675, 535, 790, 589, " next ")]
)
yesno_prompt layouts ตรงนี้จะเป็นในส่วนของหน้าการยืนยันออกจากเกมส์ โดยในที่นี้ผมจะขอเอ่ยกล่าวแค่ฟังก์ชั่นเดียวนะครับคือ layout.imagemap_yesno_prompt
function layout.imagemap_yesno_prompt(ground, idle, hover, hotspots) เป็นฟังกชั่นที่ใช้กำหนดรูปแบบหน้าตาในส่วนการยืนยันออกจากเกมส์เองโดย พารามิเตอร์ต่างๆมีความหมายดังนี้
ground - รูปพื้นหลังของหน้า yesno_prompt.
idle รูปปุ่มตอนที่ยังไม่ได้เอาเมาส์ไปวางข้างบนปุ่ม.
hover - รูปปุ่มตอนที่เอาเมาส์ไปวางข้างบนปุ่ม.
hotspots - เป็นชุดเซ็ตของข้อมูลในการกำหนดคุณสมบัติเกี่ยวกับพื้นที่ที่เป็นปุ่มกด(จะกำหนดมีกี่ชุดก็ได้แล้วแต่ความต้องการ) ดังนี้:
(จุดซ้ายสุด,จุดบนสุด,จุดขวาสุด,จุดล่างสุด,"ชนิดของปุ่มกด")
โดยที่ชนิดของปุ่มกดก็จะมี Yes,No เท่านั้น
โดยมีหลักการใช้งาน ดังนี้
init -2 python:
layout.imagemap_yesno_prompt("1.jpg", "2.jpg", "3.jpg", [
(26, 485, 168, 535, "Yes"),
(245, 485, 410, 535, "No"),]
)
โอเคครับจบไปแล้วอีกสองส่วนนะครับ ส่วนในครั้งต่อไปเดี๋ยวต้องขอถามก่อนว่าจะให้ลงเรื่องของ Renpy ต่อรึเปล่าหรือเป็นการสอนการใช้งานเบื้องต้นของตัว VisualNovel แทน
|
 |
 |
โดย vashiya
เมื่อ August 18 2009 11:43:47
(264) อ่าน พิมพ์
|
 |
|
 |
© 2007 - 2010 thaiaat.com
|
 |
 |
|
Powered by v6.00.109 ฉ 2003-2005
Theme Elephant v1.00
|
|
 |