Lập trình game bằng framework libGDX

20 799 3
Lập trình game bằng framework libGDX

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP MÔN ĐỒ HOẠ VÀ HIỆN THỰC ẢO ĐỀ TÀI LẬP TRÌNH GAME BẰNG FRAMEWORK libGDX Giảng viên hướng dẫn: ThS Lê Tấn Hùng Nhóm sinh viên thực hiện: Nguyễn Văn Sơn - MSSV 20143863 Trương Quang Toàn - MSSV 20134028 Lớp KSTN CNTT K59 Hà Nội ngày 15 tháng 05 năm 2018 | 20 MỤC LỤC I GIỚI THIỆU VỀ libGDX Lịch sử phát triển libGDX Các đặc điểm libGDX Kiến trúc libGDX Các game tiếng viết libGDX II CÁC KHÁI NIỆM CƠ BẢN TRONG libGDX Vẽ đồ họa lên hình Hệ tọa độ libGDX 11 2.1 Hệ tọa độ tiếp xúc 11 2.2 Hệ tọa độ hình ảnh 12 2.3 Hệ tọa độ hiển thị chuẩn hóa 12 2.4 Hệ tọa độ UV 13 2.5 Hệ tọa độ giới thực 14 Camera Viewport 14 Box 2D 16 III XÂY DỰNG TRÒ CHƠI FUNNY BUNNY BẰNG libGDX 17 Ý tưởng trò chơi 17 Thể loại 17 Đối tượng hướng đến trò chơi 17 Tóm tắt diến biến trò chơi 17 Thế giới vật lý trò chơi 18 Đồ họa trò chơi 18 Logic trò chơi 20 IV KẾT LUẬN 20 | 20 LẬP TRÌNH GAME BẰNG FRAMEWORK libGDX I GIỚI THIỆU VỀ libGDX libGDX framework phát triển game miễn phí có mã nguồn mở, viết chủ yếu ngôn ngữ Java số thành phần C C++ để tăng hiệu libGDX cho phép lập trình viên phát triển game nhiều tảng Windows, Linux, Mac OS, Android, iOS, BlackBerry, tảng web Lịch sử phát triển libGDX Năm 2009, điện thoại Android mắt thị trường Mario Zechner, lập trình viên với niềm đam mê làm game, định làm game cho loại điện thoại mắt Zechner bắt đầu việc tìm hiểu Android SDK (1.x) OpenGL ES, sau anh viết game framework AFX (Android Effects) để phục vụ cho việc làm game Tuy nhiên, việc cài đặt phần mềm Android lại thách thức phiên Android ban đầu, Zechner định chỉnh sửa AFX để game viết có thẻ chạy tảng desktop Đó khởi đầu libGDX mà ta biết ngày Bước ngoặt thứ hai libGDX vào tháng năm 2010, Zechner đưa AFX trở thành mã nguồn mở Google Code với giấy phép GNU Lesser General Public License (LGPL) Quyêt định đưa phần Google tặng anh Nexus One đóng góp tảng Android Tuy nhiên, lúc Zechner nói AFX viết để làm game cho desktop mà đối tượng game tảng Android Vào tháng 4, dự án có người đóng góp Đến tháng năm 2010, libGDX có bước phát triển lớn tích hợp thêm Box2D JNI wrapper Từ đó, nhà phát triển game libGDX làm game với hiệu ứng vật lý giới thật Việc tích hợp lơi cuối nhiều người sử dụng đóng góp cho dự án mã nguồn mở này, nhờ dự án phát triển nhanh ổn định libGDX tiếp tục có bước phát triển vững năm 2011.Cuối tháng năm 2011, phiên 0.9 phát hành với nhiều tính nhận đón nhận cộng đồng Các game viết libGDX bắt đầu trở thành tượng cửa hàng Android Nổi bật game Appratus, bán 500 nghìn bản, | 20 số đáng mơ ước game trả phí di động Cũng tháng 2, Zechner xuất sách đầu tiền libGDX (700 trang!) Tháng năm đó, phiên libGDX 0.9.2 phát hành libGDX tiếp tục phát triển với tốc độ nhanh chóng Zechner viết gdx-jnigen nhằm giúp cho việc mở rộng framework dễ dàng Cột mốc libGDX đến Zechner bắt đầu thấy hứng thú với PlayN, framework phát triển game đa tảng phát hành Google PlayN sử dụng để làm game cho máy tính, điện thoại Android tảng web Điểm thú vị PlayN sử dụng để làm game web mà khơng cần dùng đến applet Thay vào đó, code Java biên dịch thành Javascript GWT Zechner tin anh tạo điều tương tự với libGDX Tuy nhiên, libGDX phức tạp PlayN nhiều có nhiều tính mà GWT khơng hỗ trợ, Zechner lập trình viên khác phải nhiều việc để hoàn thành chức tương tự PlayN cho libGDX Sau này, Zechner thừa nhận phát triển tảng web cho libGDX phần thích thú nhất, đáng sợ dự án Tháng năm 2012, phiên 0.9.3 phát hành Cũng vào khoảng thời gian đó, báo cáo tiết lộ 1.24% số lượng ứng dụng Android viết libGDX libGDX framework làm game phổ biến thời điểm đó, vượt lên Unity Tháng năm 2012, thay đổi lớn diễn Nhóm lập trình viên nòng cốt libGDX định mở rộng framework để hỗ trợ iOS Tháng 8, dự án chuyển đến Github hỗ trợ Maven Có thời điểm, libGDX ứng dụng Java lớn thứ Github, có 1300 pull requests 200 người đóng góp Cuối năm 2012, game xây dựng libGDX phát hành iOS store, phiên 0.9.7 phát hành Thậm chí, Google bắt đầu sử dụng libGDX Từ tháng đến tháng năm 2013, phần xử lý 3D viết lại tích hợp vào thư viện Vào tháng 6, website thức libGDX viết lại để người dùng đưa game mà họ viết libGDX lên Cho đến tháng năm 2016, 3000 games đưa lên trang Ngày 20 tháng năm 2014, sau năm phát triển, phiên 1.0 libGDX phát hành Các mốc phát triển libGDX: | 20 Version Release date 1.0 20 April 2014[1] 1.1 23 May 2014[37] 1.2 22 June 2014[38] 1.3 August 2014[39] 1.4 10 October 2014[40] 1.5 December 2014[41] 1.6 May 2015[42] 1.7 21 September 2015[43] 1.8 January 2016[44] 1.9 24 January 2016[45] Các đặc điểm libGDX ❖ Mã nguồn mở libGDX framework làm game mã nguồn mở đăng kí giấy phép Apache 2.0 Giấy phép cho phép người dùng chỉnh sửa phân phối game viết libGDX miễn phí miễn người dùng thêm giấy phép vào dự án họ Người | 20 dùng sử dụng libGDX cho dự án thương mại mà khơng cần phải trả phí hay đóng góp cho người phát triển libGDX ❖ Đa tảng Đặc điểm quan trọng libGDX tính đa tảng Mục tiêu libGDX, Mario Zechner phát biểu là: “hoàn thành lời hứa Java “viêt lần, chạy khắp nơi”, đặc biệt cho trình phát triển game” Người dùng cần viết phần trò chơi lần, với thao tác đưa trò chơi chạy tảng iOS, Android, HTML Windos, Linux, Mac OS ❖ Tính mở rộng Các lập trình viên sử dụng libGDX thêm nhiều phần mở rộng cài đặt mặc định Những mở rộng gồm xử lý vật lý 2D, AI… Ví dụ lập trình viên muốn viết game 3D có sử dụng hiệu ứng vật lý, họ cần thêm thư viện Bullet vào chương trình mà không cần phải xây dựng lại từ đầu Các thư viện mở rộng đáng ý libGDX bao gồm: - gdxAI: hỗ trợ lập trình viên sử dụng AI với libGDX - gdx freetype: hỗ trợ font freetype - Box2D: hỗ trợ hiệu ứng vật lý game 2D - packr: cơng cụ đóng gói JRE với game giúp cho người dùng cài đặt JRE Kiến trúc libGDX libGDX cho phép lập trình viên viết, thử nghiệm gỡ lỗi trò chơi máy tính PC sử dụng code để tạo game Android Lập trình viên cảm thấy khơng rào cản tảng máy tình Window, Mac OS, Linux với thiết bị di động Để làm điều đó, thư viện sử dụng thư viện khác để xử lý chuyên biệt tảng Bằng việc sử dụng thư viện chun biệt này, lập trình viên khơng cần phải viết code cho tảng khác ngoại trừ phần code khởi động game Các thư viện bao gồm: - Lightweight Java Game Library sử dụng để xây dựng game máy tính PC - Google Web Toolkit sử dụng để biên dịch mã nguồn Java thành Javascript Mã nguồn sau biên dịch chạy trình duyệt | 20 - Trên tảng Android, libGDX sử dụng mã nguồn Java biên dịch cho Android Android SDK - Trên tảng iOS, phiên chỉnh sửa RoboVM sử dụng để biên dịch mã nguồn Java thành lệnh iOS Các game tiếng viết libGDX a) Paperama Đây trò chơi xếp giấy Origami tiếng cửa hàng ứng dụng Android Đã có 10 triệu lượt tải về, triệu lượt đánh giá với điểm trung bình 4.4 Trò chơi yêu cầu bạn phải ghép giấy theo hình cho trước với độ khó tăng dần Với hiệu ứng 3D hấp dẫn 70 level khác nhau, chắn trò chơi u thích người u thích nghệ thuật xếp giấy Origami nói riêng người yêu đẹp nói chung Một số hình ảnh trò chơi Figure 1: Logo trò chơi paperama Figure 2: Một level trò chơi paperama | 20 b) Tap Tap Dash Trò chơi có cách chơi đơn giản Bạn phải chạm vào hình để thay đổi hướng nhân vật game đến lối rẽ Tuy cách chơi đơn giản trò chơi có tính gây nghiện cao có đến 50 triệu lượt tải Android store Với 1000 chơi, người chơi thấy khơng thể rời mắt khỏi hình chơi Figure 3: Một số hình ảnh trò chơi Tap Tap Dash II CÁC KHÁI NIỆM CƠ BẢN TRONG libGDX Vẽ đồ họa lên hình Một hình ảnh sau giải mã từ định dạng ban đầu (ví dụ PNG) đưa vào GPU gọi texture Mỗi texture có hình dạng hình học khác nhau, thường hình chữ nhật Để vẽ texture hình, ta phải tìm đỉnh texture vẽ texture dựa đỉnh xác định Vị trí kích thước texture hình xác định dạng hình học cấu hình khung nhìn OpenGL Rất nhiều trò chơi 2D cấu hình khung nhìn có kích thước kích thước hình Trong thực tế, việc vẽ texture khu vực khác texture nhiều lần phổ biến trường hợp này, lần vẽ texture khu vực texture, ta phải tính tốn lại từ đầu hạn chế đến hiệu trò chơi Để giải vấn đề này, ta sử dụng SpriteBatch Với texture, SpriteBatch tính tốn trước tất vùng cần vẽ texture gửi | 20 giá trị cho GPU xử lý có texture đến yêu cầu vẽ hình Do thao tác gửi tốn kém, giá trị SpriteBatch gửi có texture đến, libGDX, hình ảnh nhân vật đối tượng trò chơi thường vẽ thành vùng nhỏ ảnh lớn Ví dụ ảnh chứa đối tượng trò chơi Super Jumper Figure 4: Ảnh chứa đối tượng game Các đối tượng vùng ảnh để tiết kiệm lực tính tốn Để sử dụng SpriteBatch, ta phải gọi thủ tục begin, sau vẽ hình ảnh hình Khi kết thúc trình vẽ, ta gọi thủ tục end | 20 Figure 5: Cách sử dụng SpriteBatch libGDX Để thao tác với texture, libGDX ta sử dụng lớp Texture Figure 6: Sử dụng Texture libGDX Trong ví dụ hình 6, ta khai báo đối tượng texture tương ứng với ảnh “image.png” thư mục assets, sau sử dụng đối tượng SpriteBatch để vẽ texture hình Ngồi lớp Texture, libGDX hỗ trợ lớp TextureRegion để thao tác với vùng texture Sau ta dùng SpriteBatch để vẽ đối tượng TextureRegion Figure 7: Ví dụ sử dụng TextureRegion libGDX Để làm việc với vùng texture, libGDX cung cấp lớp Sprite Lớp không lưu thông tin vùng texture TextureRegion, lưu thơng tin khác vị trí, màu sắc… vùng hiển thị hình Figure 8: Ví dụ lớp Sprite 10 | 20 Trong ví dụ trên, lớp Sprite cắt vùng hình chữ nhật có vị trí (20, 20) texture với chiều rộng chiều dài 50, sau quay 45 độ hiển thị hình vị trí (10,10) Hệ tọa độ libGDX Khi lập trình libGDX hệ thống dựa OpenGL, lập trình viên cần phải làm việc với nhiều hệ tọa độ khác Nguyên nhân việc OpenGL cố gắng đưa hệ tọa độ không phụ thuộc vào độ phân giải thiết bị riêng biệt Hệ tọa độ áp dụng với loại thiết bị phụ thuộc vào logic game Phần giới thiệu hệ tọa độ phát triển game libGDX 2.1 Hệ tọa độ tiếp xúc - Đơn vị: pixels - Hướng trục y: hướng xuống - Tọa độ: số nguyên - Miền giá trị: (0,0), góc bên trái, đến (Gdx.graphics.getWidth() -1, Gdx.graphics.getHeight()-1) , góc bên phải - Sử dụng: xác định điểm tiếp xúc thiết bị di động, điểm click chuột máy tính - Giá trị phụ thuộc vào loại thiết bị Figure 9: Hệ tọa độ tiếp xúc Mỗi điểm hệ tọa độ số mảng hai chiều, biểu diễn điểm hình Do đó, giá trị biểu diễn tọa độ số nguyên Khi muốn biết vị trí click 11 | 20 chuột vị trí chạm hình di động, lập trình phải sử dụng hệ tọa độ Libgdx cung cấp phương thức để chuyển đổi giá trị hệ tọa độ thành giá trị hệ tọa độ khác dễ sử dụng Ví dụ camera.unproject viewport.unproject 2.2 Hệ tọa độ hình ảnh - Đơn vị: pixels - Hướng trục y: hướng lên - Tọa độ: số nguyên - Miền giá trị: (0, 0), góc bên trái, đến (Gdx.graphics.getWidth()-1, Gdx.graphics.getHeight()-1), góc bên phải - Sử dụng: viewport, scissors, pixmap - Giá trị phụ thuộc vào loại hình, vào hình ảnh hiển thị Hệ tọa độ thường sử dụng để xác định khu vực hình mà hình ảnh vẽ Tuy nhiên thực tế hệ tọa độ sử dụng 2.3 Hệ tọa độ hiển thị chuẩn hóa - Đơn vị: - Hướng trục y: hướng lên - Tọa độ: số thực - Miền giá trị: (-1, -1) góc bên trái đến (+1, +1) góc bên phải - Sử dụng: shader - Hệ tọa độ không phụ thuộc vào thiết bị 12 | 20 Figure 10: Hệ tọa độ hiển thị chuẩn hóa Hai hệ tọa độ giới thiệu có nhược điểm lớn chúng phụ thuộc vào thiết bị Để giải vấn đề đó, OpenGL cho phép lập trình viên sử dụng hệ tọa độ độc lập với thiết bị Hệ tọa độ tự chuyển đổi sang hệ tọa độ hình hiển thị hình ảnh hình Giá trị vị trí hệ tọa độ nằm tỏng khoảng từ [-1, 1] đến [+1, +1] với gốc tọa độ (0, 0) nằm hình Hệ tọa độ sử dụng thực tế Chú ý kích thước chiều cao chiều rộng hình thiết bị khơng giống nhau, miền giá trị theo chiều cao chiều rộng hệ tọa độ ln nằm khoảng [-1, +1], lập trình viên phải xử lý tình ứng dụng 2.4 Hệ tọa độ UV - Đơn vị: - Hướng trục y: hướng lên - Tọa độ: số thực - Miền giá trị: (0, 0) góc bên trái đến (1, 1) góc bên phải - Sử dụng: shader, mesh, texture regions, sprite - Khơng phụ thuộc vào hình Điểm khác biệt hệ tọa độ UV hệ tọa độ hiển thị chuẩn hóa hệ tọa độ UV sử dụng miền giá trị từ [0, 0] đến [1, 1] 13 | 20 Figure 11: Hệ tọa độ UV 2.5 Hệ tọa độ giới thực - Đơn vị: tùy thuộc vào ứng dụng, thông thường chọn theo hệ SI, ví dụ mét - Hướng trục y: tùy thuộc vào ứng dụng, thông thường hướng lên - Tọa độ: số thực - Miền giá trị: tùy thuộc vào ứng dụng - Sử dụng: sử dụng logic game - Phụ thuộc vào ứng dụng, thiết bị Thông thường, logic game ta sử dụng hệ tọa độ phù hợp với logic game Hệ tọa độ không phụ thuộc vào thiết bị kích thước hình ảnh Đơn vị đo thường sử dụng hệ tọa độ mét (hoặc kilomet) Camera Viewport Hiểu cách đơn giản, camera giống mắt người chơi giới game, viewport cách hiển thị camera quan sát hình Ta hiểu camera viewport game giống camera tivi giới thực Camera lưu lại hình ảnh, việc hiển thị hình ảnh việc tivi Trong libGDX có hai loại camera PerspectiveCamera OrthographicCamera Khi làm game 2D, 99,9% khả lập trình biên sử dụng OrthographicCamera, 14 | 20 làm game 3D, phần lớn lập trình viên sử dụng PerspectiveCamera Sau ta nói điểm khác biệt hai loại camera PerspectiveCamera cố gắng bắt chước lại mắt người giới thực Tức vật thể xa nhìn thấy nhỏ vật thể gần với camera Ngược lại, với OrthographicCamera, vật thể xa hay gần có kích thước kích thước gốc vật Khi làm game 3D, PerspectiveCamera cho tạo hiệu ứng giống giới thực Tuy nhiên, với game 2D, ta khơng quan tâm đến độ sâu, hầu hết trường hợp ta sử dụng OrthographicCamera Hai hình cho ta nhìn trực quan khác hai loại camera Figure 12: Perspective Rendered 15 | 20 Figure 13: Orthographic rendered Box 2D Box2D thành phần Libgdxframework tạo hiệu ứng vật lý không gian chiều Thế giới game xây dựng Box2D có hiệu ứng vật lý giới thật trọng lực, ma sát, va chạm, đàn hồi… Libgdx cho phép lập trình viên sử dụng Box2D game ngôn ngữ Java Khi sử dụng Box2D, đối tượng game (Sprite), ta tạo đối tượng vật lý ứng với Sprite Ta gọi đối tượng vật lý Body Libgdx không ràng buộc quan hệ Sprite Body mà lập trình viên xây dựng quan hệ Lập trình viên xây dựng chương trình cho Body chuyển động Sprite chuyển động tương ứng Thông thường xây dựng game cho Libgdx, ta sử dụng hai camera, camera cho Body camera cho Sprite Trái tim giới vật lý đối tượng thuộc lớp World Tham số khởi tạo đối tượng vector 2D có ý nghĩa trọng lực giới Các Body giới game miêu tả BodyDef FixtureDef BodyDef miêu tả kiểu đối tượng, ví dụ DynamicBody Body chuyển động FixtureDef định nghĩa hình dạng thuộc tính vật lý đối tượng, ví dụ hệ số đàn hồi… 16 | 20 III XÂY DỰNG TRÒ CHƠI FUNNY BUNNY BẰNG libGDX Ý tưởng trò chơi Funny Bunny trò chơi có cách đơn đơn giản dễ hiểu Nhân vật trò chơi thỏ Funny Funny phải vượt qua chướng ngại vật cấu tạo khối có ba màu đỏ, xanh dương, xanh lục Để Funny di chuyển khối có màu gì, người chơi phải chọn màu tương ứng với khối Các đối tượng khác trò chơi kim cương mìn Thể loại Trò chơi Funny Bunny trò chơi thuộc thể loại Platformer Đối tượng hướng đến trò chơi Funny Bunny trò chơi đơn giản phù hợp với người độ tuổi Tuy cách chơi đơn giản người chơi cảm thấy tính thử thách trò chơi tăng lên theo chơi Tóm tắt diến biến trò chơi Trong game, thỏ Funny ln tiến phía bên phải hình Có hai thao tác người chơi thực nhảy (phím Z) chuyển màu (phím X) Figure 14 Một cảnh trò chơi Funny Bunny Ba trường hợp người chơi phải bấm phím Z cần nhảy lên khối cao hơn, nhảy qua vực nhảy lên để tránh mìn Để di chuyển khối có màu đó, người chơi phải chọn màu tương ứng với khối Ví dụ Funny di chuyển khối 17 | 20 màu đỏ, người chơi phải bấm phím X để chọn khối màu đỏ Thứ tự màu xuất người chơi chọn phim X đỏ, xanh lục, xanh lam (red, green, blue) Trên đường đi, người chơi thu thập viên kim cương để tính điểm Trên thiết bị di động, người chơi chạm vào hình để nhảy vuốt hình qua trái, phải để chuyển màu Thế giới vật lý trò chơi Trong game, tượng vật lý mô giới thật với hiệu ứng trọng lực, đàn hồi, va chạm… Các hiệu ứng vật lý xây dựng Box2D Đơn vị đo sử dụng trò chơi đơn vị thuộc hệ SI Giá trị lực trò chơi m/s2 Để sử dụng Box2D, ta khởi tạo đối tượng thuộc lớp World với giá trị đầu vào vector trọng lực Các đối tượng vật lý thêm vào đối tượng world (Box2D gọi đối tượng vật lý Body) Có hai loại Body Box2D Static Dynamic Static đối tượng chuyển động (như platform), ngược lại, Dynamic đối tượng di chuyển Trong trò chơi Funny Bunny, đối tượng khối nền, pha lê mìn đối tượng thuộc loại Static, có đối tượng thuộc loại Dynamic thỏ Funny Một Body có hay nhiều Fixture Fixture dùng để định nghĩa thuộc tính vật lý cho Body hệ số ma sát, độ đàn hồi, hình dạng Ví dụ Body ứng với thỏ Funny có hai Fixture tương ứng với thân chân thỏ Fixture ứng với chân thỏ có nhiệm vụ Sensor bắt va cham khối thỏ Thỏ Funny di chuyển sang bên phải với tốc độ m/s Khối lượng Funny kg Để tạo hiệu ứng nhảy cho thỏ, ta áp dụng lực 200N hướng lên Các thông số chọn để tạo cảm giác trò chơi mơ giới thật tốt Figure 15 Tạo FixtureDef cho Funny Đồ họa trò chơi Hình ảnh thỏ Funny có kích thước 32x32 Mỗi chuyển động Funny ta dùng để tạo nên hiệu ứng hoạt hình làm cho người chơi có cảm giác Funny 18 | 20 di chuyển Các hình ảnh bị thay đổi sau khoảng 1/12s Các đối tượng khác pha lê, mìn xử lý tương tự Figure 18 Hình ảnh thỏ Funny Figure 19 Hình ảnh pha lê Figure 20 Hình ảnh mìn Phần quan trọng trò chơi tạo địa hình cho chơi Để tạo địa hình, nhóm sử dụng phần mềm Tiled Map Editor Việc tạo chơi cách sử dụng phần mềm TiledMapEditor đơn giản Để tạo chơi cho FunnyBunny, ta tạo tile layers red, blue, green tương ứng với màu khối platform Nếu thêm đối tượng khác pha lê mìn, ta tạo thêm objects layer spikes crystals Ứng với layers, ta đặt đối tượng vào vị trí tương ứng Màn chơi tương đối đơn giản, chưa xuất mìn người chơi cần bấm lần để chuyển màu Sang đến chơi thứ hai, người chơi bắt đầu phải bấm hai lần để chuyển màu Mìn bắt đầu xuất chơi thứ địa hình di chuyển trở nên khó Hiện trò chơi có chơi Figure 21 Giao diện hình Tiled Map Editor 19 | 20 Logic trò chơi Số khung hình giây mặc định LibGdx 60, nhiên giá trị thay đổi khơng cố định trò chơi Cứ khoảng 1/60 s, phương thức render() trò chơi gọi, phương thức gọi hai phương update() render() đối tượng lớp GameStateManager Đối tượng có nhiệm vụ quản lý trạng thái trò chơi Các trạng thái Menu, LevelState, Play Các trạng thái GameStateManager lưu stack Khi phương thức update() render() gọi, hai phương thức tương ứng trạng thái gọi Cách thiết kế làm cho việc thêm trạng thái vào trò chơi trở nên dễ dàng Sự kiện cần xử lý đặc biệt trò chơi kiện va chạm Fixture LibGdx hỗ trợ lập trình viên xử lý va chạm cách implement interface ContactListener Lập trình viên cài đặt hai phương thức beginContact() endContact() Khi Fixture ứng với chân Funny chạm với khối thân Funny va chạm với khối, pha lê mìn, phương thức gọi IV KẾT LUẬN Trong báo cáo này, nhóm giới thiệu tổng quan lịch sử hình thành Libgdx sử dụng Libgdx để xây dựng trò chơi Platformer đơn giản Hiện Funny Bunny có chơi thiếu nhiều tính lưu trữ điểm cao, thêm cài đặt âm Hi vọng người thích chơi trò chơi Platformer nói chung trò chơi Funny Bunny chúng tơi nói riêng Phân chia cơng việc Nguyễn Văn Sơn Trương Quang Tồn - Lên ý tưởng - Lên ý tưởng - Tìm hiểu Libgdx - Tìm hiểu Libgdx - Tạo hình ảnh cho trỏ chơi - Lựa chọn âm cho trò chơi - Thiết kế chơi, lập trình logic trò chơi - Thiết kế chơi, lập trình logic trò chơi - - Làm báo cáo Làm báo cáo 20 | 20 ... 20 | 20 LẬP TRÌNH GAME BẰNG FRAMEWORK libGDX I GIỚI THIỆU VỀ libGDX libGDX framework phát triển game miễn phí có mã nguồn mở, viết chủ yếu ngôn ngữ Java số thành phần C C++ để tăng hiệu libGDX. .. VỀ libGDX Lịch sử phát triển libGDX Các đặc điểm libGDX Kiến trúc libGDX Các game tiếng viết libGDX II CÁC KHÁI NIỆM CƠ BẢN TRONG libGDX. .. cho người dùng cài đặt JRE Kiến trúc libGDX libGDX cho phép lập trình viên viết, thử nghiệm gỡ lỗi trò chơi máy tính PC sử dụng code để tạo game Android Lập trình viên cảm thấy khơng rào cản tảng

