Why so difficult to do dynamic text color changes?

I am apparently missing something again. I really am trying not to complain about the documentation, but wow.

I looked at the onScreenText, the textNode, and other stuff. I made an onScreenText object but it would not allow a change to the color after it was made. I set the mayChange flag to True, but to no avail. Okay.

Then I tried the textNode thing, and what a struggle. I can see that the author of the documents made far too many assumptions about what you know about Panda. I couldn’t get the code snippet to run straight off the page. I struggled with this thing and finally after a couple of hours of fooling around got a version that would sort of work. Still, once made, the text color could not be changed on the fly. It says that it is a read-only value. Great.

So I resorted to having to detach and then remove the node and recreate the text object with a different color immediately, which works with one hitch. At the end, the text is still there, black and unremovable. Detaching and removing does nothing for it.

I finally ended up create OnscreenText, displaying it for a brief interval, and then destroying it and making a new one with the updated color and alpha info. Is this the normal state of affairs? Seems pretty clunky and stupid.


I tried searching the forum posts, no hits. I have just about given up. Surely somebody has some experience with making such an elementary thing occur. Fade text in, hang around a bit, fade it out. Destroy it utterly when done. How difficult can it be? I feel like I’m trying to shove a melon through a keyhole using wooden spoons as hands. I am at the stage of my game where I need to make the intro screen and ending credits. Just about ready to generate a simple POVRay animation and embed it just to get what I need. How stupid would that be?

Make the text white, and then use setColorScale to achieve what you want.