HOMECHÁTTruyệnFORUM
Chatbox|Admin nhận làm wap/web, giá cả thương lượng... Thông tin admin tại mỗi bài viết.
Hi, Khách!
»
phát hiện điểm chạm giữa nhân vật và map
như vậy là ta đã có nhân vật trong trò chơi và cũng đã có thể điều khiển được nhân vật như ta đã đươc biết, thế nhưng khi di chuyển các bạn sẽ thấy rằng nhân vật của bạn có thể di chuyển tự do trên map dù cứ như là ở trên một lớp khác vậy. đúng vậy bởi gì ta vẽ nhân vật và map trên hai lớp khác nhau nên giữa chúng chẳng có liên quan gì. bây giờ ta sẽ tạo ra sự liên hệ giữa chúng để khi nhân vật chạm phải chướng ngại thì không thể đi tiếp nữa.
để làm được như vậy ta gán thêm một tọa độ điểm(px,py) và xét vị trí của toa độ điểm này trên map.
giống như thế này
-khung màu đen là sprite còn khung màu xanh lam là giới hạn mà sprite có thể di chuyển
-khung lớn bên ngoài là map, những ô nhỏ hơn là những tile(viên gạch)
ta sẽ xét bốn điểm góc của sprite so với vị trí các tile nhỏ. từ việc xác định được điểm (px,py)tâm của sprite ta dễ dàng tính được tọa độ bốn góc của nó và từ đó xét vị trí của từng điểm góc so với map, nếu một trong các góc thuộc vào tile là cây hoặc là nhân vật tĩnh thì ta không cho tăng x,y nữa. việc tính xem một góc của sprite đang ở tile nào chỉ cần tìm dòng và cột mà điểm góc đó
hãy xem code map hoàn chỉnh sau để hiểu rõ hơn:
map.java
Chỉnh sửa lúc 2016-07-11 06:03 bởi Pham_loi
:
0 ♥
Trực Tuyến:
Khách: 1
|