คำถามติดแท็ก design-patterns

รูปแบบการออกแบบเป็นโซลูชันที่ใช้ซ้ำได้ทั่วไปสำหรับปัญหาที่เกิดขึ้นโดยทั่วไปภายในบริบทที่กำหนดในการออกแบบซอฟต์แวร์

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

2
วิธีที่ถูกต้องในการทำให้นามธรรมเป็นตัวควบคุม XBox
ฉันมีตัวควบคุม XBox360 ซึ่งฉันต้องการใช้เป็นอินพุตสำหรับแอปพลิเคชัน สิ่งที่ฉันไม่สามารถทำได้คือวิธีที่ดีที่สุดในการเปิดเผยสิ่งนี้ผ่านทางอินเทอร์เฟซ ด้านหลังของฉากคลาสที่จัดการกับคอนโทรลเลอร์นั้นขึ้นอยู่กับสถานะของปุ่มสำรวจ ฉันเริ่มลองลิงค์แล้ว: Event ButtonPressed() as ButtonEnum ที่ButtonEnumเป็นButtonRed, ButtonStartฯลฯ ... ข้อ จำกัด เล็ก ๆ น้อย ๆ ที่สนับสนุนเฉพาะการกดปุ่มไม่ถือ / รูปแบบ (กดสองครั้งเป็นต้น) แนวคิดต่อไปคือการเปิดเผยสถานะปุ่มให้กับแอพเช่น Property RedPressed as Boolean Property StartPressed as Boolean Property Thumb1XAxis as Double นี่ยืดหยุ่นมาก แต่จริงๆแล้วมันบังคับให้ทำงานมากเกินไปในแอพและต้องการให้แอพโพล - ฉันต้องการให้มีการขับเคลื่อนกิจกรรมหากเป็นไปได้ ฉันพิจารณาเพิ่มกิจกรรมหลายรายการเช่น: Event ButtonPressed(Button as ButtonEnum) Event ButtonPressedTwice(Button as ButtonEnum) Event …

1
การสร้างระบบรายการที่แข็งแกร่ง
จุดประสงค์ของฉันคือการสร้างระบบไอเท็มแบบโมดูลาร์ / แบบทั่วไปที่สามารถจัดการสิ่งต่าง ๆ เช่น: รายการที่อัปเกรดได้ (+6 Katana) ตัวดัดแปลงทางสถิติ (ความชำนาญ +15) ตัวดัดแปลงไอเท็ม (โอกาส X% ที่จะทำความเสียหาย Y, โอกาสที่จะถูกแช่แข็ง) รายการที่ชาร์จใหม่ได้ (พนักงาน Magic กับประเพณี 30) Set Items (ติดตั้ง X 4 ชุดเพื่อเปิดใช้งานคุณสมบัติ Y) หายาก (ทั่วไป, ไม่ซ้ำใคร, ตำนาน) ทำให้ไม่ลงรอยกัน (แบ่งเป็นวัสดุหัตถกรรมบางอย่าง) Craftable (สามารถสร้างขึ้นด้วยวัสดุบางอย่าง) ใช้งานได้ (5 นาที% พลังโจมตี X, รักษา +15 hp) * ฉันสามารถแก้ไขคุณสมบัติที่เป็นตัวหนาในการตั้งค่าต่อไปนี้ ตอนนี้ฉันพยายามเพิ่มตัวเลือกมากมายเพื่อสะท้อนสิ่งที่ฉันมีในใจ ฉันไม่ได้วางแผนที่จะเพิ่มคุณสมบัติเหล่านี้ทั้งหมดที่จำเป็น แต่ฉันต้องการที่จะสามารถใช้งานได้ตามที่เห็นสมควร …

