Contents

วิธีสร้างระบบการให้คะแนนในเกม Godot

ในเกมใดก็ตาม การใช้ระบบการให้คะแนนไม่ได้เป็นเพียงกรณีของการติดตามคะแนนเท่านั้น การให้คะแนนเป็นคุณสมบัติพื้นฐานที่เพิ่มความลึก ความท้าทาย และความรู้สึกของความสำเร็จ

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

การตั้งค่าเกม Godot

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

ในการเริ่มสร้างตัวละครในโครงการ Unity ของคุณ ก่อนอื่นคุณต้องสร้างฉากใหม่ภายในแผงลำดับชั้น จากจุดนี้ สิ่งสำคัญคือต้องเพิ่มวัตถุ CharacterBody2D'ซึ่งทำหน้าที่เป็นฐานสำหรับคุณสมบัติทางกายภาพของผู้เล่น เช่น มวล แรงโน้มถ่วง และการตรวจจับการชน ส่วนประกอบเฉพาะนี้ช่วยให้สามารถปรับแต่งปัจจัยเหล่านี้เพื่อให้เหมาะกับกลไกการเล่นเกมที่คุณต้องการ เพื่อให้แน่ใจว่าสามารถตรวจจับผู้เล่นได้ในระหว่างการโต้ตอบ ขอแนะนำให้รวมคุณสมบัติ CollisionShape2D ไว้ใน CharacterBody2D รูปร่างที่เฉพาะเจาะจงนี้ควรเป็นรูปสี่เหลี่ยมผืนผ้าเพื่อกำหนดขอบเขตของ hitbox ของผู้เล่นอย่างมีประสิทธิภาพ สุดท้าย คุณอาจตกแต่งตัวละครด้วยการเพิ่มองค์ประกอบ Sprite2D ` การแสดงภาพนี้

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

ในการใช้การเคลื่อนไหวของผู้เล่นใน GDScript เราสามารถใช้คลาส Transform และวิธีการที่เกี่ยวข้อง เช่น set\_position() และ set\_velocity() ตำแหน่งของผู้เล่นสามารถอัปเดตได้โดยการเรียก set\_position() ในขณะที่สามารถปรับความเร็วได้โดยใช้ set\_velocity() นอกจากนี้ เป็นไปได้ที่จะใช้แรงกับวัตถุของผู้เล่นผ่านการใช้ฟังก์ชัน เช่น apply\_impulse() หรือ add\_force() สิ่งนี้ทำให้สามารถใช้รูปแบบการเคลื่อนไหวที่หลากหลายตามกลไกการเล่นเกมที่ต้องการ

 extends CharacterBody2D

var speed = 200

func _physics_process(delta):
    var velocity = Vector2()

    if Input.is_action_pressed('ui_right'):
        velocity.x \+= 1

    if Input.is_action_pressed('ui_left'):
        velocity.x -= 1

    if Input.is_action_pressed('ui_down'):
        velocity.y \+= 1

    if Input.is_action_pressed('ui_up'):
        velocity.y -= 1

    velocity = velocity.normalized() * speed
    move_and_collide(velocity * delta)

โค้ดปัจจุบันขยายตามฟังก์ชันของคลาส ` CharacterBody2D’ทำให้ผู้ใช้สามารถนำทางตัวละครในความสามารถสี่ทิศทางโดยใช้ปุ่มลูกศร

เพื่อแนะนำองค์ประกอบไดนามิกให้กับเกมของเรา เราจะรวมศัตรูที่เคลื่อนไหว เพื่อรักษาความเรียบง่าย ให้ใช้องค์ประกอบ ` Sprite2D’พื้นฐานที่เลื่อนไปตามแนวนอนบนหน้าจอแสดงผล

 extends StaticBody2D

var speed = 100

func _physics_process(delta):
    position.x -= speed * delta

    if position.x < -100:
        position.x = 800 

การใช้งานปัจจุบันสร้างศัตรูพื้นฐานซึ่งย้ายจากขวาไปซ้าย สร้างตำแหน่งใหม่บนหน้าจอเมื่อออกไปเพื่อสร้างความประทับใจให้กับศัตรูที่หลั่งไหลเข้ามา

/th/images/simpleenemy-game-in-godot.jpg

ตั้งค่าระบบการให้คะแนน

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

 extends CharacterBody2D

var score = 0

func _ready():
    score = 0 

ตัวแปรคะแนนทำหน้าที่เป็นพื้นที่เก็บข้อมูลที่ครอบคลุมสำหรับคะแนนสะสมของผู้เล่นทั่วทั้งเกม ในขณะที่ผู้เล่นทำการกระทำที่ให้คะแนน ตัวแปรคะแนนควรเพิ่มขึ้นตามการได้รับเหล่านี้ เมื่อปฏิบัติตามข้อตกลงดังกล่าว การแสดงคะแนนปัจจุบันบนอินเทอร์เฟซจะกลายเป็นเรื่องง่ายดาย การอัปเดตคะแนนดังกล่าวระหว่างเกมเพลย์มีความคล่องตัว และรักษาคะแนนสำหรับการพิจารณาผู้ทำคะแนนสูงสุดได้

