|
แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-6-22 16:58
[Renpy] 30. วิธีทำเมนูเลือกตัวละคร และรับตัวแปรชื่อผู้เล่น
การให้ผู้เล่นสามารถเลือกตัวละครที่ตนเองต้องการได้และการให้ผู้เล่นสามารถใส่ชื่อของตนเองลงไปในเกมส์ได้จะช่วยให้ผู้เล่นตั้งใจอ่านเนื้อเรื่องต่างๆภายในเกมส์มากขึ้น และยังมีส่วนช่วยให้ผู้เล่นอินกับบทบาทที่ตนเองได้รับภายในเกมส์มากขึ้นด้วย
โดยเนื้อหาเกมส์ในรูปแบบที่ผู้เล่นสามารถเลือกตัวที่ตนเองชอบได้จะเหมาะสำหรับเกมส์ที่ไม่มีแบ่งแยกเฉพาะเพศใด เพศหนึ่ง เข้ามาเกี่ยวข้อง เช่นเกมส์แนวผจญภัย แฟนตาซี สืบสวนคดี ไขปริศนาต่างๆ ฯลฯซึ่งอันนี้ก็แล้วแต่จิตนาการของผู้สร้างเกมส์เอง
อธิบายสเต็ปการทำงาน
1. พอคลิกปุ่ม startเกมส์ ก็จะเข้าสู่หน้าจอ ให้ผู้เล่นเลือกเพศตัวละครที่ต้องการ
2. หากผู้เล่นเลือกคลิกเลือก ตัวละครตัวใด ตัวใดหนึ่งแล้วก็จะเข้าไปที่หน้าอธิบายรายละเอียด(รายละเอียดของตัวละครจะแยกตามเพศที่ผู้เล่นเลือกในกรณีข้าพเจ้าคลิกเลือกเพศหญิง) ที่หน้าจอรายละเอียดนี้ผู้เล่นสามารถยกเลิกการเลือก และกลับไปที่หน้าเลือกตัวละครได้อีกครั้ง
3. หากผู้เล่น ตกลงที่จะเลือกตัวละครดังกล่าว (คลิกปุ่ม"ตกลง") โปรแกรมก็จะส่งผู้เล่นไปที่หน้าใส่ "ชื่อ"ในกรณีที่ผู้เล่นกดปุ่ม "Enter" ผ่านไปทันที(ไม่ยอมกรอกชื่อก่อน)โปรแกรมจะตั้งชื่อผู้เล่นว่า "Transfer" ให้แทน (คำสั่ง length=10 คือจำนวนตัวอักษรที่ผู้เล่นสามารถตั้งชื่อตัวเองได้หากเกินกว่านั้นโปรแกรมจะตัดให้เหลือแค่ 10 ตัวแรก )
4. ถ้าผู้เล่น ตั้งชื่อ และกดปุ่ม Enter แล้วโปรแกรมจะพาเข้าสู่เนื้อเรื่องหลักของเกมส์โดยเราอาจจะกำหนดให้ตัวละครตัวอื่นๆภายในเกมส์ เปลี่ยนรูปแบบการพูดได้และมีปฏิสัมพันธ์ต่างๆกับผู้เล่นได้แตกต่างกัน ตามเพศที่ผู้เล่นเลือก
ขี้เกียจวาดภาพ -*- ยืมมาก่อนละกัน หุหุ)
การเขียนโค๊ดที่ไฟล์ script.rpy ก็จะประมาณนี้ค่ะ แล้วแต่จะเอาไป modify
- define me = DynamicCharacter('player_name', color="#ff0000") #<กำหนดชื่อผู้เล่นให้เป็นชนิด DynamicCharacter
- define k = Character('Kafra', color="#ffffff")
- image kafra = 'cha/kafra1.png'
- image bg1 = 'cha/bg_map.jpg'
- ###############################################
- # The game starts here.
- label start:
-
- $ user_is_man = True #<--- สร้างตัวแปรเงื่อนไขรองรับทิ้งไว้ เพื่อในกรณีที่ ตัวละครแต่ละเพศต้องไปเจอกับเหตุการณ์ที่แตกต่างกัน
-
- #<---------สร้างเมนูให้ผู้เล่นเลือกตัวละครที่ชอบ----------->
- $ result = renpy.imagemap("cha/bg_select_cha.jpg", "cha/bg_select_cha_hover.jpg", [
- (0, 0, 400, 600, "man"),
- (470, 0, 800, 600, "women")
- ])
- ###############################################
- #<---------ถ้าคลิกเลือกตัวละครเพศชาย----------->
- if result == "man": #<---------สร้างเงื่อนไขในกรณีที่ผู้เล่นเกิดเปลี่ยนใจ อยากเลือกตัวละครอื่น
- $ result = renpy.imagemap("cha/bg_select_man_title.jpg", "cha/bg_select_man_title_hover.png", [
- (355, 490, 490, 580, "back"),
- (600, 490, 720, 580, "next")
- ])
- if result == "back": #<---------ถ้าผู้เล่นไม่ต้องการเลือกตัวละครนี้
- jump start #<---------ให้ส่งผู้เล่นกลับไปที่หน้าเลือกตัวละครอีกครั้ง
-
- elif result == "next": #<---------ผู้เล่นต้องการเลือกตัวละครเพศชาย ให้ดำเนินการต่อ
- jump select_man #<---------วิ่งไปที่ label รับค่าตัวแปร ชื่อของผู้เล่น เพศชาย
- ###############################################
- #<---------ถ้าคลิกเลือกตัวละครเพศหญิง----------->
- elif result == "women": #<---------สร้างเงื่อนไขในกรณีที่ผู้เล่นเกิดเปลี่ยนใจ อยากเลือกตัวละครอื่น
- $ result = renpy.imagemap("cha/bg_select_women_title.jpg", "cha/bg_select_man_title_hover.png", [
- (355, 490, 490, 580, "back"),
- (600, 490, 720, 580, "next")
- ])
- if result == "back": #<---------ถ้าผู้เล่นไม่ต้องการเลือกตัวละครนี้
- jump start #<---------ให้ส่งผู้เล่นกลับไปที่หน้าเลือกตัวละครอีกครั้ง
-
- elif result == "next": #<---------ผู้เล่นต้องการเลือกตัวละครเพศหญิง ให้ดำเนินการต่อ
- $ user_is_man = False #<---------กำหนดให้เงื่อนไขที่ตัวละครเป็นชาย เป็นเท็จไปซะ
- jump select_women #<---------วิ่งไปที่ label รับค่าตัวแปร ชื่อของผู้เล่น เพศหญิง
- return
- #############รับค่าชื่อของผู้เล่น ที่เลือกเพศชาย#####################
- label select_man: #<---------ถ้าผู้เล่นเลือกตัวละครเพศชาย จะวิ่งมาที่ label เพื่อกำหนดชื่อในการเล่นเกมส์
- $ ui.image("cha/bg_select_man_name.jpg",xalign=0.0, yalign=0.0) #<---ภาพพื้นฉากหน้ากรอกชื่อผู้เล่น เพศชาย
- $ ui.input('', xalign=0.85, yalign=0.56, color= "#1f2b87", length=10) #<--คำสั่งรับค่าตัวแประชื่อผู้เล่นเพศชาย
- $ player_name = ui.interact()
- if player_name == '':
- $ player_name = 'Transfer' #<------ในกรณีที่ผู้เล่นไม่กรอกตัวอักษรใดๆลงไป โปรแกรมจะกำหนดให้ผู้เล่นชื่อ "Transfer" แทน
- jump story
- #############รับค่าชื่อของผู้เล่น ที่เลือกเพศหญิง####################
- label select_women: #<---------ถ้าผู้เล่นเลือกตัวละครเพศหญิง จะวิ่งมาที่ label เพื่อกำหนดชื่อในการเล่นเกมส์
-
- $ ui.image("cha/bg_select_women_name.jpg",xalign=0.0, yalign=0.0) #<--ภาพพื้นฉากหน้ากรอกชื่อผู้เล่น เพศหญิง
- $ ui.input('', xalign=0.85, yalign=0.56, color= "#1f2b87", length=10) #<--คำสั่งรับค่าตัวแประชื่อผู้เล่นเพศหญิง
- $ player_name = ui.interact()
- if player_name == '':
- $ player_name = 'Transfer' #<------ในกรณีที่ผู้เล่นไม่กรอกตัวอักษรใดๆลงไป โปรแกรมจะกำหนดให้ผู้เล่นชื่อ "Transfer" แทน
- jump story
- ####################เข้าสู่เนื้อเรื่องหลัก###########################
- label story:
- scene bg1
- show kafra at left
-
- if user_is_man : #<---ในกรณีที่เลือกตัวละครเพศชาย (user_is_man = True)
- k "คุณชื่อ %(player_name)s ใช่ไหม ยินดีที่ได้รู้จักนะค่ะ"
- k "คุณเป็นชายหนุ่มที่หน้าตาดีกว่าที่ฉันคิดไว้เสียอีก"
-
- else: #<---ในกรณีที่เลือกตัวละครเพศหญิง (user_is_man = False)
- k "คุณชื่อ %(player_name)s ใช่ไหม ยินดีที่ได้รู้จักนะค่ะ"
- k "คุณเป็นหญิงสาวที่หน้าตาดีกว่าที่ฉันคิดไว้เสียอีก"
- return
คัดลอกไปที่คลิปบอร์ด ***************************************
บทความโดย นุ้ก
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
(ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.comเท่านั้น)
|
|