コード例 #1
0
from pandac.PandaModules import TransparencyAttrib
from direct.gui.DirectGui import *
from pandac.PandaModules import TextNode
from pandac.PandaModules import AmbientLight, Spotlight, PerspectiveLens, Fog
from pandac import PandaModules as P
from direct.task.Task import Task
# Custom imports
from camera import Camera, EdgeScreenTracker
from terrain import Terrain
from obstacles import SphereObstacle
from containers import ContainerSquare
from steerVec import SteerVec
import character as C

# CollisionTraverser for Plants
base.cTrav = P.CollisionTraverser('CollisionTraverser of scene.py')
plantNode = P.NodePath(
    'plantNode')  # All plants are parented to one node for flattening
plantNode.reparentTo(render)


class Sea:
    def __init__(self):
        sea = loader.loadModel("models/sea1.egg")
        sea.reparentTo(render)
        sea.setScale(2000, 2000, 100)


class Scene(DirectObject):
    def __init__(self):
        """Initialise the scene."""
コード例 #2
0
import random, os
# Panda imports
import pandac.PandaModules as P
from direct.task.Task import Task
from pandac.PandaModules import PNMImage
# Custom imports
# FIXME: Should collisionmasks and SphereObstacles be set here or in scene.py?
# scene.py could access the terrain collision model and list of trees through
# Terrain and set the collision masks, add SphereObstacles.
import character as C
from perlin import greenNoise
from vehicle import cTrav as vehicleCTrav
from vehicle import obstacleMASK, offMASK, obstacleHandler
from obstacles import SphereObstacle
# Initialise a CollisionTraverser for this module
cTrav = P.CollisionTraverser('Global CollisionTraverser of terrain.py')


# Setup a task to traverse the CollisionTraverser
def traverse(task):
    if len(taskMgr.getTasksNamed("Tree step task")) == 0:
        # FIXME: This assumes that all Terrain objects will be added at the
        # very beginning of the simulation. (Any that are added after this task
        # returns 'done' will not benefit from a collision traverser for
        # trees). Give each Terrain object its own collision traverser and task
        # which it can stop when it no longer needs it?
        return Task.done
    else:
        cTrav.traverse(render)
        return Task.cont