Các khái niệm liên quan dữ liệu trong game 2.. Các khái niệm liên quan đến Render và model của game... Các khái niệm liên quan tới dữ liệu trong gameluongnv89@gmail.com Texture: - Một vù
Trang 1Lập trình Game Android sử dụng Andengine
AGV Tearm
Trang 2• Các khái niệm đồ họa trong Game 2D
Trang 31 Các khái niệm đồ họa trong game 2D
luongnv89@gmail.com
3
1 Các khái niệm liên quan dữ liệu trong game
2 Các khái niệm liên quan đến Render và model của game
Trang 4Các khái niệm liên quan tới dữ liệu trong game
luongnv89@gmail.com
Texture:
- Một vùng nhớ đặc biệt, được sử dụng để lưu trữ các
ảnh bitmap – cái mà hệ thống render sẽ vẽ lên màn hình
- Được hỗ trợ trực tiếp trong các thư viện đồ họa như
OpenGL, DirectX
- Tính chất đặc biệt: Kích thước chiều cao và rộng có
dạng 2^x
Trang 5Các khái niệm liên quan tới dữ liệu trong game
luongnv89@gmail.com
5
TextureRegion:
- Bản chất giống như 1 con trỏ, trỏ tới texture
- Thông qua TextureRegion người dùng có thể truy xuất
toàn bộ hoặc từng phần của texture
- TextureRegion được hỗ trợ trong các game engine
Trang 6Các khái niệm liên quan tới render
Trang 7Các khái niệm liên quan tới render
luongnv89@gmail.com
7
Scene (sân khấu)
- Là một thành phần được hiển thị trên thiết bị hiển thị
- Giống như một màn hình ảo, cho phép vẽ các đối
tượng đồ họa lên đó
Layer (lớp)
- Các lớp (tầng) của Scene nhằm phân định thứ tự hiển
thị của các đối tượng đồ họa vẽ lên Scene
Trang 8Các khái niệm liên quan tới render
Trang 9Các Mô hình của Game engine
luongnv89@gmail.com
9
Mô hình node
Trang 10Các Mô hình của Game engine
• Quá trình vẽ và Update tiến hành theo phép duyệt cây
theo chiều sâu
- Ưu điểm:
• Do các nút quan hệ logic-> gần gũi thực tế, tránh nhầm
lẫn
Trang 11Các Mô hình của Game engine
- Tất cả các thành phần cần vẽ sẽ được đẩy vào Batch
- Quá trình vẽ lần lượt với các thành phần trong Batch
Trang 12Các Mô hình của Game engine
luongnv89@gmail.com
Mô hình Batch(lô)
- Ưu điểm: Không phải duyệt cây -> hiệu năng cao
- Nhược điểm: Các thành phần không quan hệ logic, nên để
mô phỏng các quan hệ giữa các thành phần, người dùng cần phải tự tính toán, dễ nhầm lẫn
- Engine: Libgdx, XNA
Trang 131 Andengine
luongnv89@gmail.com
13
Trang 14Giới thiệu Andengine
luongnv89@gmail.com
- AndEngine: Game engine mã nguồn mở dựa trên
openGL ES, phát triển game cho Android
- Xây dựng bởi Nicolas Glamlich - một lập trình viên
Android lâu năm
- về cơ bản là một gói các lớp(class) của java được viết
sẵn và đóng gói
- Tương thích với môi trường Eclipse
- Để sử dụng, import andengine.jar vào thư viện
Trang 15- Nhiều lớp để chọn khi tạo PhysicBox2D:
MaxStepPhysicWorld: dùng cho các máy có bộ xử lý
yếu
PhysicWorld: Lớp mặc định tạp box vật lý có độ chính
xác cao
FixedStepPhysicWorld: khả năng xử lý trung bình
Nhược điểm: Performance không cao
Trang 16Vòng đời của Game trong Andengine
OnLoadEngine OnLoadResources onLoadScene
• Được gọi khi Engine
được khởi tạo
• Khởi tạo Engine
• Khởi tạo Camera
• Được gọi khi game lấy tài nguyên
• Khởi tạo Texture
• Khởi tạo Region
• Âm thanh, font chữ…
• Được gọi khi Engine tạo các màn chơi
• Khởi tạo màn chơi
• Khởi tạo và vẽ các Nhân vật …
OnLoadComplete
Trang 17- MOD-Player: cho phép chơi các file video định dạng -
.MOD dành cho trailer và introduce của game.
- Multiplayer: cho phép chơi multiplayer
- Multitouch: hỗ trợ cảm ứng đa điểm
- Physic Box2D: hỗ trợ mô phỏng vật lý thông qua engine
box2D (công nghệ được sử dụng trong game)
Trang 18Box2D Physic Engine
- Là một free 2D game engine và open source
- Điểm mạnh của nó là có khả năng mô phỏng vật lý và
có hiệu năng khá cao
- Nó đã được porting sang nhiều ngôn ngữ (C#, Delphi, Java, Python…) và được tích hợp vào nhiều game
engine dưới dạng các thư viện mở rộng
Trang 19Các khái niệm cơ bản trong Box2D
• PhysicWorld: đây là thế giới vật lý cho cả game nó thiết đặt
một gia tốc trọng trường cho game.
• Body: đây là thành phần về mô phỏng các vật thể chịu các
hiệu ứng vật lý.
• PhysicConnector: đây là thành phần kết nối giữa hệ thống
render và hệ thống vật lý Thực chất các Sprite trong
Andengine và Physic là hoàn toàn độc lập Connector giúp đảm bảo việc khi Body rơi trong PhysicWorld thì Sprite cũng
sẽ rơi theo quỹ đạo giống như Body
• FixtureDef: đây là thành phần lưu trữ những thông số vật lý
như là Khối lượng riêng, Hệ số đàn hồi và Hệ số ma sát
Trang 20Andengine hỗ trợ lập trình game Android
• Cơ bản: Vẽ đường thẳng, hình chữ nhật, thao tác với sprite
• Các xử lý về hoạt họa: EntityModifiers, PathModifiers,
EaseFunctions
• Cảm ứng chạm: đa điểm, đơn điểm, hỗ trợ bàn phím analog ảo
• Hỗ trợ nhiều người chơi
• Các xử lý vật lý: Bắt va chạm,…
• Các xử lý về text trong game: tickertext, customfont,…
• Các xử lý về âm thanh: sound, music, MOD
Trang 2121
THANKS