This is a simple example of texture switching. Most people want to do material switching, as do I, but that feature isn’t in Blender. So, there are 3 ways around it.
Make multiple meshes and use the Replace Mesh actuator (is there a replaceMesh Python function? I don’t recall). Pros: You have control over the materials and textures present on the mesh (right?). Cons: You have to make a duplicate mesh for each outfit; if you want to change something later, like change the way his elbow moves, you have to do so for all duplicated meshes.
Use 1 material and 1 texture, but use multiple UV-maps on that texture (i.e. 3 outfits on the same texture) and switch between them by moving the UV-maps around. Pros: It should work fine. Cons: It would quickly require a huge texture - if one outfit is 512x512 and you want five for the player, that would quickly become a problem.
The third way is the way that’s outlined here. Basically, you use the VideoTexture module to load an outside image, and the UV-maps stick with the mesh, meaning that you could have a hundred different player outfits, and load them each when necessary. It works very well, though there are some downsides.
The only real problem is that the textures present MUST be in an external directory - they can’t be packed in with the blend, because the VideoTexture module only loads outside files. If someone knows a way to load internal blend textures, then that would be ideal, but this method still works fine. Anyway, here’s the zip file (it includes two textures that I’m giving away to the public, free of charge, for any use, including commercial use. I know it’s simple, but hey, it’s free.)
Press A or S to switch textures. It will only update when you change texture, and that’s indicated by the obj[‘change’] variable. This works in Blender 2.5, not 2.49.