2010-04-21 66 views
5

Cho phép tôi có 4 hình ảnh và tôi muốn sử dụng 4 hình ảnh này để tạo hoạt ảnh cho một ký tự. 4 hình ảnh đại diện cho nhân vật đi bộ. Tôi muốn các hình ảnh động lặp lại chính nó miễn là tôi bấm phím để di chuyển nhưng để dừng lại ngay khi tôi unpress nó. Nó không cần phải là SFML cụ thể nếu bạn không biết nó, chỉ lý thuyết cơ bản sẽ thực sự giúp tôi.Làm cách nào để tạo hình ảnh động trong SFML

Cảm ơn bạn.

Trả lời

10

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.

+1

Bạn sẽ thực thi tốc độ khung hình sao cho hoạt ảnh không diễn ra quá nhanh? – andrewtweber

Các vấn đề liên quan