Cho đến lúc này, ta đã học được về cách tạo, đóng gói, vẽ chỉ bằng một hình bitmap đối với mỗi frame của animation. Nhưng đây không phải là cách hiệu quả. Giờ game của ta sẽ có hàng trăm tập tin ảnh để tải, sẽ tốn thời gian dài. Một cách để quản lý sprite tốt hơn là lưu trữ những hình sprite trong một hình tiled bitmap.
Tiled Sprite (Sprite sheet)
Là tập hợp nhiều Tile (Sprite) đơn lẻ thành một tập tin duy nhất, giúp tăng tốc độ hiển thị hình ảnh lên màn hình. Ví dụ tiled sprite con mèo chuyển động ở bài trước:
Thay vì phải load lên 6 file bitmap, ta chỉ cần load lên hình tiled của nó. Điều này sẽ giúp game chạy nhanh hơn.
Dựa trên tập tin Sprite sheet ta cho hiển thị từng Sprite chuyển tiếp nhau một cách liên tục khi đó sẽ tạo ra cảm giác đối tượng như đang chuyển động.
Hiểu về Tile
Là một ảnh nguồn được tạo thành từ những dòng và cột tile. Ta phải nắm được góc trên bên trái của từng tile nằm trong hình tiled bitmap và sao chép lại khung hình đó dựa trên width và height của sprite.
Đầu tiên, ta cần chỉ ra được left (x), vị trí của tile bằng toán tử % (chia lấy dư).
Ví dụ frame hiện tại là 20, chúng ta có 5 cột trong tiled sprite, phép chia dư sẽ đưa ra vị trí ngang của tile khi ta nhân nó với width của sprite. Nếu có 5 cột thì tile thứ 20 sẽ nằm ở hàng thứ 4, cột thứ 5.
Chương trình Tiled_Sprite
Chương trình Tile_Sprite giải thích cách sử dụng hình tiled bitmap cho chuyển động sprite. Kết quả hiển thị:
Ta chỉ cần thay đổi file “game.cpp” còn lại hoàn toàn giống với chương trình Trans_Sprite ở bài trước. Source code “game.cpp”:
Tổng kết
Chúng ta đã đi qua xong phần tạo chuyển động trong game, đặc biệt là chương trình Tiled_Sprite…Các bạn phải nắm rõ cách hoạt động của Tiled Sprite trong chương trình này vì từ nay về sau làm game chúng ta sẽ sử dụng phương pháp này để tạo chuyển động trong game.😉 Hãy truy cập vào Series Make Game - TuiTuCode để học tiếp những bài thú vị khác nữa. Nếu có thắc mắc các bạn cứ bình luận bên dưới hoặc gửi thắc mắc về page TuiTuCode để các ad giải đáp. Pie~