ผลต่างระหว่างรุ่นของ "Oop lab/การลบ entity"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(หน้าที่ถูกสร้างด้วย ': ''หน้านี้เป็นส่วนหนึ่งของ oop lab.'' จากแลบ oop lab/bullets เร...')
 
แถว 1: แถว 1:
 
: ''หน้านี้เป็นส่วนหนึ่งของ [[oop lab]].''
 
: ''หน้านี้เป็นส่วนหนึ่งของ [[oop lab]].''
  
จากแลบ [[oop lab/bullets]] เราได้เว้นส่วนที่ลบ bullet ที่ออกนอกหน้าจอไป
+
จากแลบ [[oop lab/bullets]] เราได้เว้นส่วนที่ลบ bullet ที่ออกนอกหน้าจอไป ในส่วนนี้เราจะพัฒนาส่วนดังกล่าว
 +
 
 +
== Entities ==
 +
เราเก็บ entities ใน LinkedList เพื่อที่จะได้ลบ entity ที่ไม่ต้องการออกจากโครงสร้างได้รวดเร็ว  (สำหรับส่วนนี้อ่านเพิ่มเติมที่ [[oop lab/java collections|Java collections]])
 +
 
 +
ในการเขียนโปรแกรมแบบ oop งานหลักของนักพัฒนาคือการเลือกว่ากิจกรรมใดจะดำเนินการที่ใด และ object ต่าง ๆ จะร่วมมือกันดำเนินการกิจกรรมที่ต้องการได้อย่างไร  สำหรับการลบ entity ออกจาก linked list entities นี้ เรามีทางเลือกในการดำเนินการหลายแบบ
 +
 
 +
ลองพิจารณาเมท็อดที่เกี่ยวข้องกับ entities ในคลาส BulletGame ก่อน
 +
 
 +
* public void render(GameContainer container, Graphics g)
 +
* public void update(GameContainer container, int delta)
 +
 
 +
ในที่นี้ งานของเราน่าจะเกี่ยวกับการปรับตำแหน่งของ entity (ส่วน update) ดังนั้นเราจะจัดการเกี่ยวกับการลบ entity ในเมท็อด update  ซึ่งเมท็อดเดิมเป็นดังนี้:
 +
 
 +
<syntaxhighlight lang="java">
 +
  @Override
 +
  public void update(GameContainer container, int delta) throws SlickException {
 +
    for(Entity entity : entities) {
 +
      entity.update(delta);
 +
    }
 +
  }
 +
</syntaxhighlight>

รุ่นแก้ไขเมื่อ 12:44, 20 กันยายน 2557

หน้านี้เป็นส่วนหนึ่งของ oop lab.

จากแลบ oop lab/bullets เราได้เว้นส่วนที่ลบ bullet ที่ออกนอกหน้าจอไป ในส่วนนี้เราจะพัฒนาส่วนดังกล่าว

Entities

เราเก็บ entities ใน LinkedList เพื่อที่จะได้ลบ entity ที่ไม่ต้องการออกจากโครงสร้างได้รวดเร็ว (สำหรับส่วนนี้อ่านเพิ่มเติมที่ Java collections)

ในการเขียนโปรแกรมแบบ oop งานหลักของนักพัฒนาคือการเลือกว่ากิจกรรมใดจะดำเนินการที่ใด และ object ต่าง ๆ จะร่วมมือกันดำเนินการกิจกรรมที่ต้องการได้อย่างไร สำหรับการลบ entity ออกจาก linked list entities นี้ เรามีทางเลือกในการดำเนินการหลายแบบ

ลองพิจารณาเมท็อดที่เกี่ยวข้องกับ entities ในคลาส BulletGame ก่อน

  • public void render(GameContainer container, Graphics g)
  • public void update(GameContainer container, int delta)

ในที่นี้ งานของเราน่าจะเกี่ยวกับการปรับตำแหน่งของ entity (ส่วน update) ดังนั้นเราจะจัดการเกี่ยวกับการลบ entity ในเมท็อด update ซึ่งเมท็อดเดิมเป็นดังนี้:

  @Override
  public void update(GameContainer container, int delta) throws SlickException {
    for(Entity entity : entities) {
      entity.update(delta);
    }
  }