Overlay Text

ta2025

01-10-2006 16:05:05

I am trying to add overlaid text to the demo I am creating...

I found some examples at the Ogre.net forums and have tried to adopt them, but my success rate at adopting non-python to python is not very good yet. I never can seem to find my SELF!!!

Here is what I ported...


def textContainer(self):

el = OverlayManager.Instance.CreateOverlayElement("Panel", "HelloOgreDotNet/Panel")
container = OverlayContainer(el, false)

container.MetricsMode(GuiMetricsMode.GMM_PIXELS)
container.Position(10, 10)
container.Dimensions(500, 100)

to = OverlayManager.Instance.CreateTextAreaElement("HelloOgreDotNet/HelloWorldText")
container.addChild(to)
to.setMetricsMode(GuiMetricsMode.GMM_PIXELS)
to.setPosition(0, 0)
to.setDimensions(100, 100)
to.setCaption("Hello World")
to.setCharHeight(48)
to.setFontName("Arial")
to.setColourBottom(Converter.Color(0.3, 0.5, 0.3))
to.setColourTop(Converter.Color(0.5, 0.7, 0.5))

overlay = OverlayManager.Instance.create("Status/Overlay")
overlay.add2D(container)

overlay.show()



From http://www.ogre3d.org/wiki/index.php/Og ... Tutorial_7

Please dont laugh at my feeble attempts!

Thanks

dermont

02-10-2006 12:23:35

Try something like this:


# This code is in the Public Domain
from pyogre import ogre
import SampleFramework as sf

class SmokeApplication(sf.Application):

def __init__(self):
sf.Application.__init__(self)
self._overlay = None
self._textElement = None
self._panel = None


def __del__(self):
"Clear variables, this should not actually be needed."

del self._overlay
del self._panel
del self._textElement


del self.camera
del self.sceneManager
del self.frameListener
del self.root
del self.renderWindow



def _createScene(self):
sceneManager = self.sceneManager
camera = self.camera

sceneManager.ambientLight = (0.5, 0.5, 0.5)
#sceneManager.setSkyDome(True, 'Examples/CloudySky', 5.0, 8.0)

self.fountainNode = sceneManager.rootSceneNode.createChildSceneNode()

psm = ogre.ParticleSystemManager.getSingleton()
particleSystem2 = sceneManager.createParticleSystem('fountain1', 'Examples/Smoke')
node = self.fountainNode.createChildSceneNode()
node.attachObject(particleSystem2)

overlayManager = ogre.OverlayManager.getSingleton()

#create panel
_panel = overlayManager.createOverlayElement('Panel', 'PanelName')
_panel.metricsMode = ogre.GMM_PIXELS
_panel.setPosition(10, 10)
_panel.setDimensions(500, 100)
_panel.materialName="Core/StatsBlockCenter"



_textElement = ogre.TextAreaOverlayElement('MessageArea')
_textElement.metricsMode = ogre.GMM_PIXELS
_textElement.setPosition(10, 10)
_textElement.setDimensions(100, 100)
_textElement.caption = "HELLO WORLD"
_textElement.charHeight = 16
_textElement.fontName = "BlueHighway" # "TrebuchetMSBold"
_textElement.colourBottom = ogre.ColourValue(0.3, 0.5, 0.3)
_textElement.colourTop = ogre.ColourValue(0.5, 0.7, 0.5)


_overlay = overlayManager.create('MessageOverlay')
_overlay.add2D(_panel)
_panel.addChild(_textElement)
_overlay.show()

self._overlay = _overlay
self._panel = _panel
self._textElement =_textElement


if __name__ == '__main__':
try:
application = SmokeApplication()
application.go()
except ogre.OgreException, e:
print e