Thaiaat : คลังอัลบั้มรูปภาพ - Handmade - Anime - การ์ตูน
Thursday, September 09, 2010  
กล่องตะโกน
vashiya
11/02/2010 11:05
ต่อไป...เดี๋ยวจะลองวาด "แว่วเสียงน้องแกะ" ดูบ้าง เหอ...เหอ...เหอ...


Annie
09/02/2010 13:24
ท่านvashiya ติดตามดราม่าแกะเหมือนกันหรอนี่


vashiya
03/12/2009 22:10
อืม.....แก่ไปอีกปีแล้วแฮะเรา = ="


Frix
03/12/2009 01:43
- เห็นตรงกะวันคล้ายวันเกิดทั่นวาที่วิวมิกซ์ แวะมาอวยพรที่เวปด้วยละกัน ขอให้สุขภาพแข็งแรง จิตใจแจ่มใส มีแต่สิ่งพึงปรารถนาเข้ามานะท่าน


Frix
21/09/2009 23:53
เนตบ้านใช้ได้ละน่อ แต่อืดชะมัดยาด ทั่นวาว่างๆก็ปั่นสี่ช่องมาเพิ่มเรื่อยๆได้เลยนะ มีเวลา 2 เดือนก่อนวันงานแต่ชะล่าใจไม่ได้ เวลามันไว เหอะๆ


Frix
19/08/2009 09:19
ได้เลยทั่นวา เพราะตอนนี้ที่มีส่งแน่ๆก็แค่ผมกะนิมเบิ้ลเอง แถมมุขตันสุดๆ ดันดูClannad ซึ้งจนมุขไม่ออกเลย 555


rin
18/08/2009 22:12
แต่ในใจผมจริงๆแล้วตอนนี้คิดว่า Renpy น่าจะยังได้เปรียบมากกว่าในเรื่องของการกระจายในหลายแพลตฟอร์มครับ เพราะทำทีเดียวใช้ได้ทั้ง window ,mac,linux ในขณะที่ Novelty นั้นยังรองรับแค่ window เท่านั้น


vashiya
18/08/2009 11:40
โอ้....เยี่ยมมากรินคุง ผมยังทดสอบไปไม่ถึงตรงนั้นเลยอ่ะ ผมดูแค่องค์ประกอบภายนอกรปร่างโปรแกรม แล้วก็ Syntax ของภาษา แต่ภาษา xml คงต้องเรียกว่า Schema สินะ 5555


rin
17/08/2009 22:17
ยกเว้นว่าเราจะทำฟอนท์ใส่เองเท่านั้นแหละครับ


rin
17/08/2009 22:16
ทรัพยากรเครื่องมหาโหดแล้วแต่เรื่องการแสดงภาพยังไม่ค่อยเสถียรเท่าไหร่และยังไม่ค่อยรองรับภาษาไทยด้วยนี่คือปัญหาใหญ่ครับ


rin
17/08/2009 22:15
Novelty ตัวล่าสุดยังเป็นรุ่น 0.8.2 อยู่นะครับ(ยังนับเป็นรุ่นทดลองอยู่) ซึ่งบางครั้งมันก็ดันออกอาการแผลงๆอย่างไม่แสดงภาพบ้างหรือกินรีซอร์สเครื่องมหาศาลทีเดียวแต่เวอร์ชั่นใหม่นี่รู้สึกจะแก้เรื่องการใช้ท


vashiya
17/08/2009 10:16
Frix คุง งานเคียวอนิเดี๋ยวผมอาจจะส่งไปให้สักหน้าสองหน้านะ (ถ้าไม่ทันก็หน้าเดียว)


vashiya
17/08/2009 09:45
อืม......เอาไงดีล่ะเนี่ยท่าที่ลองจับๆดูแล้วถือว่าดีกว่า Ren'py เลยล่ะ มีใครสนใจซับไทยไหมล่ะเดี๋ยวจะลองแปลมาลงด้วย ใครสนใจยกมือขึ้นนนนนนน


Frix
17/08/2009 08:48
- รอรินกับทั่นวาทำพรีวิว โปรแกรมให้ดูน่อ / ปั่นงานเคียวอนิต่อ


vashiya
16/08/2009 23:19
โอ้......ในที่สุดก็มีtoolสร้างอย่างงี้ออกมาซะที ดีจังจะได้ไม่เหนื่อย เหอ...เหอ...เหอ... เดี๋ยวต้องขอดูหน่อยแล้วว่ามันเป็นยังไง


