PDA

View Full Version : how to use ***.remove() & how to show words directly? (change attach source code)


znchb
10-26-2008, 07:53 PM
Attached is the source file I did. I need the Administrator's help for
how to use
***.remove()
and
how to show words directly on 'billboard2'? (in this program, I just use some picture instead the method to which I really want)

Jeff
10-27-2008, 01:48 PM
Sorry, I'm not sure I answered you question well in your other thread. If you want to add text to the billboard you can just create an image with text in it and apply it as a texture to the billboard just as you did with the picture. It would look something like this.

import viz

viz.go()

billboard = viz.add('billboard model')

message = viz.addTexture('message.jpg')
new_message = viz.addTexture('new_message.jpg')

billboard.texture(message)

vizact.onkeydown(' ', billboard.texture, new_message)

as far as your problem with the remove() method in your code it looks like you are creating a number of different apples but you are referring to them all as self.apple so when you go to use self.remove.apple() only the last one you added to the world disappears.
After you add an apple you could set its parent to be an empty group node. Then when you want to remove all the apples you can call group.remove() Here's a simple example of what I mean using some ducks that are all children of an empty group node.

import viz

viz.go()

group = viz.addGroup()

for i in range(5):

duck = viz.add('duck.cfg', pos = [i,0,5])
duck.parent(group)

vizact.onkeydown(' ',group.remove)

let me know if this answers your questions.

znchb
10-30-2008, 12:33 AM
Appreciate!

first, you give me a good mind of using 'text3D', it helps me a lot.

second, using group is a good idea. Thanks.

Besides, do you know how to use '.copy' method, if I use the 'copy' method, I just need add an apple, and make a copy to the other position, I think it will make the program run faster.