3
ฉันต้องการกำจัดรูปแบบการออกแบบที่ทำให้ทุกอย่างคงที่และเป็นสากล แต่อย่างไร
ฉันทำดันเจี้ยนเล็ก ๆ น้อย ๆ ในอวกาศและฉันอยากจะฟังคำแนะนำบางอย่างเกี่ยวกับวิธีสร้างแบ็กเอนด์ของเครื่องยนต์ที่ดีกว่า โดยทั่วไปปัจจุบันทุกอย่างขึ้นอยู่กับ crapload ของผู้จัดการ: BackgroundManager: มีAddBackground(image, parallax)วิธีในการสร้างเอฟเฟกต์ฉากหลังที่ยอดเยี่ยม ConfigManager: อ่าน / สร้างไฟล์ config และเก็บข้อมูลที่อ่านจากไฟล์ config นั้น DrawManager: มีDraw(sprite)วิธีการวาดสิ่งที่จะหน้าจอและสิ่งที่ชอบSetView(view), GetView()ฯลฯ EntityManager: เก็บเอนทิตีที่ใช้งานอยู่ทั้งหมดและมีวิธีการเพิ่มลบและค้นหาเอนทิตี DungeonManager (ที่จริงเรียกว่า GridManager แต่นี่คือความเรียบง่าย): มีวิธีการชอบGenerateDungeon(), PlaceEnemies(), PlaceFinish()ฯลฯ ตอนนี้ฉันยังไม่ได้บอกรายชื่อผู้จัดการทั้งหมดของฉันดังนั้นฉันคิดว่าสิ่งนี้ต้องเปลี่ยน เกมของฉันขึ้นอยู่กับหน้าจอซึ่งทำให้มันน่ารำคาญมากขึ้นเพราะฉันไม่ต้องการครึ่งหนึ่งของสิ่งที่ผู้จัดการของฉันกำลังจัดการอยู่เช่นเมนูหลัก (ฉันไม่ต้องการฟิสิกส์ / เอนทิตี / ดันเจี้ยนในเมนูหลักของฉัน !) ตอนนี้ฉันคิดเกี่ยวกับการทำให้ผู้จัดการไม่คงที่และให้ ScreenMainGame เป็นตัวอย่างของผู้จัดการเฉพาะเกมทั้งหมด แต่นั่นทำให้การโทร / รับอะไรก็ตามที่เกี่ยวข้องกับผู้จัดการเป็นเรื่องใหญ่ ... ตัวอย่างเช่นถ้าฉันต้องการดึงดันเจี้ยนของฉันจากสถานที่ใด ๆ ที่ไม่ได้อยู่ScreenMainGame.Draw()ฉันจะต้องทำสิ่งนี้ ... …

2
ทำให้ทักษะและความสามารถของตัวละครเป็นคำสั่งฝึกดีไหม?
ฉันกำลังออกแบบเกมที่ประกอบด้วยตัวละครที่มีทักษะการโจมตีที่ไม่เหมือนใครและความสามารถอื่น ๆ เช่นการสร้างการซ่อมแซมเป็นต้นผู้เล่นสามารถควบคุมตัวละครหลายตัวได้ ฉันกำลังคิดที่จะนำทักษะและความสามารถเช่นนั้นมาใช้ในการควบคุมของแต่ละคน ตัวควบคุมแบบสแตติกจะลงทะเบียนคำสั่งเหล่านี้ทั้งหมดลงในรายการคำสั่งแบบคงที่ รายการคงที่จะประกอบด้วยทักษะและความสามารถทั้งหมดของตัวละครทั้งหมดในเกม ดังนั้นเมื่อผู้เล่นเลือกหนึ่งในตัวละครและคลิกที่ปุ่มบน UI เพื่อเสกคาถาหรือแสดงความสามารถมุมมองจะเรียกคอนโทรลเลอร์แบบสแตติกเพื่อดึงคำสั่งที่ต้องการจากรายการและดำเนินการ สิ่งที่ฉันไม่แน่ใจ แต่ถ้าเป็นการออกแบบที่ดีเพราะฉันกำลังสร้างเกมของฉันใน Unity ฉันคิดว่าฉันสามารถสร้างทักษะและความสามารถทั้งหมดเป็นส่วนประกอบแต่ละอย่างซึ่งจะติดกับ GameObjects ซึ่งเป็นตัวแทนของตัวละครในเกม จากนั้น UI จะต้องเก็บ GameObject ของตัวละครไว้แล้วจึงดำเนินการคำสั่ง อะไรจะเป็นการออกแบบและการฝึกฝนที่ดีกว่าสำหรับเกมที่ฉันกำลังออกแบบ?