rin
16/08/2009 21:17
เพิ่งไปเจอ engine แจ่มๆตัวนึงมากครับชื่อ Novelty การทำงานคล้ายดรีมวีฟเวอร์มากๆ แค่จับภาพจับฉากมาวางใส่ก็เรียบร้อยแล้ว ดูได้ที่นี่เลยครับ www.visualnovelty.com


vashiya
30/07/2009 22:36
อืม....ยูเนียนมอลล์ อยู่ห่างจากบ้านผมพอสมควร แต่คิดว่าคงไปได้แหล่ะนะ วันอาทิตย์ด้วย


Frix
29/07/2009 13:55
- ทั่นวาสนใจม่ะ นิมยังไม่ตั้งกระทู้เลย สงสัยเวลากระชั้นไปแหะ


vashiya
28/07/2009 22:36
KyoAni - Only Event - อาทิตย์ที่ 6 กันยายน 2552 ลานกิจกรรม ชั้น F2 หน้า Lunchbox Cafe' @ Union Mall ค่า Circle 150 บาท ค่าเข้างาน ฟรี! เวลางาน 11.00 - 15.00 น.


Frix
28/07/2009 11:06
- ตอนนี้วางแผนลุยงาน KyoAni Event อยู่ งานมีต้นเดือนกันยา เวลากระชั้นสุดๆ สนใจร่วมแจมได้นะ ทุกท่าน เดี๋ยวหมานิมจะตั้งกระทู้ดัก ที่วิวมิกซืกะมัง


ข้อความทั้งหมด

ระบบสมาชิก
ชื่อเรียก

รหัสผ่าน



สมัครสมาชิก ?
คลิกที่นี่ เพื่อลงทะเบียน.

ลืมรหัสผ่าน ?
ขอใหม่ ที่นี่.
ผู้กำลังใช้งาน
บุคคลทั่วไป: 3
ไม่มีสมาชิกขณะนี้

สมาชิกทั้งหมด: 43
ยังไม่ยืนยัน: 0
สมาชิกล่าสุด: anyka
จำนวนผู้เยี่ยมชม




81908 คน
อัลบั้มยอดฮิต
HandMade(60)
Funny(55)
Youtube(32)
Song(26)
Avatar & mascot(20)
yaranaika(17)
Comic(16)
Handmade(Fan Art)(14)
Hatsune Miku(13)
paper model(11)
rozen maiden(9)
K(7)
higurashi no naku koro ni (6)
ahe face(6)
megane(5)
Suzumiya Haruhi no Yuuutsu(5)
Yaoi(4)
Mc donald(4)
THAI FANDUB(3)
KFC(3)
Loli(3)
Rockman(2)
DJMAX(2)
Mix Artist(2)
CrossDress(2)
Lucky☆Channel(1)
Lucky☆Star(1)
Event(1)
GIF(1)
Renpy Programming การปรับแต่ง Layout หน้าจอของเกมส์ ตอนที่ 1 (main menu และ navigation)

            สวัสดีทุกท่าน เป็นยังไงกันบ้างจ๊ะ...... หลังจากหายหน้าหายตาไปนานเกือบปีสำหรัวเนื้อบทความการสอนการใช้งานโ ปรแกรม Renpy อันที่จริงแล้วช่วงี้ผมผมตัดสินใจที่จะรียนต่อน่ะ นึกไม่ถึงว่ามันจะนำพาความทุกข์ยากมาสู่ชีวิตได้อย่างแสนสาหัสมากขนาดนี้แทบจะไม่มีเวลาทำอะไรเลยพอทำงานเสร็จห็จะต้องรีบเคลียงานที่มหาลัยต่อ ปวดหัวมั่กๆ
            เอาล่ะหลังจากบ่นเสร็จแล้วเรามาดูเนื้อหาของเรากันก่อนดีกว่านะ สำหรับเนื้อหาในคราวนี้นั้นจะขอเอ่ยกล่าวในเรื่องเนื้อหาเกี่ยวกับการปรับแต่ง Layout หน้าจอของเกมส์กันนะครับ ซึ่งโดยเนื้อหาแล้วไม่มีอะไรยาก แต่ก็เยอะพอสมควร ผมเลยขอค่อยๆทะยอยออกมาเป็นตอนๆละกันครับ

      Layout นั้นก็คือส่วนหน้าตาของเมนูต่างๆที่ไว้ใช้กำหนดการทำงานหรือทางเลือกต่างๆของระบบเกมส์ ซึ่งแบ่งเป็น 6 ชนิดด้วยกันคือ

   1) main_menu เป็น Layout ส่วนเมนูหลักของเกมส์
   2) navigation เป็น Layout หน้าจอในส่วนของปุม Menu ต่างๆ ในหย้า Load - Save Game เช่น ปุ่ม return หรือ ปุ่มQuit เป็นต้น
   3) load_save หน้าจอ Save - Load เกมส์เหมือนกัน แต่จะเป็นในลักษณะองค์ประกอบต่างของหน้า Save เช่น ช่อง Save หรือ หน้า save
   4) yesno_prompt หน้าจอ Menu yes-no ตอนที่เราจะออกจากเกมส์
   5) preferences หน้าจอ Menu ในส่วน Option
   6) joystick_preferences หน้าจอ Config ในส่วนของ JoyStick

   ส่วนสำหรับการกำหนดค่าการทำงานต่างๆของ Layout นั้น เราจะเขียน Script ต ัวนี้อยู่่ในไฟล์ Option.rpy นะครับ ให้เขียนอยู่ที่บนสุดของไฟล์เลย    โดยที่เราจะเขียน function เพื่อกำหนดคุณลักษณะต่างๆของ Layout ไว้ภายใต้คำสั่ง inti -2 : ครับ

   init -2 :
      <--- คำสั่งต่างๆ -->

