import direct.directbase.DirectStart from direct.task import Task from direct.actor import Actor from pandac.PandaModules import Filename,Point2,Texture from libpgmm import GeoMipTerrain base.setFrameRateMeter(True) terrain=GeoMipTerrain("myTerrain") terrain.setSz(100) terrain.setBlockSize(64) terrain.setMinLevel(3) terrain.setFactor(100) terrain.reparentTo(render) terrain.setHeightfield(Filename("stronghold.png")) terrain.setTexture(loader.loadTexture("grass.jpg")) terrain.setFocalPoint(base.camera) terrain.generate() #the dummy node, thats what the camera will rotate around dummyNode=render.attachNewNode("dummy") dummyNode.setPos(256,256) #reparent camera to the dummy node, #with distance 200. base.camera.reparentTo(dummyNode) base.camera.setX(200) def SpinCameraAndUpdateTerrainTask(task): terrain.update() angledegrees = task.time * 6.0 base.camera.setH(base.camera.getH()+angledegrees) return Task.cont taskMgr.add(SpinCameraAndUpdateTerrainTask, "SpinCameraAndUpdateTerrain") run()