Các kiến thức nền tảng Lập trình hướng đối tượng Tư duy hướng đối tượng Các kĩ thuật lập trình: đóng gói, module hóa, kế thừa, đa hình, … Cách phân tích thiết kế hướng đối tượng
Trang 1LOGO
Báo cáo bài tập lớn
Môn: Lập trình hướng đối tượng
Nhóm 6
Đề tài: xây dựng chương trình game
Chiếc nón kì diệu bằng ngôn ngữ Java
Trang 2Nội dung chính
Các kiến thức nền tảng
1
Phân tích và thiết kế
2
Các vấn đề thú vị
3
Các kĩ năng được phát triển
4
Trang 3Các kiến thức nền tảng
Lập trình hướng đối tượng
Tư duy hướng đối tượng
Các kĩ thuật lập trình: đóng gói, module hóa, kế thừa, đa hình, …
Cách phân tích thiết kế hướng đối tượng: Biểu đồ use case, biểu đồ lớp, biểu đồ
trình tự
Các kỹ thuật lập trình, kiểm thử, gỡ rối
Trang 41 Các kiến thức nền tảng
Cơ sở dữ liệu
Các kiến thức về cơ sở dữ liệu: mô hình, ngôn ngữ, thiết kế CSDL, toàn vẹn và tối
ưu hóa dữ liệu
Kỹ năng lập trình và thao tác với CSDL
Kiến thức về ngôn ngữ CSDL (SQL)
Các kiến thức và kỹ năng để làm việc với
hệ quản trị CSDL MySQL
Trang 51 Các kiến thức nền tảng
Ngôn ngữ Java
Kiến thức lập trình căn bản trên Java
Kĩ thuật lập trình hướng đối tượng trên Java
Kĩ năng làm việc với môi trường lập trình của NetBean Tận dụng các ưu việt như:
tự sinh mã, gỡ rối, quản lý thư viện, quản
lý mã nguồn
Trang 61 Các kiến thức nền tảng
Lập trình đồ họa trong Java
Cách tạo và vẽ các đối tượng đồ họa
Cách tạo các hiệu ứng cho hình ảnh:
quay, co dãn ảnh, tịnh tiến, trong suốt, …
Kĩ thuật bộ đệm màn hình để chống hiện tượng conflict
Kiến thức về quản lý và truy cập file ảnh
để sử dụng trong game
Kỹ năng về tạo và chỉnh sửa ảnh
Trang 71 Các kiến thức nền tảng
Kiến thức về lập trình game
Tạo framework cho game để xử lý hoạt động theo thời gian thực
Kiến thức về luồng và đồng bộ hóa luồng
Điều phối, ổn định và cân bằng tốc độ
cập nhật trạng thái của game với các
thao tác xử lý đồ họa
Tính toán các hoạt động trong game theo thời gian thực
Trang 82 Phân tích và thiết kế
Biểu đồ use case
Trang 92 Phân tích và thiết kế
Biểu đồ trình tự
Trang 102 Phân tích và thiết kế
Biểu đồ lớp
Trang 113 Các vấn đề thú vị
Tạo framework xử lý theo thời gian
thực:
Tạo 2 luồng xử lý song song: 1 luồng xử
lý các chuyển động và cập nhật trạng thái của game, 1 luồng chuyên xử lý các sự kiện và các thao tác đồ họa
Đồng bộ hóa các luồng: phải cân bằng
giữa việc cập nhật game và vẽ các đối
tượng đồ họa ra màn hình
Ổn định tốc độ chạy của game, độc lập phần cứng
Trang 123 Các vấn đề thú vị
Thiết kế các trạng thái làm việc trong game (game state)
Cần chia game thành nhiều trạng thái
như: menu khởi động, tạo game mới,
quản lý dữ liệu, chơi game, và kết thúc
Do các trạng thái có những đặc điểm
chung nên được thừa kế từ một lớp cha, mỗi trạng thái sẽ được thiết kế riêng
thành 1 lớp, có các tài nguyên và các
thao tác, hoạt động đặc thù
Trang 133 Các vấn đề thú vị
Xử lý ảnh
Khi đưa ảnh vào game và thực hiện các hiệu ứng độ họa, có thể khiến ảnh bị biến dạng Đặc biệt khi thực hiện quay ảnh
nhiều lần Như vậy cần phải khử hiện
tượng răng cưa và làm mịn ảnh sau khi quay
Đường dẫn ảnh sai dẫn đến không thể tải ảnh sau khi biên tập thành file thực thi
JAR
Trang 144 Các kỹ năng được phát triển
Kỹ năng làm việc nhóm, kỹ năng lập
kế hoạch
Kỹ năng, kỹ thuật lập trình với ngôn
ngữ Java
Kiến thức và tư duy về lập trình hướng đối tượng
Kiến thức và kỹ năng thao tác với cơ
sở dữ liệu,
Trang 15LOGO