ผลต่างระหว่างรุ่นของ "Oop lab/การลบ entity"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย ': ''หน้านี้เป็นส่วนหนึ่งของ oop lab.'' จากแลบ oop lab/bullets เร...') |
Jittat (คุย | มีส่วนร่วม) |
||
| แถว 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);
}
}