Bạn có thể muốn một số loại máy trạng thái đơn giản. Khi phím tắt (xem sf::Input's IsKeyDown method), hãy đặt ký tự ở trạng thái "hoạt hình". Khi phím không xuống, hãy đặt ký tự ở trạng thái "không hoạt ảnh". Tất nhiên, bạn luôn có thể bỏ qua việc có "trạng thái" này và chỉ làm những gì tôi đề cập dưới đây (tùy thuộc vào chính xác những gì bạn đang làm).
Sau đó, nếu nhân vật ở trạng thái "hoạt hình", hãy tải "hình ảnh" tiếp theo (xem đoạn tiếp theo để biết thêm chi tiết về điều đó). Ví dụ, nếu bạn có hình ảnh của bạn được lưu trữ trong một mảng phần tử 4 đơn giản, hình ảnh tiếp theo sẽ là (currentIndex + 1) % ARRAY_SIZE
. Tùy thuộc vào những gì bạn đang làm, bạn có thể muốn lưu trữ khung hình ảnh của bạn trong một cấu trúc dữ liệu phức tạp hơn. Nếu nhân vật không ở trạng thái "hoạt hình", thì bạn sẽ không thực hiện bất kỳ cập nhật nào ở đây.
Nếu "4 hình ảnh" của bạn nằm trong cùng một tệp hình ảnh, bạn có thể sử dụng phương pháp sf :: Sprite's SetSubRect để thay đổi phần của hình ảnh được hiển thị. Nếu bạn thực sự có 4 hình ảnh khác nhau, thì có thể bạn sẽ cần phải sử dụng phương pháp sf :: của Sprite's SetImage để chuyển đổi hình ảnh.
Bạn sẽ thực thi tốc độ khung hình sao cho hoạt ảnh không diễn ra quá nhanh? – andrewtweber