บทความสอนกราฟิก

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 2500|ตอบกลับ: 0

[Renpy] 30. วิธีทำเมนูเลือกตัวละคร และรับตัวแปรชื่อผู้เล่น

[คัดลอกลิงก์]

272

กระทู้

272

โพสต์

979

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
979
แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-6-22 16:58

select_character_inputName_01.jpg
[Renpy] 30. วิธีทำเมนูเลือกตัวละคร และรับตัวแปรชื่อผู้เล่น

การให้ผู้เล่นสามารถเลือกตัวละครที่ตนเองต้องการได้และการให้ผู้เล่นสามารถใส่ชื่อของตนเองลงไปในเกมส์ได้จะช่วยให้ผู้เล่นตั้งใจอ่านเนื้อเรื่องต่างๆภายในเกมส์มากขึ้น และยังมีส่วนช่วยให้ผู้เล่นอินกับบทบาทที่ตนเองได้รับภายในเกมส์มากขึ้นด้วย

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


อธิบายสเต็ปการทำงาน
1. พอคลิกปุ่ม startเกมส์ ก็จะเข้าสู่หน้าจอ ให้ผู้เล่นเลือกเพศตัวละครที่ต้องการ
select_character_inputName_01.jpg
2. หากผู้เล่นเลือกคลิกเลือก ตัวละครตัวใด ตัวใดหนึ่งแล้วก็จะเข้าไปที่หน้าอธิบายรายละเอียด(รายละเอียดของตัวละครจะแยกตามเพศที่ผู้เล่นเลือกในกรณีข้าพเจ้าคลิกเลือกเพศหญิง) ที่หน้าจอรายละเอียดนี้ผู้เล่นสามารถยกเลิกการเลือก และกลับไปที่หน้าเลือกตัวละครได้อีกครั้ง
select_character_inputName_02.jpg
3. หากผู้เล่น ตกลงที่จะเลือกตัวละครดังกล่าว (คลิกปุ่ม"ตกลง") โปรแกรมก็จะส่งผู้เล่นไปที่หน้าใส่ "ชื่อ"ในกรณีที่ผู้เล่นกดปุ่ม "Enter" ผ่านไปทันที(ไม่ยอมกรอกชื่อก่อน)โปรแกรมจะตั้งชื่อผู้เล่นว่า "Transfer"  ให้แทน (คำสั่ง length=10 คือจำนวนตัวอักษรที่ผู้เล่นสามารถตั้งชื่อตัวเองได้หากเกินกว่านั้นโปรแกรมจะตัดให้เหลือแค่ 10 ตัวแรก )
select_character_inputName_03.jpg

4. ถ้าผู้เล่น ตั้งชื่อ และกดปุ่ม Enter แล้วโปรแกรมจะพาเข้าสู่เนื้อเรื่องหลักของเกมส์โดยเราอาจจะกำหนดให้ตัวละครตัวอื่นๆภายในเกมส์ เปลี่ยนรูปแบบการพูดได้และมีปฏิสัมพันธ์ต่างๆกับผู้เล่นได้แตกต่างกัน ตามเพศที่ผู้เล่นเลือก
select_character_inputName_04.jpg select_character_inputName_05.jpg
ขี้เกียจวาดภาพ -*- ยืมมาก่อนละกัน หุหุ)

