ผลต่างระหว่างรุ่นของ "Oop lab/flappy dot"
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 42: | แถว 42: | ||
สร้างรูป dot.png สำหรับแสดงตัวผู้เล่น ให้สร้างให้มีขนาด 40 x 40 จุด จากนั้นให้ copy ไฟล์ไปไว้ที่ <tt>res/dot.png</tt> | สร้างรูป dot.png สำหรับแสดงตัวผู้เล่น ให้สร้างให้มีขนาด 40 x 40 จุด จากนั้นให้ copy ไฟล์ไปไว้ที่ <tt>res/dot.png</tt> | ||
− | เราจะสร้างคลาส Dot สำหรับจัดการแสดงผลตัวผู้เล่น และคำนวณการเคลื่อนที่ รวมถึงจัดการอื่น ๆ | + | เราจะสร้างคลาส Dot สำหรับจัดการแสดงผลตัวผู้เล่น และคำนวณการเคลื่อนที่ รวมถึงจัดการอื่น ๆ คลาสดังกล่าวจะถูกเรียกใช้โดย FlappyDotGame ดังนี้: |
+ | |||
+ | <syntaxhighlight lang="java"> | ||
+ | @Override | ||
+ | public void init(GameContainer container) throws SlickException { | ||
+ | dot = new Dot(320, 240); | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public void render(GameContainer container, Graphics g) throws SlickException { | ||
+ | dot.render(); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | อย่าลืมเพิ่มบรรทัดที่ประกาส field ของ Dot ด้วย | ||
+ | |||
+ | private Dot dot; | ||
+ | |||
+ | ด้านล่างแสดงคลาส Dot | ||
+ | |||
+ | <syntaxhighlight lang="java"> | ||
+ | public class Dot { | ||
+ | |||
+ | private float x; | ||
+ | private float y; | ||
+ | private Image image; | ||
+ | |||
+ | public Dot(float x, float y) throws SlickException { | ||
+ | this.x = x; | ||
+ | this.y = y; | ||
+ | image = new Image("res/dot.png"); | ||
+ | } | ||
+ | |||
+ | public void render() { | ||
+ | image.draw(x - 20, 480 - (y + 20)); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
=== จัดการกับค่าคงที่ (magic number) === | === จัดการกับค่าคงที่ (magic number) === |
รุ่นแก้ไขเมื่อ 22:17, 31 สิงหาคม 2557
- หน้านี้เป็นส่วนหนึ่งของ oop lab
- อ่านเวอร์ชันที่เป็น JavaScript บน Cocos2d-html5
เนื้อหา
การแยกงานเป็นงานย่อย
แสดง Dot
เริ่มโปรเจ็คและหน้าจอว่าง
สร้าง project ชื่อ flappydot จากนั้นสร้าง Git repository สำหรับ project นี้ด้วย
สร้าง class FlappyDotGame ซึ่งจะเป็นคลาสหลักของเกมเรา จากนั้นให้เพิ่มเมท็อด render, init, update และสร้างเมท็อด main ที่เริ่มเกม (ดูจากเอกสารก่อน)
public class FlappyDotGame extends BasicGame {
public FlappyDotGame(String title) {
super(title);
}
// ... เพิ่มเอง
}
เมื่อทดลองรันและเห็นหน้าจอว่าง ให้ commit งานลงใน Git ต่อไปเพื่อเป็นการเตือนให้คุณ commit งาน เราจะใส่ย่อหน้าดังด้านล่างไว้เตือน
แสดงสี background
เกมนี้เราจะไม่ใช้ background เป็นสีดำแล้ว เราจะแก้สี background ได้ โดยกำหนด background ลงใน graphics ของเกม เพิ่มคำสั่งเหล่านี้ในเมท็อด init
@Override
public void init(GameContainer container) throws SlickException {
Color background = new Color(128, 128, 128);
container.getGraphics().setBackground(background);
}
ทดลองรันเพื่อดูว่า background แสดงสีเทาหรือไม่? ปรับค่าสีตามใจชอบ
แสดง Dot
สร้างรูป dot.png สำหรับแสดงตัวผู้เล่น ให้สร้างให้มีขนาด 40 x 40 จุด จากนั้นให้ copy ไฟล์ไปไว้ที่ res/dot.png
เราจะสร้างคลาส Dot สำหรับจัดการแสดงผลตัวผู้เล่น และคำนวณการเคลื่อนที่ รวมถึงจัดการอื่น ๆ คลาสดังกล่าวจะถูกเรียกใช้โดย FlappyDotGame ดังนี้:
@Override
public void init(GameContainer container) throws SlickException {
dot = new Dot(320, 240);
}
@Override
public void render(GameContainer container, Graphics g) throws SlickException {
dot.render();
}
อย่าลืมเพิ่มบรรทัดที่ประกาส field ของ Dot ด้วย
private Dot dot;
ด้านล่างแสดงคลาส Dot
public class Dot {
private float x;
private float y;
private Image image;
public Dot(float x, float y) throws SlickException {
this.x = x;
this.y = y;
image = new Image("res/dot.png");
}
public void render() {
image.draw(x - 20, 480 - (y + 20));
}
}