Attachment 'hprtest.py'

Download

   1 import direct.directbase.DirectStart  #Initialize Panda and create a window
   2 from pandac.PandaModules import *     #Contains most of Panda's modules
   3 from direct.gui.DirectGui import *    #Imports Gui objects we use for putting
   4 from direct.task import Task
   5 from direct.showbase.DirectObject import DirectObject
   6 
   7 import sys, pdb
   8 def addTitle(text):
   9     return OnscreenText(text=text, style=1, fg=(1,1,1,1),
  10 	                pos=(1.3,-0.95), align=TextNode.ARight, scale = .07)
  11 
  12 
  13 class World(DirectObject):                          #Our main class
  14     def __init__(self):                 #The initialization method caused when a
  15         self.mytext = OnscreenText("Panda3D: Tutorial 1 - Solar System",
  16         style=1, fg=(1,1,1,1), pos=(0.8,-0.95), scale = .07)
  17         base.setBackgroundColor(0, 0, 0)
  18 
  19         base.disableMouse()
  20     
  21         camera.setPos ( 0, 0, 45 )
  22     
  23         camera.setHpr ( 0, -90, 0 )
  24 
  25         self.sizescale = 2
  26         self.prevtime = 0
  27         self.sun = loader.loadModelCopy("models/planet_sphere")
  28         #Now we repeat our other steps
  29         self.sun.reparentTo(render)
  30         self.sun_tex = loader.loadTexture("models/sun_1k_tex.jpg")
  31         self.sun.setTexture(self.sun_tex, 1)
  32         self.sun.setScale(2 * self.sizescale) #The sun is really much bigger than
  33 
  34         self.accept("h", self.controlFun, ["h",True])
  35         self.accept("h-up", self.controlFun, ["h",False])
  36         self.accept("p", self.controlFun, ["p",True])
  37         self.accept("p-up", self.controlFun, ["p",False])
  38         self.accept("r", self.controlFun, ["r",True])
  39         self.accept("r-up", self.controlFun, ["r",False])
  40 
  41         
  42         self.kDown = {"h":False, "p":False, "r":False}
  43         taskMgr.add(self.move,"cameraMoveTask")
  44         
  45         
  46     def move(self, task):
  47         elapsed = task.time - self.prevtime
  48         speed = 60 
  49         if self.kDown['h']:
  50             self.sun.setH(self.sun.getH() + (elapsed*speed)) 
  51         if self.kDown['p']:
  52             self.sun.setP(self.sun.getP() + (elapsed*speed)) 
  53         if self.kDown['r']:
  54             self.sun.setR(self.sun.getR() + (elapsed*speed)) 
  55         self.prevtime = task.time
  56         return Task.cont
  57    
  58     def controlFun(self, key, bDown):
  59         self.kDown[key] = bDown
  60 
  61     
  62 w = World()
  63 #As usual - run() must be called before anything can be shown on screen
  64 run()

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2021-05-11 08:52:08, 2.3 KB) [[attachment:hpr.py]]
  • [get | view] (2021-05-11 08:52:08, 2.3 KB) [[attachment:hprtest.py]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.