forked from bartvdbraak/blender
40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
"""
|
|
Texture replacement
|
|
++++++++++++++++++++++
|
|
Example of how to replace a texture in game with an external image.
|
|
createTexture() and removeTexture() are to be called from a module Python
|
|
Controller.
|
|
"""
|
|
from bge import logic
|
|
from bge import texture
|
|
|
|
|
|
def createTexture(cont):
|
|
"""Create a new Dynamic Texture"""
|
|
object = cont.owner
|
|
|
|
# get the reference pointer (ID) of the internal texture
|
|
ID = texture.materialID(object, 'IMoriginal.png')
|
|
|
|
# create a texture object
|
|
object_texture = texture.Texture(object, ID)
|
|
|
|
# create a new source with an external image
|
|
url = logic.expandPath("//newtexture.jpg")
|
|
new_source = texture.ImageFFmpeg(url)
|
|
|
|
# the texture has to be stored in a permanent Python object
|
|
logic.texture = object_texture
|
|
|
|
# update/replace the texture
|
|
logic.texture.source = new_source
|
|
logic.texture.refresh(False)
|
|
|
|
|
|
def removeTexture(cont):
|
|
"""Delete the Dynamic Texture, reversing back the final to its original state."""
|
|
try:
|
|
del logic.texture
|
|
except:
|
|
pass
|