ฉันคิดว่าคุณจำเป็นต้องรู้วิธีการทำกิจกรรมเหล่านี้และส่วนที่เหลือของการโพสต์เป็นเรื่องเกี่ยวกับถ้าคุณต้องการเพียงแค่จัดเก็บเหตุการณ์เหล่านี้แล้วใช้ฐานข้อมูลเชิงสัมพันธ์บางส่วนหรือ decribe พวกเขาด้วยข้อความและใช้ภาษาสคริปต์ คุณ). :)
สิ่งที่คุณต้องการคือการรับรู้เหตุการณ์ที่เกิดขึ้น (1) จากนั้นทำการกระทำบางอย่างที่เหตุการณ์เหล่านี้ต้องการ (พิมพ์ข้อความตรวจสอบ keypress ... ) (2) คุณต้องการทำให้เหตุการณ์เหล่านี้เกิดขึ้นเพียงครั้งเดียว (3)
โดยทั่วไปคุณต้องการตรวจสอบเงื่อนไขแล้วกำหนดพฤติกรรมบางอย่าง
วิธีจดจำเหตุการณ์ (1)
- คุณต้องการรับรู้เหตุการณ์เช่น "ศัตรูคนแรกที่พบ", "รับไอเท็มใหม่"
- หากส่วนทั่วไปเกิดขึ้น " พบศัตรู ", " รับไอเท็ม " คุณตรวจสอบชิ้นส่วนเฉพาะ " ก่อน ... ", " รับไอเท็มใหม่ "
เหตุการณ์ที่ทำคืออะไร
ในมุมมองที่กว้างขึ้นแต่ละเหตุการณ์นั้นทำจาก:
- เงื่อนไขเบื้องต้นคุณตรวจสอบพวกเขา
- การกระทำที่จะกระทำเมื่อมีเงื่อนไขเบื้องต้น (พูดว่า "" คุณสังหารศัตรูคนแรก! "พูด" "ทำคอมโบโดยกดปุ่ม A และ B" พูดว่า "กด" Enter "เพื่อดำเนินการต่อ" ต้องใช้คีย์ "Enter")
วิธีเก็บเหตุการณ์เหล่านี้
ในโครงสร้างข้อมูลบางส่วน:
- มีรายการเงื่อนไขเบื้องต้น (สตริงหรือรหัสหากคุณกำลังเขียนในภาษาระดับสูงบางอย่าง)
- มีรายการการกระทำ (อาจเป็นสตริง Quake เอ็นจินใช้สตริงสำหรับเหตุการณ์)
คุณยังสามารถเก็บไว้ในฐานข้อมูลเชิงสัมพันธ์ได้แม้ว่าจะดูเหมือนว่าไม่จำเป็นถ้าคุณต้องการทำให้เกมนี้มีขนาดใหญ่คุณอาจต้องสร้างเกมขึ้นมา
จากนั้นคุณต้องแยกวิเคราะห์สตริง / สิ่งเหล่านี้ หรือคุณสามารถใช้ภาษาสคริปต์บางอย่างเช่น Python หรือ LUA หรือภาษาเช่น LISP พวกเขาทั้งหมดสามารถแยกวิเคราะห์และดำเนินการเพื่อคุณ :)
วิธีใช้เหตุการณ์เหล่านี้ในเกมวน (2)
คุณจะต้องการโครงสร้างข้อมูลทั้งสองนี้:
- คิวของเหตุการณ์ (เหตุการณ์ที่กำหนดไว้ให้เรียกใช้จะอยู่ที่นี่)
- คิวของการกระทำ (การกระทำที่กำหนดไว้เหตุการณ์หมายถึงการกระทำที่จะทำ)
ขั้นตอนวิธีการ:
- ถ้าคุณรู้จักบางเหตุการณ์ของปัจจัยพื้นฐานจะได้พบกับคุณทำให้เขาเข้าไปในคิวงาน
- (3) จากนั้นคุณควรตรวจสอบให้แน่ใจว่าเหตุการณ์นี้เกิดขึ้นเพียงครั้งเดียวหากคุณต้องการ :) (ตัวอย่างเช่นอาเรย์บูลีน has_this_event_happened ["ศัตรูตัวแรกเจอ"])
- (หากคิวการกระทำว่างเปล่าจากนั้น) หากมีเหตุการณ์ในคิวเหตุการณ์คุณใส่การกระทำของเขาลงในคิวการดำเนินการและลบเขาออกจากคิวเหตุการณ์
- หากมีการดำเนินการในคิวการดำเนินการคุณเริ่มทำสิ่งที่ต้องการโดยมัน
- หากการกระทำดังกล่าวเสร็จสิ้นคุณลบมันออกจากคิวการดำเนินการ
วิธีทำสิ่งเหล่านี้เอง (2)
คุณสร้างรายการของวัตถุซึ่งมีฟังก์ชั่น "อัพเดท" บางครั้งพวกเขาจะเรียกเอนทิตี (ใน Quake engine) หรือนักแสดง (ใน Unreal engine)
- คุณเริ่มวัตถุเหล่านี้เมื่อพวกเขาถูกขอให้เริ่มในคิวการดำเนินการ
- วัตถุเหล่านี้สามารถใช้สำหรับสิ่งอื่น ๆ เช่นตัวจับเวลาอื่น ๆ ใน Quake หน่วยงานเหล่านี้จะใช้สำหรับตรรกะเกมทั้งหมดผมขอแนะนำให้คุณอ่านวัสดุบางอย่างเกี่ยวกับมัน
การกระทำ "พูดอะไรบางอย่าง"
- คุณพิมพ์บางอย่างบนหน้าจอ
- คุณต้องการให้ข้อความนี้ปรากฏขึ้นสองสามวินาที
- ใน "อัปเดต":
- ทำให้ตัวแปร remove_me_after และลดลงตามเวลาที่ผ่านไป
- เมื่อตัวแปรคือ 0 คุณลบการกระทำนี้ออกจากคิวการกระทำ
- คุณลบวัตถุนี้ (หรือกำหนดเวลาให้ลบ ... )
การทำงาน "ต้องมีคีย์"
- มันขึ้นอยู่กับว่าคุณต้องการสร้างมัน แต่ฉันคิดว่าคุณส่งข้อความ
- ใน "อัปเดต" ":
- คุณเพียงแค่ตรวจสอบเหตุการณ์ปุ่มกดที่ต้องการ
- คุณอาจต้องการแถวลำดับ / คิวเพื่อพักเหตุการณ์ปุ่มกด
- จากนั้นคุณสามารถลบออกจากคิวการดำเนินการและลบวัตถุ
วิธีการเรียนรู้อะไร