Thông thường để bắt va chạm chuẩn xác nhất thì người ta sẽ phải xác định vùng bao của vật thể cần xét va chạm, mà vùng bao này thì muôn hình vạn trạng, có thể là hình tròn, hình đa giác, hay vô số hình phức tạp, đồng thời thuật toán để xét va chạm giữ các hình này thì không phải đơn giản (hiện tại mình mới làm theo kiểu vùng bao hình tròn, hình vuông, chữ nhật mà thôi :v).
Và thật may mắn khi lớp Rectangle trong java.awt đã cung cấp cho ta phương thức intersecters(...)
để có thể kiểm tra va chạm giữa 2 hình chữ nhật với nhau, việc chúng ta cần làm là gọi nó ra và dùng mà thôi
Để hiểu rõ hơn mình sẽ đi vào ví dụ cụ thể, mình sẽ tạo class Box để ví dụ cho 1 vật thể:
Lập trình game phát hiện va chạm bằng Java
Ta có lớp Box như sau:
Phương thức getBound() sẽ dùng để xác định vùng bao của 2 nhân vật, ở đây vì mình làm 2 đối tượng là 2 hình chữ nhật nên vùng bao sẽ chính xác tuyệt đối.
Và giờ ta sẽ tạo Class Main để kiểm tra va chạm
Chỉ với hàm đơn giản ta đã có thể kiểm tra va chạm của 2 vật thể hình chữ nhât. Theo dõi mình để biết thêm những kiến thức hay và thú vị nhé
Bình luận
Vui lòng đăng
nhập để bình luận
Một số bài viết liên quan
Devsne VN
3253 lượt xem