uhmm... pregunta: el sprite que cargas de GFX_RESOURCE (nombreSprite) se supone que tiene ya algun offset dado?
Me da que tiene 0 y por eso tu en tu constructor pasas el ancho y largo, como para activarlo... pero claro, getoffset() te va a devolver 0 si ese sprite no tiene un offset asignado previamente... No querras hacer un SetTileSet()??
De todos modos hay algo que no veo claro, si se supone que tu en Cosa() le pasas la posicion y offset deseados...para que haces un getoffset() despues?
Si lo que quieres es en ancho y largo retornar el offset del sprite...esta mal, y tienes que pasarlos por referencia o fuera de tu constructor ancho y largo valdran lo que tuvieran antes de llamar al constructor...