Ngày đăng: 06/06/2018, 16:11

Từ khóa liên quan

Mục lục

  • I. GIỚI THIỆU VỀ libGDX

    • 1. Lịch sử phát triển libGDX

    • 2. Các đặc điểm của libGDX

    • 3. Kiến trúc libGDX

    • 4. Các game nổi tiếng được viết bằng libGDX

    • II. CÁC KHÁI NIỆM CƠ BẢN TRONG libGDX

      • 1. Vẽ đồ họa lên màn hình

      • 2. Hệ tọa độ trong libGDX

        • 2.1. Hệ tọa độ tiếp xúc

        • 2.2. Hệ tọa độ màn hình hoặc ảnh

        • 2.3. Hệ tọa độ hiển thị chuẩn hóa

        • 2.4. Hệ tọa độ UV

        • 2.5. Hệ tọa độ thế giới thực

        • 3. Camera và Viewport

        • 4. Box 2D

        • III. XÂY DỰNG TRÒ CHƠI FUNNY BUNNY BẰNG libGDX

          • 1. Ý tưởng trò chơi

          • 2. Thể loại

          • 3. Đối tượng hướng đến của trò chơi

          • 4. Tóm tắt diến biến trò chơi

          • 5. Thế giới vật lý trong trò chơi

          • 6. Đồ họa trong trò chơi

          • 7. Logic trò chơi

          • IV. KẾT LUẬN

Tài liệu cùng người dùng

Tài liệu liên quan