รายละเอียดฟังก์ชั่นต่างๆของ Layout แต่ละชนิด

main_menu layouts ประกอบไปด้วยกลุ่มฟังก์ชั่นต่างๆ ดังนี้

         layout.classic_main_menu ()
            เป็นการกำหนดให้ Layout ของ Menu แสดงอยู่ในรูปแบบมาตรฐานเดิมๆ หลายคนคงนึกในใจว่า"ตอนแรกไม่ต้องกำหนดอะไรก็เป็นรูปแบบอย่างงี้อยู่แล้วแล้วจะมีฟังก์ชั่นให้ประกาศอีกทีเ_ยอะไร" อย่าคิดดังครับใจเย็นๆ ส่วนใหญ่ฟังก์ชันอย่างงี้จะมีประโยชน์สำหรับเกมส์ในลักษะที่มีหลายๆโหมดในการเล่นน่ะครับเช่น เล่นจบ1รอบ ก็จะมีโหมดใหม่มาเพิ่มอีกหนึ่งโหมด เป็นต้นครับ ดังนั้นจึงต้องมีการตรวจสอบว่าเล่นจบไปแล้วรึยัง ถ้าจบแล้ว1รอบก็ขึ้นอีกหน้า menu นึงที่เราทำเองขึ้นมาแต่ถ้าถ้ายังเล่ไม่จบก็ให้ข้นเป็นหน้า Classic อย่างงี้ไปก่อน
โดยมีหลักการใช้งานดังนี้
      init -2 python:
          layout.classic_main_menu ()

         layout.grouped_main_menu ()
      เป็นฟังก์ชั่นที่ใช้กำหนดการเรียงตัวของตัวเลือกภายใน Main Menu โดยเราต้องเรียกใช้งานค่าตัวแปรออกมา ตัวนึงเพื่อกำหนดลักษณะการเรียงตัวกันของปุ่ม Menu ตัวแปรที่เราใช้งานตัวนี้มีชื่อว่า config.main_menu_per_group โดยมีหลักการใช้งานดังนี้

      init -2 python:
          layout.grouped_main_menu ()
          config.main_menu_per_group = 3 <---- นอนเรียงกัน 3 ปุ่ม
โดยที่เลข 3 หมายถึงจำนวนแถที่จะแสดงในแนวนอน

         layout.imagemap_main_menu (ground, selected, hotspots)