เมื่อใช้กลไกการให้คะแนน ผู้ใช้อาจดำเนินการแสดงผลคะแนนบนอินเทอร์เฟซการแสดงผล ตรวจสอบความสำเร็จสูงสุดของผู้เข้าร่วมแต่ละคน และรวมฟังก์ชันเพิ่มเติมเพื่อเพิ่มมูลค่าความบันเทิงของระบบการให้คะแนน

แสดงคะแนน

แน่นอน! ต่อไปนี้คือตัวอย่างการแสดงคะแนนบนหน้าจอโดยใช้โหนด Label ใน Unity:csharpusing UnityEngine;using System.Collections;public class ScoreManager: MonoBehaviour {public static int score=0;//กำหนดตัวแปรส่วนกลางสำหรับ scorevoid Update() {score++;//เพิ่มคะแนนในแต่ละเฟรม//รับการอ้างอิงถึงป้ายกำกับ"scoreText"จากลำดับชั้นของฉากข้อความ scoreText=GetComponent ();if (คะแนน > 99) {//ป้องกันคะแนนที่สูงกว่า 100 โดยรีเซ็ตกลับเป็นคะแนนศูนย์=0; } อื่น {//อัปเดตข้อความ

 extends CharacterBody2D

var score = 0
var score_label

func _ready():
    score_label = get_parent().get_node("Label")
    score = 0

func _physics_process(delta):
    var velocity = Vector2()
    // Player movement code...

    # Update score and display
    score_label.text = "Score: " \+ str(score) 

รหัสที่กำหนดจะดึงองค์ประกอบป้ายกำกับและแก้ไขเนื้อหาเพื่อให้สะท้อนถึงคะแนนปัจจุบัน

/th/images/score-label-in-godot.jpg

รวมถึงคุณสมบัติเพิ่มเติม

เพื่อเพิ่มมูลค่าความบันเทิงของระบบการให้คะแนนของคุณให้ดียิ่งขึ้น คุณอาจต้องการรวมองค์ประกอบต่อไปนี้อย่างน้อยหนึ่งอย่างในเกม platformer ของคุณ:

เพิ่มพลังและโบนัส

พิจารณาการรวมไอเท็มสะสมหรือการเพิ่มพลังต่างๆ ไว้ตลอดทั้งเกมซึ่งให้ข้อได้เปรียบชั่วคราว เช่น ประสิทธิภาพที่เพิ่มขึ้น คะแนนโบนัส หรือความสามารถพิเศษ ซึ่งท้ายที่สุดแล้วจะช่วยยกระดับประสบการณ์การเล่นเกม

พิจารณาสถานการณ์ที่การเสริมพลัง Double Score เพิ่มการสะสมคะแนนของผู้เล่นชั่วคราวในช่วงเวลาหนึ่ง ในขณะที่การเสริมพลัง Shield ให้ภูมิต้านทานต่อความเสียหายในช่วงเวลาสั้น ๆ ช่วยเพิ่มประสบการณ์การเล่นเกมด้วยความท้าทายและโอกาสในการประสบความสำเร็จ.

ระบบคอมโบ

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

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

โบนัสเวลา

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

วัตถุประสงค์ระดับ

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

พฤติกรรมและคะแนนของศัตรู

ใช้พฤติกรรมที่แตกต่างกันสำหรับฝ่ายตรงข้ามและจัดสรรการจัดสรรคะแนนที่แตกต่างกันตามระดับความท้าทาย ศัตรูที่มีระดับความยากสูงกว่าจะให้รางวัลมากมายเมื่อเอาชนะได้ ในขณะที่คู่ต่อสู้ที่น่ากลัวน้อยกว่าจะให้คะแนนน้อยกว่า วิธีนี้ช่วยให้ได้รับประสบการณ์การเล่นเกมที่หลากหลายโดยทำให้การเผชิญหน้ากับศัตรูแต่ละครั้งมีเอกลักษณ์และน่าสนใจ

วิธีปฏิบัติที่ดีที่สุดสำหรับระบบการให้คะแนน

เพื่อเพิ่มประสิทธิภาพการทำงานของระบบการให้คะแนน มีแนวทางที่กำหนดไว้แล้วซึ่งสามารถนำมาใช้เพื่อส่งเสริมสภาพแวดล้อมการเล่นเกมที่สมจริง ในแนวทางที่แนะนำเหล่านี้ ได้แก่:

ความสมดุลและความยุติธรรม

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

ล้างความคิดเห็น

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

การปรับความยาก

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

เล่นซ้ำได้

เพื่อส่งเสริมการเล่นซ้ำ ให้ออกแบบกลไกการให้คะแนนที่รวมเส้นทางต่างๆ และเป้าหมายทางเลือกเพื่อให้ผู้เล่นบรรลุ ด้วยการให้ตัวเลือกที่หลากหลาย ผู้เล่นจะได้รับการกระตุ้นให้กลับมาและทดลองแนวทางอื่น

การมองเห็นคะแนนสูง

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

ทำให้เกม Godot มีส่วนร่วมมากขึ้นด้วยระบบการให้คะแนน

การผสมผสานกลไกการให้คะแนนภายในเกม Godot ของคุณสามารถเพิ่มเสน่ห์และคุณค่าความบันเทิงให้กับผู้เล่นได้อย่างมาก โดยการส่งเสริมวิถีแห่งความก้าวหน้าที่มองเห็นได้ กระตุ้นการเล่นซ้ำๆ และสร้างการแข่งขันที่เป็นมิตรในหมู่เกมเมอร์

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