1
รูปแบบสำหรับการดำเนินการของเกม
มีรูปแบบที่ยอมรับโดยทั่วไปสำหรับการดำเนินการต่าง ๆ ภายในเกมหรือไม่ วิธีที่ผู้เล่นสามารถทำการกระทำและ AI อาจทำการกระทำเช่นการย้ายการโจมตีการทำลายตนเองเป็นต้น ขณะนี้ฉันมี BaseAction ที่เป็นนามธรรมซึ่งใช้. NET generics เพื่อระบุวัตถุต่าง ๆ ที่ได้รับจากการกระทำต่าง ๆ ทั้งหมดนี้นำมาใช้ในรูปแบบที่คล้ายกับคำสั่งซึ่งแต่ละการกระทำมีความรับผิดชอบต่อตนเองและทำทุกอย่างที่จำเป็น เหตุผลของฉันในการเป็นนามธรรมคือเพื่อให้ฉันมี ActionHandler เพียงอันเดียวและ AI ก็สามารถต่อคิวการกระทำที่แตกต่างกันในการดำเนินการตาม baseAction และสาเหตุที่เป็นเรื่องทั่วไปคือการกระทำที่แตกต่างกันสามารถส่งคืนข้อมูลผลลัพธ์ที่เกี่ยวข้องกับการกระทำ (เนื่องจากการกระทำที่แตกต่างกันอาจมีผลลัพธ์ที่แตกต่างกันโดยสิ้นเชิงในเกม) พร้อมกับการกระทำทั่วไปก่อนและหลังดำเนินการ ดังนั้น ... มีวิธีที่ยอมรับมากขึ้นในการทำเช่นนี้หรือเสียงไม่เป็นไร?

7
การแยกภาพวาดและตรรกะในเกม
ฉันเป็นนักพัฒนาที่เพิ่งเริ่มยุ่งเกี่ยวกับการพัฒนาเกม ฉันเป็น. Net ผู้ชายดังนั้นฉันจึงยุ่งกับ XNA และตอนนี้ฉันกำลังเล่นกับ Cocos2d สำหรับ iPhone คำถามของฉันนั้นกว้างกว่าจริง ๆ สมมติว่าฉันกำลังสร้างเกมโป่งง่ายๆ ฉันมีBallชั้นเรียนและPaddleชั้นเรียน มาจากการพัฒนาของโลกธุรกิจสัญชาตญาณแรกของฉันคือไม่มีรหัสรูปวาดหรือการป้อนข้อมูลในทั้งสองคลาส //pseudo code class Ball { Vector2D position; Vector2D velocity; Color color; void Move(){} } ไม่มีสิ่งใดในคลาสบอลที่จัดการอินพุตหรือจัดการกับรูปวาด จากนั้นฉันจะมีคลาสอีกคลาสของฉันGameหรือของฉันScene.m(ใน Cocos2d) ซึ่งจะสร้างบอลขึ้นมาใหม่และในระหว่างวนรอบเกมมันจะจัดการกับบอลตามที่ต้องการ ในบทเรียนหลายบทสำหรับทั้ง XNA และ Cocos2d ฉันเห็นรูปแบบเช่นนี้: //pseudo code class Ball : SomeUpdatableComponent { Vector2D position; Vector2D velocity; Color color; …

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

4
ฟังก์ชั่นแบบต่อเฟรมการโทรและการส่งข้อความที่ขับเคลื่อนด้วยเหตุการณ์ในการออกแบบเกม
การออกแบบเกมแบบดั้งเดิมอย่างที่ฉันรู้นั้นใช้ความหลากหลายและฟังก์ชั่นเสมือนจริงเพื่ออัพเดทสถานะของเกม กล่าวอีกนัยหนึ่งชุดฟังก์ชั่นเสมือนจริงจะถูกเรียกในช่วงเวลาปกติ (เช่น: ต่อเฟรม) ในทุกวัตถุในเกม เมื่อเร็ว ๆ นี้ฉันค้นพบว่ามีอีกระบบการส่งข้อความที่ขับเคลื่อนด้วยเหตุการณ์เพื่อปรับปรุงสถานะของวัตถุเกม ที่นี่วัตถุมักจะไม่ได้รับการปรับปรุงในแต่ละเฟรม แต่จะมีการสร้างระบบการส่งข้อความเหตุการณ์ที่มีประสิทธิภาพสูงและวัตถุเกมจะได้รับการอัพเดตหลังจากได้รับข้อความเหตุการณ์ที่ถูกต้องเท่านั้น จัดกิจกรรมขับเคลื่อนสถาปัตยกรรมเกมจะอธิบายได้ดีใน: เกมการเข้ารหัสที่สมบูรณ์โดยไมค์แมคชาฟฟรี ฉันขอความช่วยเหลือจากคำถามต่อไปนี้: อะไรคือข้อดีและข้อเสียของทั้งสองวิธีคืออะไร? อันไหนดีกว่าอีกอัน? การออกแบบเกมเป็นไปตามหลักสากลและดีกว่าในทุก ๆ ด้านหรือไม่? ดังนั้นจึงแนะนำให้ใช้งานแม้ในแพลตฟอร์ม mombile? อันไหนมีประสิทธิภาพมากขึ้นและยากต่อการพัฒนา เพื่อชี้แจงคำถามของฉันไม่ได้เกี่ยวกับการลบความหลากหลายโดยสิ้นเชิงจากการออกแบบเกม ฉันเพียงต้องการที่จะเข้าใจความแตกต่างและผลประโยชน์จากการใช้การส่งข้อความที่ขับเคลื่อนด้วยเหตุการณ์และการโทรปกติ (ต่อเฟรม) ไปยังฟังก์ชั่นเสมือนจริงเพื่ออัปเดตสถานะเกม ตัวอย่าง: คำถามนี้ทำให้เกิดความขัดแย้งเล็กน้อยที่นี่ดังนั้นฉันขอเสนอตัวอย่าง: ตาม MVC เครื่องมือเกมแบ่งออกเป็นสามส่วนหลัก: Application Layer (การสื่อสารของฮาร์ดแวร์และระบบปฏิบัติการ) เกมลอจิก มุมมองเกม ในเกมแข่งรถ Game View รับผิดชอบในการแสดงผลหน้าจอโดยเร็วที่สุดอย่างน้อย 30 เฟรมต่อวินาที Game View รับฟังอินพุตของผู้เล่นด้วย ตอนนี้สิ่งนี้เกิดขึ้น: ผู้เล่นกดแป้นคันเร่งเป็น 80% GameView สร้างข้อความ "เหยียบเชื้อเพลิงรถยนต์ …

