ผลต่างระหว่างรุ่นของ "Oop lab/gdx examples"
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 60: | แถว 60: | ||
== Super Jumper == | == Super Jumper == | ||
+ | |||
+ | * ลิงก์: [https://github.com/libgdx/libgdx-demo-superjumper github] | ||
=== ทดลองรัน === | === ทดลองรัน === | ||
+ | * clone project | ||
+ | * แก้ gradle config | ||
+ | * แก้ Run configurations... | ||
+ | |||
=== โครงสร้างเกม === | === โครงสร้างเกม === | ||
+ | |||
+ | เกมนี้มีการสร้างคลาสที่หลากหลายขึ้น ให้จับคู่และลองไล่ดูว่าเกมประกอบไปด้วยวัตถุอะไรบ้างและทำงานประสานกันอย่างไร |
รุ่นแก้ไขเมื่อ 02:47, 16 กันยายน 2559
- หน้านี้เป็นส่วนหนึ่งของ OOP lab
เราจะดูโครงสร้างของเกมที่เขียนโดยใช้ไลบรารี GDX โดยพิจารณาจากสอง project
เนื้อหา
The plane
- นี่เป็นเกม clone จาก Flappy bird
- ลิงก์: github
ทดลองรัน
แก้ gradle config
ให้ clone project มาในเครื่อง เลือกไดเร็กทอรีที่เหมาะสม แล้วสั่ง
git clone https://github.com/badlogic/theplanethatcouldntflygood.git
เกมดังกล่าวถูกพัฒนาเพื่อให้ทำงานได้บน Android, iOS และบนเว็บ ในการคอมไพล์ (build) ถ้าจะสมบูรณ์ต้องมี Android SDK แต่เราจะสนใจเฉพาะ Desktop เท่านั้น ดังนั้นจะต้องไปแก้ config บางส่วนก่อน เนื่องจากเกมบน GDX จะ build ด้วย Gradle เราจะไปแก้ config ของ gradle ดังนี้
- settings.gradle ลบ project อื่น ๆ ออก โดยตัดให้เหลือแค่ 'desktop' กับ 'core'
include 'desktop', 'core'
- build.gradle ไล่ลบส่วนที่เขียนว่า project(":android") { ... }, project(":ios") {... }, และ project(":html") { ... }
import เข้า eclipse
เลือก Import > Gradle > Gradle Project
จากนั้นเลือก directory ที่เรา clone มา กดดูการนำเข้าและ build จนเสร็จ
ตั้งค่า config ตอนรัน
ถ้าเราสั่งรันเลย จะมีปัญหาว่าระบบจะหา asset ไม่เจอ ต้องไปตั้ง working directory เป็น android/assets เสียก่อน โดยดำเนินการดังนี้
เลือก Run > Run Configurations... > Java Application > เลือก DesktopLauncher ที่ต้องการ > เลือก tab Arguments > ส่วน Working directory
แล้วเลือก File Systems... จากนั้นเลือกไปที่ theplanethatcouldntflygood/android/assets
จัดเก็บและสั่งรัน
โครงสร้างเกม
จะพบว่าเรามี project สองอัน คือ theplanethatcouldntflygood-core กับ theplanethatcouldntflygood-desktop โค้ดหลักจะอยู่ใน core
คลาส
- มีคลาสหลักแค่คลาสเดียวคือ PlaneGame เป็น subclass ของ ApplicationAdapter ในนั้นมีคลาส Rock
- เมท็อดสำคัญ
- create
- render
- updateWorld
- drawWorld
- วัตถุประเภทต่าง ๆ จากไลบรารี
- Rectangle
- Vector2
- Texture, TextureRegion
- SpriteBatch, Animation
- OrthographicCamera
- BitmapFont
- Music, Sound
Super Jumper
- ลิงก์: github
ทดลองรัน
- clone project
- แก้ gradle config
- แก้ Run configurations...
โครงสร้างเกม
เกมนี้มีการสร้างคลาสที่หลากหลายขึ้น ให้จับคู่และลองไล่ดูว่าเกมประกอบไปด้วยวัตถุอะไรบ้างและทำงานประสานกันอย่างไร