การเขียนโค๊ดที่ไฟล์ script.rpy ก็จะประมาณนี้ค่ะ แล้วแต่จะเอาไป modify




  1. define me = DynamicCharacter('player_name', color="#ff0000") #<กำหนดชื่อผู้เล่นให้เป็นชนิด DynamicCharacter
  2. define k = Character('Kafra', color="#ffffff")

  3. image kafra = 'cha/kafra1.png'
  4. image bg1 = 'cha/bg_map.jpg'

  5. ###############################################
  6. # The game starts here.
  7. label start:
  8.    
  9.     $ user_is_man = True #<--- สร้างตัวแปรเงื่อนไขรองรับทิ้งไว้ เพื่อในกรณีที่ ตัวละครแต่ละเพศต้องไปเจอกับเหตุการณ์ที่แตกต่างกัน
  10.    
  11.     #<---------สร้างเมนูให้ผู้เล่นเลือกตัวละครที่ชอบ----------->
  12.     $ result = renpy.imagemap("cha/bg_select_cha.jpg", "cha/bg_select_cha_hover.jpg", [
  13.                            (0, 0, 400, 600, "man"),
  14.                            (470, 0, 800, 600, "women")
  15.                           ])
  16. ###############################################
  17.     #<---------ถ้าคลิกเลือกตัวละครเพศชาย----------->
  18.     if result == "man":     #<---------สร้างเงื่อนไขในกรณีที่ผู้เล่นเกิดเปลี่ยนใจ อยากเลือกตัวละครอื่น
  19.         $ result = renpy.imagemap("cha/bg_select_man_title.jpg", "cha/bg_select_man_title_hover.png", [
  20.                            (355, 490, 490, 580, "back"),
  21.                            (600, 490, 720, 580, "next")
  22.                           ])
  23.         if result == "back":  #<---------ถ้าผู้เล่นไม่ต้องการเลือกตัวละครนี้
  24.             jump start  #<---------ให้ส่งผู้เล่นกลับไปที่หน้าเลือกตัวละครอีกครั้ง
  25.             
  26.         elif result == "next":  #<---------ผู้เล่นต้องการเลือกตัวละครเพศชาย ให้ดำเนินการต่อ
  27.             jump select_man  #<---------วิ่งไปที่ label รับค่าตัวแปร ชื่อของผู้เล่น เพศชาย

  28. ###############################################
  29.     #<---------ถ้าคลิกเลือกตัวละครเพศหญิง----------->
  30.     elif result == "women":  #<---------สร้างเงื่อนไขในกรณีที่ผู้เล่นเกิดเปลี่ยนใจ อยากเลือกตัวละครอื่น
  31.         $ result = renpy.imagemap("cha/bg_select_women_title.jpg", "cha/bg_select_man_title_hover.png", [
  32.                            (355, 490, 490, 580, "back"),
  33.                            (600, 490, 720, 580, "next")
  34.                           ])
  35.         if result == "back":  #<---------ถ้าผู้เล่นไม่ต้องการเลือกตัวละครนี้
  36.             jump start #<---------ให้ส่งผู้เล่นกลับไปที่หน้าเลือกตัวละครอีกครั้ง
  37.             
  38.         elif result == "next": #<---------ผู้เล่นต้องการเลือกตัวละครเพศหญิง ให้ดำเนินการต่อ
  39.             $ user_is_man = False  #<---------กำหนดให้เงื่อนไขที่ตัวละครเป็นชาย เป็นเท็จไปซะ
  40.             jump select_women  #<---------วิ่งไปที่ label รับค่าตัวแปร ชื่อของผู้เล่น เพศหญิง
  41. return

  42. #############รับค่าชื่อของผู้เล่น ที่เลือกเพศชาย#####################

  43. label select_man: #<---------ถ้าผู้เล่นเลือกตัวละครเพศชาย จะวิ่งมาที่ label เพื่อกำหนดชื่อในการเล่นเกมส์
  44.     $ ui.image("cha/bg_select_man_name.jpg",xalign=0.0, yalign=0.0) #<---ภาพพื้นฉากหน้ากรอกชื่อผู้เล่น เพศชาย
  45.     $ ui.input('', xalign=0.85, yalign=0.56, color= "#1f2b87", length=10) #<--คำสั่งรับค่าตัวแประชื่อผู้เล่นเพศชาย
  46.     $ player_name = ui.interact()
  47.     if player_name == '':
  48.         $ player_name = 'Transfer' #<------ในกรณีที่ผู้เล่นไม่กรอกตัวอักษรใดๆลงไป โปรแกรมจะกำหนดให้ผู้เล่นชื่อ "Transfer" แทน
  49.     jump story

  50. #############รับค่าชื่อของผู้เล่น ที่เลือกเพศหญิง####################

  51. label select_women: #<---------ถ้าผู้เล่นเลือกตัวละครเพศหญิง จะวิ่งมาที่ label เพื่อกำหนดชื่อในการเล่นเกมส์
  52.    
  53.     $ ui.image("cha/bg_select_women_name.jpg",xalign=0.0, yalign=0.0) #<--ภาพพื้นฉากหน้ากรอกชื่อผู้เล่น เพศหญิง
  54.     $ ui.input('', xalign=0.85, yalign=0.56, color= "#1f2b87",  length=10) #<--คำสั่งรับค่าตัวแประชื่อผู้เล่นเพศหญิง
  55.     $ player_name = ui.interact()
  56.     if player_name == '':
  57.         $ player_name = 'Transfer' #<------ในกรณีที่ผู้เล่นไม่กรอกตัวอักษรใดๆลงไป โปรแกรมจะกำหนดให้ผู้เล่นชื่อ "Transfer" แทน
  58.     jump story

  59. ####################เข้าสู่เนื้อเรื่องหลัก###########################
  60. label story:
  61.     scene bg1
  62.     show kafra at left
  63.    
  64.     if user_is_man : #<---ในกรณีที่เลือกตัวละครเพศชาย  (user_is_man = True)
  65.         k "คุณชื่อ %(player_name)s ใช่ไหม ยินดีที่ได้รู้จักนะค่ะ"
  66.         k "คุณเป็นชายหนุ่มที่หน้าตาดีกว่าที่ฉันคิดไว้เสียอีก"
  67.         
  68.     else:  #<---ในกรณีที่เลือกตัวละครเพศหญิง  (user_is_man = False)
  69.         k "คุณชื่อ %(player_name)s ใช่ไหม ยินดีที่ได้รู้จักนะค่ะ"
  70.         k "คุณเป็นหญิงสาวที่หน้าตาดีกว่าที่ฉันคิดไว้เสียอีก"
  71. return
คัดลอกไปที่คลิปบอร์ด
***************************************

บทความโดย นุ้ก
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
(ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.comเท่านั้น)


ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|GraphicFUFU

GMT+7, 2024-4-20 10:40 , Processed in 0.104164 second(s), 21 queries .

Powered by Discuz! X3.4 R20180101, Rev.59

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้