2
มันคุ้มค่าหรือไม่ที่จะใช้สระอนุภาคในภาษาที่มีการจัดการ?
ฉันจะใช้พูลวัตถุสำหรับระบบอนุภาคของฉันใน Java จากนั้นฉันพบสิ่งนี้ใน Wikipedia ในการใช้ถ้อยคำใหม่กล่าวว่ากลุ่มวัตถุไม่คุ้มค่าที่จะใช้ในภาษาที่ได้รับการจัดการเช่น Java และ C # เนื่องจากการจัดสรรใช้เวลาเพียงสิบการดำเนินการเมื่อเทียบกับหลายร้อยในภาษาที่ไม่มีการจัดการเช่น C ++ แต่อย่างที่เรารู้กันดีว่าทุกคำสั่งอาจทำให้ประสิทธิภาพของเกมแย่ลง ตัวอย่างเช่นพูลของไคลเอ็นต์ใน MMO: ไคลเอ็นต์จะไม่เข้าและออกจากพูลเร็วเกินไป แต่อนุภาคอาจได้รับการต่ออายุหลายสิบครั้งในหนึ่งวินาที คำถามคือ: มันคุ้มค่าหรือไม่ที่จะใช้กลุ่มวัตถุสำหรับอนุภาค (โดยเฉพาะกลุ่มที่ตายและสร้างใหม่อย่างรวดเร็ว) ในภาษาที่มีการจัดการหรือไม่?

3
การสร้างเอนทิตีเป็นการรวมตัว
ฉันเพิ่งถามเกี่ยวกับวิธีแยกเอนทิตีออกจากพฤติกรรมและคำตอบหลักที่เชื่อมโยงกับบทความนี้: http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/ แนวคิดขั้นสุดยอดที่เขียนเกี่ยวกับที่นี่คือ: วัตถุประสงค์ในการรวมบริสุทธิ์ ฉันสงสัยว่าฉันจะทำอย่างไรเพื่อสร้างเอนทิตีเกมเป็นการรวมที่บริสุทธิ์โดยใช้ C # ฉันยังไม่เข้าใจแนวคิดเกี่ยวกับวิธีการทำงานนี้ (บางทีเอนทิตีเป็นอาร์เรย์ของวัตถุที่ใช้อินเทอร์เฟซหรือชนิดฐานที่แน่นอน?) ความคิดปัจจุบันของฉันยังคงเกี่ยวข้องกับการมีคลาสที่เป็นรูปธรรมสำหรับแต่ละประเภทเอนทิตีที่ใช้อินเทอร์เฟซที่เกี่ยวข้อง (IMoveable, ICollectable, ISpeakable และอื่น ๆ ) ฉันจะดำเนินการเกี่ยวกับการสร้างเอนทิตี้อย่างเดียวเป็นการรวมตัวโดยไม่ต้องมีรูปธรรมใด ๆ สำหรับเอนทิตีนั้น

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

