| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/env python
- # Author: Shao Zhang and Phil Saltzman
- # Last Updated: 2015-03-13
- #
- # This tutorial is intended as a initial panda scripting lesson going over
- # display initialization, loading models, placing objects, and the scene graph.
- #
- # Step 2: After initializing panda, we define a class called World. We put
- # all of our code in a class to provide a convenient way to keep track of
- # all of the variables our project will use, and in later tutorials to handle
- # keyboard input.
- # The code contained in the __init__ method is executed when we instantiate
- # the class (at the end of this file). Inside __init__ we will first change
- # the background color of the window. We then disable the mouse-based camera
- # control and set the camera position.
- # Initialize Panda and create a window
- from direct.showbase.ShowBase import ShowBase
- base = ShowBase()
- from panda3d.core import * # Contains most of Panda's modules
- from direct.gui.DirectGui import * # Imports Gui objects we use for putting
- # text on the screen
- import sys
- class World(object): # Our main class
- def __init__(self): # The initialization method caused when a
- # world object is created
- # Create some text overlayed on our screen.
- # We will use similar commands in all of our tutorials to create titles and
- # instruction guides.
- self.title = OnscreenText(
- text="Panda3D: Tutorial 1 - Solar System",
- parent=base.a2dBottomRight, align=TextNode.A_right,
- style=1, fg=(1, 1, 1, 1), pos=(-0.1, 0.1), scale=.07)
- # Make the background color black (R=0, G=0, B=0)
- # instead of the default grey
- base.setBackgroundColor(0, 0, 0)
- # By default, the mouse controls the camera. Often, we disable that so that
- # the camera can be placed manually (if we don't do this, our placement
- # commands will be overridden by the mouse control)
- base.disableMouse()
- # Set the camera position (x, y, z)
- camera.setPos(0, 0, 45)
- # Set the camera orientation (heading, pitch, roll) in degrees
- camera.setHpr(0, -90, 0)
- # end class world
- # Now that our class is defined, we create an instance of it.
- # Doing so calls the __init__ method set up above
- w = World()
- # As usual - run() must be called before anything can be shown on screen
- base.run()
|