Я бы реализовал это, имея массив изображений, содержащий анимацию ходьбы, и такой же большой массив, содержащий анимацию ходьбы + стрельбы, а затем отслеживание состояния с помощью перечисления (например, WALKING и SHOOTING).
Это при условии, что разница между ножнами в ножнах и оружием в ножнах довольно мала с точки зрения расстояния. При желании setState-метод в вашем классе анимации может поставить в очередь третий массив изображений, в который оружие помещается на место.
STATE(image index)<br>
WALKING(1) -> setState(SHOOTING) -> TRANSITION(2) -> SHOOTING(3) -> SHOOTING(4)
и т. Д.
Дополнительный массив переходов только добавляет сложности и часто может быть опущен, поскольку расстояние обычно не так велико.