เป็น Function ที่ใช้ในการกำหนดพื้นหลังและตำแหน่งของปุ่มใน Main Menu โดยจะมี Parameter ต่างๆที่ใช้งาน ดังนี้

      ground - รูปพื้นหลังของ Main Menu.
      selected - ตัวนี้จะเป็นLayer ที่ซ่อนอยู่หลัง ground อีกทีครับ (ตอนสร้างก็ออกแบบกะให้แม่นๆหน่อยละกัน). ซึ่งจะเป็นรูปของปุ่มตอนเอาเมาส์วางไว้บนพื้นที่ที่เรากำหนด(ก็ปุ่มนั่นแหล่ะ)
      hotspots - เป็นชุดเซ็ตของข้อมูลในการกำหนดคุณสมบัติเกี่ยวกับพื้นที่ที่เป็นปุ่มกด(จะกำหนดมีกี่ชุดกได้แล้วแต่ความต้องการ) ดังนี้:
(จุดซ้ายสุด,จุดบนสุด,จุดขวาสุด,จุดล่างสุด,"ชื่อปลายทางที่จะลิงค์ไป")

      หมายเหตุ จุดที่กำหนดตำแหน่งที่เป็นปุ่มนั้น มีค่าเป็น Pixcel โดยเริ่มค่า 0,0 ที่จุดซ้ายบนของหน้าจอ
      หมายเหตุ ชื่อปลายทางที่จะลิงค์ไป นั้นอาจจะเป็นชื่อของ Label ของโปรแกรมหน้าไหนก็ได้ที่ เราต้องการให้ Menu ของเรา Jump ไปยังจุดนั้นๆ เมื่อมีการคลิ๊กปุ่มตำแหน่งที่เรากำหนด
      ข้อควรรู้เล็กน้อย จุดหมายปลายทางที่เราจะวิ่งไปหานั้นจะมีค่ามาตรฐานอยู่ หมายถึง ปลายทางทั่วไปที่ทางเกมส์กำหนดมาให้ตั้งแต่ต้นอยู่แล้ว อันได้แก่
      Start Game ---> จะวิ่งไปยัง Label Start ของเกมส์
      Load Game ---> จะวิ่งไปยังหน้า Menu โหลดเกมส์
      Preferences ---> จะวิ่งไปยังหน้า Option ของเกมส์
      Quit ---> ออกจากเกมส์

      โดยมีหลักการใช้งาน ดังนี้ (เราจะประกาศอยู่ในหน้า Option.rpy นะคร้าบบบบบ)
      init -2 python:
          layout.imagemap_main_menu("menu2.jpg", "menu1.jpg", [
            (111, 248, 392 ,313, "Start Game"),
            (111, 313, 392, 378, "Load Game"),
            (48, 432, 237, 529, "Preferences"),
            (48,529,237,576, "Quit")
          ])
         ซึ่งเราจะใช้เทคนิคนี้ประยุกต์การใช้งานในเรื่องการสร้าง Gallary ต่อไป

navigation layouts ประกอบไปด้วยกลุ่มฟังก์ชั่นต่างๆ ดังนี้

         layout.classic_navigation ()
      เป็นการกำหนดให้ Layout ของ navigation ซึ่งจะแสดงอยู่ในรูปแบบมาตรฐานเดิมๆ รายละเอียดก็จะคล้ายๆของ layout.classic_main_menu () ้อนกลับไปดูเอง

         layout.grouped_navigation ()
      เป็นฟังก์ชั่นที่ใช้กำหนดการเรียงตัวของตัวเลือกภายใน Main Menu โดยเราต้องเรียกใช้งานค่าตัวแปรออกมา ตัวนึงเพื่อกำหนดลักษณะการเรียงตัวกันของปุ่ม Menu ตัวแปรที่เราใช้งานตัวนี้มีชื่อว่า config.navigation_per_group โดยมีหลักการใช้งานดังนี้

      init -2 python:
          layout.grouped_main_menu ()
          config.navigation_per_group = 3 <---- นอนเรียงกัน 3 ปุ่ม
      โดยที่เลข 3 หมายถึงจำนวนแถที่จะแสดงในแนวนอน

         layout.imagemap_navigation (ground, idle, hover, selected_idle, selected_hover, hotspots)
