Если в синих и красных объектах не скрыта некоторая информация, которая их различает, например:
[синий setDistingusingInformation: @ "Это синий"];
[red setDistingusingInformation: @ "Это красный"];
И устанавливается перед вызовом loadCreature, тогда внутри метода loadCreature не будет никакого способа сообщить, какой объект CCSprite был ему передан.
Единственной альтернативой было бы объявить красный и синий как глобальные переменные, а внутри loadCreature сделать сравнение их указателей, чтобы выяснить, что есть что.Но это было бы так неправильно, и если бы я узнал, что вы делаете это, я бы очень сильно разозлился: D