Starting Panda3D
Creating a New Panda3D Application
ShowBase
To start Panda3D, create a text file and save it with the .py extension. PYPE, SPE and IDLE are Python-specific text-editors, but any text editor will work. Enter the following text into your Python file:
from direct.showbase.ShowBase import ShowBase
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
app = MyApp()
app.run()
Here we made our main class inherit from ShowBase
. The ShowBase class
loads most of the other Panda3D modules, and causes the 3D window to appear.
The run()
procedure in ShowBase contains the Panda3D main loop. It
renders a frame, handles the background tasks, and then repeats. It does not
normally return, so it needs to be called only once and must be the last line
in your script. In this particular example, there will be nothing to render,
so you should expect a window containing an empty grey area.
DirectStart
DirectStart
is a shortcut that instantiates ShowBase automatically on
import. This may be useful for quick prototyping at the expense of clean code
layout. The following example demonstrates its use:
import direct.directbase.DirectStart
base.run()
The import line automatically constructs an instance of ShowBase, which
starts the engine and creates an empty window. Because ShowBase uses Python’s
__builtin__
, its functions are allowed to be called without storing the
instance in a variable. For the sake of cleanliness, the rest of this
tutorial shall use the ShowBase subclass.
DirectStart is deprecated starting with Panda3D 1.9.0. In order to upgrade old code, you can simply replace the DirectStart import with the following:
from direct.showbase.ShowBase import ShowBase
base = ShowBase()
Running the Program
On Windows, Python is already included with Panda3D. To run your program, enter the following in a terminal (command prompt):
ppython filename.py
To run it on GNU/Linux or macOS, enter the following in a terminal:
python filename.py
If Panda3D has been installed properly, a grey window titled Panda appears. There is nothing we can do with this window, but that will change shortly.