เป็น Function ที่ใช้ในการกำหนดพื้นหลังและตำแหน่งของปุ่มใน navigation โดยจะมี Parameter ต่างๆที่ใช้งาน ดังนี้

      ground - รูปพื้นหลังของหน้า navigation.
      idle - รูปปุ่มตอนที่ยังไม่ได้เอาเมาส์ไปวางข้างบนปุ่ม ในกรณีที่
      hover - รูปปุ่มตอนที่เอาเมาส์ไปวางข้างบนปุ่ม
      selected_idle - รูปปุ่มตอนที่ยังไม่ได้เอาเมาส์ไปวางข้างบนปุ่ม (ในกรณีที่ปุ่มนี้กำลังอ้างถึงหน้านี้อยู่)
      selected_hover - รูปปุ่มตอนที่เอาเมาส์ไปวางข้างบนปุ่ม (ในกรณีที่ปุ่มนี้กำลังอ้างถึงหน้านี้อยู่)
      หมายเหตุ selected_hover,selected_idle ไม่ค่อยจำเป็นถ้าไม่ได้ทำ option หรือ gallary อยู่ในหน้าเดียวกัน ดังนั้นในบางครั้งก็ประกาศให้ ตัวแปร selected_idle ใช้ภาพเดียวกับ idle และตัวแปร selected_hover ใช้ภาพเดียวกับ hover ไปได้เลยก็ได้

      hotspots - เป็นชุดเซ็ตของข้อมูลในการกำหนดคุณสมบัติเกี่ยวกับพื้นที่ที่เป็นปุ่มกด(จะกำหนดมีกี่ชุดก็ได้แล้วแต่ความต้องการ) ดังนี้:
      
(จุดซ้ายสุด,จุดบนสุด,จุดขวาสุด,จุดล่างสุด,"ชื่อปลายทางที่จะลิงค์ไป")

      หมายเหตุ จุดที่กำหนดตำแหน่งที่เป็นปุ่มนั้น มีค่าเป็น Pixcel โดยเริ่มค่า 0,0 ที่จุดซ้ายบนของหน้าจอ
      หมายเหตุ ชื่อปลายทางที่จะลิงค์ไป นั้นอาจจะเป็นชื่อของ Label ของโปรแกรมหน้าไหนก็ได้ที่ เราต้องการให้ Menu ของเรา Jump ไปยังจุดนั้นๆ เมื่อมีการคลิ๊กปุ่มตำแหน่งที่เรากำหนด
      ข้อควรรู้เล็กน้อย จุดหมายปลายทางที่เราจะวิ่งไปหานั้นในส่วนนี้จำเป็นที่จะต้องอ้างอิงตามชื่อของปุ่มที่เราจำจะอ้างถึง ซึ่งจำเป็นต้องกำหนดคุณสมบัติของปุ่มเองครับ ในส่วนนี้ผมขอยังไม่แจงรายละเอียดอะไรมากครับ(เพราะไม่รู้ 5555)เพราะมันเป็นเรื่องของ UI Function ครับยังศึกษาไม่หมดเลย - -"
โดยปกติปุ่มที่เกมส์กำหนดมาให้ในส่วนนี้นั้นก็จะมี
      Return ---> จะวิ่งไปยัง Mainmenu ของเกมส์
      Load Game ---> จะวิ่งไปยังหน้า Menu โหลดเกมส์
      Preferences ---> จะวิ่งไปยังหน้า Option ของเกมส์
      Quit ---> ออกจากเกมส์
โดยมีหลักการใช้งาน ดังนี้ (เราจะประกาศอยู่ในหน้า Option.rpy นะคร้าบบบบบ)
      init -2 python:
          layout.imagemap_navigation ("1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", [
            (26, 485, 168, 535, "Return"),
            (245, 485, 410, 535, "Load Game"),
            (104, 535, 286, 589, "Preferences"),
            (675, 535, 790, 589, "Quit")]
         )

         สำหรับในส่วนแรกผมขอจบแต่เพียงเท่านี้ก่อนนะครับเพราะคิดว่าถ้ากั๊กไว้นานกว่านี้จนเสร็จทั้งบทผมคงโดนมิใช่น้อยแน่ๆ แล้วจะค่อยๆทะยอยมาลงเรื่อยๆครับ ใครยังติดปัญหาอะไรก็เข้ามาถามได้เรื่อยๆนะครับ ถ้าเป็นเรื่อที่ไม่ใหญ่มากผมก็จะอธิบายในกระทู้ให้ครับ แต่ถ้ามันใหญ่มากจริงๆผมก็จะขอติดไว้เป็นบทความในเรื่องต่อไปนะครับ


โดย vashiya เมื่อ June 15 2009 22:08:35
(280) อ่าน  พิมพ์
© 2007 - 2010 thaiaat.com



  Powered by   powered by php-fusion v6.00.109 ฉ 2003-2005
  Theme Elephant v1.00   Design by Nick56