มีวิธีมากมายในการเป็นตัวแทนและใช้ระบบส่วนประกอบของเอนทิตี แต่นี่คือคำอธิบายของวิธีหนึ่ง โปรดทราบว่าไม่มีคำจำกัดความที่ชัดเจนของสถาปัตยกรรมเอนทิตี / ส่วนประกอบ / ระบบดังนั้นนี่จึงเป็นเพียงการนำไปปฏิบัติ
ฉันจะแนะนำการเปรียบเทียบสำหรับสถาปัตยกรรมเอนทิตี / ส่วนประกอบ / ระบบที่อาจช่วยได้ ลองนึกถึงเอนทิตีเหมือนกุญแจ
หน่วยงาน
กุญแจยังมีฟัน (สีน้ำเงินเข้ม) ฟันของคีย์เอนทิตี้ของเราคือส่วนประกอบที่ประกอบขึ้น คุณสามารถบอกเอนทิตี้ของพวกเขาด้วย ID แม้ว่าพวกเขาจะมีฟันเดียวกัน ดังนั้นคีย์ทำอะไรได้พอดี? ล็อค ล็อคคือระบบของเรา ตัวอย่างเช่นระบบการเคลื่อนไหว
ระบบ
ล็อคใช้งานได้เฉพาะในกรณีที่กุญแจของเรามีทั้งตำแหน่งและความเร็ว ระบบนี้จะประมวลผลเอนทิตีที่มีตำแหน่งและความเร็วเท่านั้น มีหลายวิธีที่จะตั้งขึ้นว่าระบบเหล่านี้รู้จักซึ่งหน่วยงานในการประมวลผลมี long
แต่วิธีหนึ่งคือการใช้ แต่ละบิตสงวนไว้สำหรับประเภทส่วนประกอบ สำหรับตัวอย่างของเราสมมติประเภท 4 บิตแทนความยาว 64 บิต หน่วยงานตัวอย่างของเราจะมีส่วนประกอบทั้งหมด 1111
ดังนั้นจึงเป็นกุญแจสำคัญที่จะเป็น จากนั้นระบบจะมองหานิติบุคคลใด ๆ 11--
ที่มี ( -
ตัวแทนไม่สนใจเพราะการเคลื่อนไหวไม่สนใจว่ามีสไปรต์หรือสุขภาพ) สามารถตรวจสอบเอนทิตีด้วยการAND
ดำเนินการอย่างง่าย ((1111 & 1100) == 1100)
ดังนั้นนิติบุคคลของเราตรงกับถ้า ถ้าฉันหายไปคุณมีตรวจสอบบางส่วนเพิ่มเติมเกี่ยวกับการดำเนินงานค่าที่เหมาะสม
อย่างที่คุณเห็นระบบมีการเข้าถึงทรัพยากรภายนอก พวกเขาสามารถเข้าถึงเวลากราฟิกเสียงและอื่น ๆ มันเป็นเพียงโปรเซสเซอร์ขนาดเล็กที่ใช้ครั้งละหนึ่งคีย์และประมวลผลข้อมูล คุณจะเห็นว่าระบบการเคลื่อนไหวนั้นใช้ความเร็วเวลาเดลต้าและตำแหน่ง จากนั้นทำการคำนวณและเก็บผลลัพธ์ไว้ในตำแหน่งเดิม
ปุ่มเอนทิตีนั้นง่ายต่อการสร้าง คุณสามารถเพิ่มหรือลบได้ตามต้องการ เอนทิตีไม่สนใจมันเป็นเพียงวิธีจัดกลุ่มและถือส่วนประกอบ ส่วนประกอบไม่มีการพึ่งพาซึ่งกันและกัน ส่วนประกอบที่ใกล้เคียงที่สุดจะได้รับการโต้ตอบซึ่งกันและกันคือเมื่อระบบทำงานบนส่วนประกอบเหล่านั้นและใช้ข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่งเช่นการเคลื่อนไหวของเรา
ให้ดูที่ระบบอื่นเพื่อช่วยเสริมความคิด:
นี่คือระบบการวาดของเรา 1-1-
จะมองหาชิ้นส่วนที่ตรงกับ เอนทิตีนี้ตรงกันเนื่องจาก: ((1111 & 1010) == 1010)
นอกจากนี้คุณจะเห็นว่าระบบนี้ส่งออกข้อมูลไปยังหน้าจอโดยการวาดเอนทิตีสไปรท์ที่ตำแหน่ง
ตกลงอีกหนึ่ง ลองดูที่เอนทิตีอื่นและดูว่ามันอาจเป็นตัวอย่างของเราได้อย่างไร
อย่างที่คุณเห็นเอนทิตีนี้มีส่วนประกอบที่แนบมาน้อยลง โดยการดูส่วนประกอบมันมีดูเหมือนว่ามันอาจเป็นรายการคงที่เช่นหิน มันมีเพียงตำแหน่งและสไปรต์ มันจะไม่เคลื่อนไหวและจะไม่ได้รับผลกระทบจากการเปลี่ยนแปลงด้านสุขภาพใด ๆ เอนทิตีนี้จะสร้างคีย์ 1010 ดังนั้นระบบใดที่ทำงานกับเอนทิตีนี้ ให้ตรวจสอบ:
ต่อต้านระบบการเคลื่อนไหวของเรา:
((1010 & 1100) != 1100)
ไม่ ดูเหมือนว่าระบบการเคลื่อนไหวจะไม่สนใจเกี่ยวกับเอนทิตีนี้เพราะมันไม่จำเป็นต้องมีส่วนประกอบ
ระบบการวาดของเรา:
((1010 & 1010) == 1010)
เฮ้นั่นมันเข้ากันได้แล้ว เอนทิตีนี้จะดำเนินการโดยระบบการวาด ระบบการวาดจะวาดเทพดาที่ตำแหน่งที่กำหนดไว้
หวังว่าคุณจะเห็นว่ามันง่ายแค่ไหนในตอนนี้ที่จะเพิ่มระบบอื่นที่จะนำส่วนประกอบของเราและดำเนินการกับมัน ให้ฉันแน่ใจว่าฉันได้ตอบคำถามของคุณแล้ว:
ถ้าหลายระบบต้องการเข้าถึงส่วนประกอบเดียวกัน ข้อมูลควรอยู่ที่ไหน
โดยปกติแล้วระบบจะดำเนินการอย่างใดอย่างหนึ่งหลังจากที่อื่น พวกเขาประมวลผลเอนทิตีทั้งหมดที่ตรงกับความต้องการของพวกเขาจากนั้นระบบถัดไปจะทำแบบเดียวกันและต่อไปเรื่อย ๆ ข้อมูลอาศัยอยู่กับเอนทิตี ไม่ควรมีสิ่งใดเก็บไว้ในระบบมันเป็นเพียงล็อคที่ได้รับการเปิดกุญแจคือที่ข้อมูลอยู่และย้ายจากล็อคเพื่อล็อค
นิติบุคคลสร้างอย่างไร ระบบเชื่อมโยงกับส่วนประกอบอย่างแท้จริงหรือไม่? หากฉันต้องการแนะนำส่วนประกอบใหม่บางอย่างฉันต้องแนะนำระบบใหม่หรือแก้ไขส่วนประกอบที่มีอยู่ด้วยหรือไม่?
หน่วยงานเป็นเพียงส่วนประกอบของกระเป๋า พวกเขามี ID ที่ไม่ซ้ำกันและรายการของส่วนประกอบ ระบบเชื่อมโยงกับส่วนประกอบตามวิธีที่อธิบายไว้ข้างต้นเท่านั้น คุณสามารถมีส่วนประกอบที่ไม่มีระบบที่ทำงานกับมัน แต่มันไม่มีประโยชน์อะไร ในทำนองเดียวกันคุณสามารถมีระบบที่กำลังมองหาส่วนประกอบที่ไม่มีเอนทิตี นั่นเป็นเรื่องที่ไม่มีประโยชน์น้อยกว่าเพราะพวกเขาอาจกำลังรอเอนทิตีที่จะสร้างที่ตรงกับล็อคของพวกเขา ดังนั้นใช่ถ้าคุณแนะนำองค์ประกอบใหม่คุณต้องการสร้างระบบที่ใช้องค์ประกอบนั้น มิฉะนั้นคุณเพียงแค่ใส่ฟันของคุณเพื่อล็อคที่ไม่มีอยู่
หากเอนทิตีของฉันเป็นเพียง ID ฉันจะรู้ได้อย่างไรว่าเอนทิตีโรบ็อตของฉันต้องถูกย้ายหรือเรนเดอร์และทำการแก้ไขโดยระบบบางระบบ
ฉันคิดว่าฉันตอบคำถามนี้ด้วยแนวคิดของlong
คีย์ที่กำหนดส่วนประกอบที่มีอยู่ในเอนทิตี คุณรู้เพราะกุญแจเหมาะกับการล็อค
วุ้ย นั่นคือการโพสต์ยาว! (หรืออย่างน้อยก็ดูเหมือนกับจอภาพขนาดใหญ่ของฉัน)