4
เอ็นจินเหมือนกับเอ็นจิ้นกระบวนการซอร์สอย่างไร
ใน Source engine (และเป็นผู้บุกเบิก, goldsrc, quake's) วัตถุของเกมจะถูกแบ่งออกเป็นสองประเภทโลกและเอนทิตี โลกคือรูปทรงเรขาคณิตของแผนที่และเอนทิตีคือผู้เล่น, อนุภาค, เสียง, คะแนน, ฯลฯ (สำหรับ Source Engine) ทุกหน่วยงานมีฟังก์ชั่นการคิดซึ่งทำทุกตรรกะสำหรับเอนทิตีนั้น ดังนั้นหากทุกอย่างที่ต้องประมวลผลมาจากคลาสพื้นฐานพร้อมฟังก์ชันคิดเครื่องมือสร้างเกมสามารถเก็บทุกอย่างไว้ในรายการและในทุก ๆ เฟรมวนรอบมันและเรียกฟังก์ชันนั้น ในตอนแรกความคิดนี้มีเหตุผล แต่อาจใช้ทรัพยากรมากเกินไปถ้าเกมมีเอนทิตีจำนวนมาก .. ดังนั้นเอ็นจินเช่น Source ดูแล (กระบวนการอัปเดตวาด ฯลฯ ) ของวัตถุในเกมอย่างไร

3
มีวิธีใดบ้างในการแยกลอจิกเกมออกจากอนิเมชั่นและลูปการวาด?
ฉันเพิ่งสร้างเกมแฟลชโดยใช้ MovieClips และแยกภาพเคลื่อนไหวออกจากตรรกะเกมของฉัน ตอนนี้ฉันพยายามทำเกมสำหรับ Android แต่ทฤษฎีการเขียนโปรแกรมเกมเกี่ยวกับการแยกสิ่งเหล่านี้ยังทำให้ฉันสับสน ฉันมาจากพื้นหลังของการพัฒนาเว็บแอปพลิเคชันที่ไม่ใช่เกมดังนั้นฉันจึงมีประสบการณ์ใน MVC มากกว่าเช่นรูปแบบและติดอยู่ในความคิดนั้นเมื่อฉันเข้าใกล้การเขียนโปรแกรมเกม ฉันต้องการทำสิ่งต่าง ๆ เช่นนามธรรมเกมของฉันโดยมีตัวอย่างเช่นคลาสเกมกระดานที่มีข้อมูลสำหรับตารางไทล์ของกระเบื้องที่มีอินสแตนซ์ของคลาสไทล์ที่แต่ละรายการมีคุณสมบัติ ฉันสามารถให้ลูปการวาดของฉันเข้าถึงสิ่งนี้และให้มันวาดกระดานเกมตามคุณสมบัติของไทล์แต่ละอันบนกระดานเกม แต่ฉันไม่เข้าใจว่าภาพเคลื่อนไหวนั้นควรตรงไปตรงไหน เท่าที่ฉันจะบอกได้อนิเมชั่นจะอยู่ระหว่างตรรกะของเกมที่เป็นนามธรรม (โมเดล) และลูปการวาด (ดู) ด้วยความคิด MVC ของฉันมันน่าผิดหวังที่พยายามตัดสินใจว่าควรจะทำอนิเมชั่นที่ไหน มันจะมีข้อมูลค่อนข้างน้อยที่เกี่ยวข้องกับมันเหมือนเป็นแบบจำลอง แต่ดูเหมือนว่าจะต้องมีการเชื่อมโยงอย่างใกล้ชิดกับลูปการวาดเพื่อให้มีสิ่งต่าง ๆ เช่นภาพเคลื่อนไหวอิสระของเฟรม ฉันจะแยกความคิดนี้ออกและเริ่มคิดเกี่ยวกับรูปแบบที่เหมาะสมกับเกมได้อย่างไร

3
นี่เป็นรูปแบบอะไรและฉันควรทำอย่างไร
ฉันสร้างเกมด้วย as3 โดยใช้แฟลชพัฒนาและแฟลช cs5 ทุกอย่างเป็นวัตถุ ฉันสงสัยว่าฉันควรมีคลาส "เกตเวย์" หนึ่งคลาสที่มีการอ้างอิงคุณสมบัติไปยังอินสแตนซ์ทั้งหมดของคลาสอื่น ๆ และฉันเพิ่งผ่านคลาสเกตเวย์นี้ไปยังวัตถุใหม่ดังนั้นพวกเขาจึงสามารถเข้าถึงทุกคลาสได้ ชอบมาก var block:Block = new Block(gateway); //In the block class: this.gateway.player.setHealth(100); //Or: this.gateway.input.lock(); นี่เป็นรูปแบบซิงเกิลหรืออะไรซักอย่าง? ฉันควรทำสิ่งนี้หรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.