วิธีใช้วงจรกลางวัน-กลางคืนใน Godot
วงจรกลางวันและกลางคืนสามารถเพิ่มองค์ประกอบที่ดื่มด่ำให้กับเกมของคุณ เพิ่มความหลากหลายให้กับภาพ และสร้างกลไกที่น่าสนใจ เกมอย่าง Minecraft, Animal Crossing และ Don€™t Starve ใช้เทคนิคนี้อย่างมีประสิทธิภาพ และเป็นสิ่งหนึ่งที่คุณอาจพิจารณาเพิ่มลงในเกมของคุณเอง โดยเฉพาะเกมที่มีองค์ประกอบแบบเรียลไทม์
แท้จริงแล้ว กระบวนการรวมวงจรกลางวันและกลางคืนภายใน Godot 4 ได้รับการปรับปรุงให้มีประสิทธิภาพและลดความซับซ้อนลงในระดับที่ไม่เคยมีมาก่อน
การตั้งค่าเกม Godot
เพื่อเริ่มต้นการพัฒนาวงจรกลางวันและกลางคืนภายในบริบทของเกมของเรา อันดับแรกเราต้องสร้างรากฐานที่มั่นคงสำหรับการสร้าง ซึ่งสามารถทำได้โดยการเริ่มต้นโครงการสองมิติใหม่ภายในกรอบการทำงานของ Godot และตรวจสอบให้แน่ใจว่าพารามิเตอร์โครงการที่เกี่ยวข้องทั้งหมดได้รับการกำหนดค่าอย่างเหมาะสม
รหัสที่ใช้ในเอกสารนี้สามารถเข้าถึงได้ผ่านพื้นที่เก็บข้อมูล GitHub ซึ่งทำหน้าที่เป็นแพลตฟอร์มโอเพ่นซอร์สสำหรับการแบ่งปันและการทำงานร่วมกัน พื้นที่เก็บข้อมูลนี้เก็บโค้ดและให้สิทธิ์แก่ผู้ใช้ในการใช้งานโดยไม่เสียค่าใช้จ่าย โดยอยู่ภายใต้เงื่อนไขของใบอนุญาต MIT
เมื่อสร้างฉากเกมใน Unity ก่อนอื่นจะต้องสร้างวัตถุตัวละครผู้เล่นโดยการสร้างอินสแตนซ์
เพื่อให้ผู้เล่นสามารถสำรวจสภาพแวดล้อมของเกมได้ จำเป็นต้องรวมชุดคำสั่งการเขียนโปรแกรมเฉพาะที่เรียกว่า GDScript ไว้ในอ็อบเจ็กต์อักขระที่กำหนด กระบวนการนี้เกี่ยวข้องกับการใช้ข้อมูลโค้ดที่ให้มากับโหนดที่เกี่ยวข้องของตัวละคร ซึ่งจะทำให้สามารถเคลื่อนไหวได้
extends CharacterBody2D
var speed = 300
func _physics_process(delta):
var input_dir = Vector2.ZERO
if Input.is_action_pressed("ui_left"):
input_dir.x -= 1
if Input.is_action_pressed("ui_right"):
input_dir.x \+= 1
if Input.is_action_pressed("ui_up"):
input_dir.y -= 1
if Input.is_action_pressed("ui_down"):
input_dir.y \+= 1
velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)
รหัสที่ให้มาทำให้ผู้ใช้สามารถนำทางอักขระโดยใช้ปุ่มลูกศร นอกจากนี้ยังเป็นไปได้ที่จะรวมศัตรูที่ตัวเอกต้องหลบเลี่ยงด้วย ด้วยเหตุนี้ เราอาจจ้างโหนด Utilize StaticBody2D เป็นศัตรู และปรับเปลี่ยนรูปแบบและตำแหน่งตามความจำเป็น
เพิ่มตัวจับเวลาสำหรับวงจรกลางวันและกลางคืน
เพื่อที่จะใช้วงจรกลางวันและกลางคืนภายในวิดีโอเกม จำเป็นต้องรวมตัวจับเวลาที่ทำงานอย่างต่อเนื่องซึ่งจะสลับระหว่างช่วงกลางวันและกลางคืน ซึ่งทำหน้าที่เป็นตัวบ่งชี้เวลาที่ผ่านไปตลอดประสบการณ์การเล่นเกม
เริ่มต้นเมนูบริบทภายในแผงฉากโดยใช้ปุ่มเมาส์ขวา จากรายการตัวเลือกที่มีอยู่ซึ่งปรากฏขึ้นเมื่อเลือก"เพิ่มโหนด"ให้เลือกโหนดตัวจับเวลาเฉพาะที่พบในผลการค้นหาของไลบรารีโหนด
แก้ไขการกำหนดโหนด Timer ให้เป็นป้ายกำกับที่อธิบายมากขึ้น เช่น"DayNightTimer"เพื่อเพิ่มความชัดเจน ถัดไป กำหนดค่าคุณลักษณะของโหนด Timer โดยการตรวจสอบคุณสมบัติภายในแผงตัวตรวจสอบ โดยเฉพาะอย่างยิ่ง ให้ปรับแอตทริบิวต์"เวลารอ"เป็นศูนย์วินาที ซึ่งแสดงถึงการหยุดชั่วคราวเบื้องต้นก่อนที่จะเริ่มจับเวลา และตรวจสอบให้แน่ใจว่าได้เปิดใช้งานคุณสมบัติ"One Shot"ซึ่งทำให้ตัวจับเวลาทำซ้ำอย่างต่อเนื่อง
รวมการใช้งาน GDScript เพื่อจัดการกับวงจรกลางวันและกลางคืนโดยการรวมตรรกะและการคำนวณที่เหมาะสมไว้ในสคริปต์
extends Node2D
var day_duration = 30 # Duration of the day in seconds
var night_duration = 30 # Duration of the night in seconds
var is_day = true
func _ready():
# Start the timer when the scene loads
$DayNightTimer.start()
func _on_DayNightTimer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false
# Add your code here for night-specific actions or visual changes
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true
# Add your code here for day-specific actions or visual changes
ในฟังก์ชัน พร้อม
ให้เริ่ม DayNightTimer
เมื่อเริ่มฉากเพื่อเริ่มวงจรกลางวันและกลางคืน ฟังก์ชัน \_on\_DayNightTimer\_timeout
จะดำเนินการทุกครั้งที่ตัวจับเวลาถึงศูนย์ ซึ่งบ่งบอกถึงการเปลี่ยนแปลงที่จะเกิดขึ้นจากวันสู่คืนหรือในทางกลับกัน
การปฏิบัติตามขั้นตอนนี้จะส่งผลให้ตัวจับเวลากลางวันและกลางคืนทำงานได้อย่างสมบูรณ์ ซึ่งจะสลับระหว่างกลางวันและกลางคืนภายในเกม Godot ของคุณได้อย่างราบรื่น ดังนั้นจึงช่วยให้คุณสามารถรวมแง่มุมการเล่นเกมที่หลากหลายและการปรับเปลี่ยนภาพให้สะดุดตาตามเวลาที่เกิดขึ้นในแต่ละวัน
การปรับพื้นหลังสำหรับกลางวันและกลางคืน
เพื่อที่จะปรับปรุงการแสดงภาพวงจรกลางวันและกลางคืนในฉากของคุณ สิ่งสำคัญคือต้องรวมวิธีการที่แสดงการเปลี่ยนแปลงจากกลางวันสู่กลางคืนได้อย่างราบรื่น โซลูชันที่มีประสิทธิภาพวิธีหนึ่งเกี่ยวข้องกับการใช้โหนด ColorRect เพื่อสร้างฉากหลังที่เหมาะสมสำหรับทั้งสองสถานการณ์ เมื่อใช้เทคนิคนี้ คุณจะมีความยืดหยุ่นมากขึ้นในการสร้างการเปลี่ยนภาพที่ราบรื่นและควบคุมลักษณะโดยรวมของฉากได้ละเอียดยิ่งขึ้น
ในการสร้างฉากหลังแบบไดนามิกในโปรเจ็กต์ Godot Engine ของคุณ คุณควรแนะนำวัตถุ ColorRect
ภายในฉากก่อน องค์ประกอบนี้ทำหน้าที่เป็นรากฐานที่สามารถปรับเปลี่ยนได้สำหรับเอฟเฟ็กต์ภาพต่างๆ และการเปลี่ยนระหว่างเวลากลางวันและกลางคืน ต่อจากนั้น ขอแนะนำให้เปลี่ยนชื่อส่วนประกอบนี้เป็นป้ายกำกับที่อธิบายมากขึ้น เช่น “BackgroundRect” เพื่อเพิ่มความชัดเจน สุดท้าย ตรวจสอบให้แน่ใจว่า “BackgroundRect” อยู่ในตำแหน่งที่เป็นเลเยอร์ที่โดดเด่นโดยการวางมันไว้บนพื้นที่ผืนผ้าใบที่มองเห็นทั้งหมด
ในแผงตัวตรวจสอบ ให้กำหนดค่าคุณสมบัติสีเพื่อให้สะท้อนสีพื้นหลังที่คุณต้องการ ซึ่งเป็นสัญลักษณ์ของเวลากลางวัน เพื่อให้บรรลุเป้าหมายนี้ ให้ลองใช้ค่า เช่น สี (0.5, 0.5, 0.8) ซึ่งสอดคล้องกับเฉดสีฟ้าอ่อนที่ทำให้นึกถึงภาพท้องฟ้าในเวลากลางวันที่สว่างและมีแสงแดดสดใส
อัปเดตฐานรหัส GDScript ของคุณเพื่อผสานรวมกับ
func _on_day_night_timer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false
# Add your code here for night-specific actions or visual changes
# Update the background color to indicate day
$BackgroundRect.color = Color(0.5, 0.5, 0.8) # Light blue for day
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true
# Add your code here for day-specific actions or visual changes
# Update the background color to indicate night
$BackgroundRect.color = Color(0, 0, 0) # Black for night
แก้ไขลักษณะที่ปรากฏขององค์ประกอบ BackgroundRect โดยการปรับเฉดสีตามเวลาปัจจุบันของวัน ในระหว่างการเปลี่ยนจากวันไปสู่คืน ให้เปลี่ยนสีพื้นหลังเป็นสีดำเข้มเพื่อให้ได้บรรยากาศที่มืด ในทางกลับกัน ในช่วงกลางวัน ให้ใช้เฉดสีฟ้าอ่อนเป็นสีพื้นหลัง
เอฟเฟกต์เสียงสำหรับวงจรกลางวัน-กลางคืน
การผสมผสานการออกแบบเสียงที่มีประสิทธิภาพถือเป็นสิ่งสำคัญสำหรับการสร้างประสบการณ์ที่ดื่มด่ำภายในวงจรกลางวันและกลางคืนของ Godot การบูรณาการสัญญาณเสียงที่เหมาะสมจะช่วยเพิ่มการมีส่วนร่วมของผู้เล่นโดยการให้ข้อเสนอแนะที่มีความหมายเกี่ยวกับการเปลี่ยนแปลงสิ่งแวดล้อม โชคดีที่การรวมเอฟเฟกต์เสียงเข้ากับโปรเจ็กต์ Godot สามารถทำได้อย่างง่ายดาย
ตรวจสอบให้แน่ใจว่าก่อนเริ่มงาน คุณมีเนื้อหาเสียงที่ประกอบด้วยการบันทึกเสียงที่เป็นตัวอย่างที่ชัดเจนของปรากฏการณ์การได้ยินทั้งในเวลากลางวันและกลางคืน ตัวอย่างเช่น เป็นไปได้ว่าคุณอาจมีท่วงทำนองของนกสำหรับเพลงแรกและเสียงร้องของจิ้งหรีดหรือเสียงร้องของนกฮูกสำหรับเพลงหลัง
เพื่อรวมคิวเสียงในโปรเจ็กต์กลไก Godot ของคุณ จำเป็นต้องรวมอินสแตนซ์ AudioStreamPlayer2D สองรายการไว้ในฉาก ควรตั้งชื่อสิ่งเหล่านี้ตามชื่อเล่นที่เหมาะสม เช่น “DaytimeSounds” และ “NighttimeSounds”
แก้ไขโค้ด GDScript เพื่ออำนวยความสะดวกในการเปลี่ยนเสียงจากวันเป็นคืน:
func _on_day_night_timer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false
# Play daytime sounds
$NighttimeSounds.stop() # Stop nighttime sounds
$DaytimeSounds.play() # Start daytime sounds
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true
# Play nighttime sounds
$DaytimeSounds.stop() # Stop daytime sounds
$NighttimeSounds.play() # Start nighttime sounds
เมื่อหมดเวลาของตัวจับเวลากลางวัน-กลางคืน อัลกอริธึมนี้จะประเมินสถานะปัจจุบันและเปิดใช้งานสัญญาณเสียงที่เกี่ยวข้องเพื่อช่วยให้เปลี่ยนผ่านระหว่างเฟสได้อย่างราบรื่น
รู้สึกอิสระที่จะปรับแต่งเอฟเฟกต์เสียงปลอดลิขสิทธิ์ที่คุณเลือกเพื่อให้สอดคล้องกับโทนเสียงและบรรยากาศที่คุณต้องการสำหรับเกมของคุณ นอกจากนี้ คุณยังมีความยืดหยุ่นในการรวมแทร็กเสียงหลายแทร็ก หรือใช้เอฟเฟกต์เสียงต่างๆ เช่น รีเวิร์บ เสียงสะท้อน และอื่นๆ เพื่อสร้างสภาพแวดล้อมการฟังที่ดื่มด่ำยิ่งขึ้น
ทำให้เกม Godot ของคุณมีส่วนร่วมมากขึ้นด้วยวงจรกลางวันและกลางคืน
การรวมวงจรรายวันภายในเกม Godot ของคุณสามารถเพิ่มระดับความดื่มด่ำและการมีส่วนร่วมที่ผู้เล่นสัมผัสได้อย่างมาก การเพิ่มนี้ไม่เพียงแต่เพิ่มชั้นความสมจริงให้กับโลกของเกม แต่ยังช่วยให้เกิดการแนะนำกลไกการเล่นเกมที่หลากหลายและพัฒนาตลอดจนส่งเสริมการเล่าเรื่องเชิงจินตนาการ
ลองปรับวงจรกลางวันและกลางคืนให้สอดคล้องกับธีมและกลไกเฉพาะของเกมของคุณ ขณะเดียวกันก็สำรวจองค์ประกอบภาพและการโต้ตอบต่างๆ ที่สามารถนำไปสู่ประสบการณ์การเล่นเกมที่ดื่มด่ำและน่าหลงใหล