Panda3D
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
ProjectileInterval Class Reference
Inheritance diagram for ProjectileInterval:
Interval DirectObject

Public Member Functions

 __init__ (self, node, startPos=None, endPos=None, duration=None, startVel=None, endZ=None, wayPoint=None, timeToWayPoint=None, gravityMult=None, name=None, collNode=None)
 
 privInitialize (self, t)
 
 privInstant (self)
 
 privStep (self, t)
 
 testTrajectory (self)
 
- Public Member Functions inherited from Interval
 __repr__ (self, indent=0)
 
 clearToInitial (self)
 
 finish (self)
 
 getDoneEvent (self)
 
 getDuration (self)
 
 getLoop (self)
 
 getName (self)
 
 getOpenEnded (self)
 
 getPlayRate (self)
 
 getState (self)
 
 getT (self)
 
 intervalDone (self)
 
 isPaused (self)
 
 isPlaying (self)
 
 isStopped (self)
 
 loop (self, startT=0.0, endT=-1.0, playRate=1.0)
 
 pause (self)
 
 popupControls (self, tl=None)
 
 privDoEvent (self, t, event)
 
 privFinalize (self)
 
 privInterrupt (self)
 
 privPostEvent (self)
 
 privReverseFinalize (self)
 
 privReverseInitialize (self, t)
 
 privReverseInstant (self)
 
 resume (self, startT=None)
 
 resumeUntil (self, endT)
 
 setDoneEvent (self, event)
 
 setLoop (self, loop=1)
 
 setPlayRate (self, playRate)
 
 setT (self, t)
 
 setupPlay (self, startT, endT, playRate, doLoop)
 
 setupResume (self)
 
 start (self, startT=0.0, endT=-1.0, playRate=1.0)
 
 stepPlay (self)
 
- Public Member Functions inherited from DirectObject
 accept (self, event, method, extraArgs=[])
 
 acceptOnce (self, event, method, extraArgs=[])
 
 addTask (self, *args, **kwargs)
 
 detectLeaks (self)
 
 doMethodLater (self, *args, **kwargs)
 
 getAllAccepting (self)
 
 ignore (self, event)
 
 ignoreAll (self)
 
 isAccepting (self, event)
 
 isIgnoring (self, event)
 
 removeAllTasks (self)
 
 removeTask (self, taskOrName)
 

Public Attributes

 collNode
 
 duration
 
 endPos
 
 implicitStartPos
 
 node
 
 parabola
 
 projectileIntervalNum
 
 startPos
 
 startVel
 
 trajectoryArgs
 
 zAcc
 
- Public Attributes inherited from Interval
 currT
 
 doneEvent
 
 duration
 
 es
 
 name
 
 openEnded
 
 pname
 
 pstats
 
 setTHooks
 
 state
 

Static Public Attributes

int gravity = 32.
 
 notify = directNotify.newCategory('ProjectileInterval')
 
int projectileIntervalNum = 1
 
- Static Public Attributes inherited from Interval
 notify = directNotify.newCategory("Interval")
 
int playbackCounter = 0
 
- Static Public Attributes inherited from DirectObject
 accept_once = acceptOnce
 
 add_task = addTask
 
 detect_leaks = detectLeaks
 
 do_method_later = doMethodLater
 
 get_all_accepting = getAllAccepting
 
 ignore_all = ignoreAll
 
 is_accepting = isAccepting
 
 is_ignoring = isIgnoring
 
 remove_all_tasks = removeAllTasks
 
 remove_task = removeTask
 

Additional Inherited Members

- Protected Member Functions inherited from DirectObject
 _addTask (self, task)
 
 _clearTask (self, task)
 
- Protected Attributes inherited from DirectObject
 _taskList
 
- Properties inherited from Interval
 done_event = property(getDoneEvent, setDoneEvent)
 
 open_ended = property(getOpenEnded)
 
 play_rate = property(getPlayRate, setPlayRate)
 
 stopped = property(isStopped)
 
 t = property(getT, setT)
 

Detailed Description

ProjectileInterval class: moves a nodepath through the trajectory
of a projectile under the influence of gravity

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self,
node,
startPos = None,
endPos = None,
duration = None,
startVel = None,
endZ = None,
wayPoint = None,
timeToWayPoint = None,
gravityMult = None,
name = None,
collNode = None )
You may specify several different sets of input parameters.
(If startPos is not provided, it will be obtained from the node's
position at the time that the interval is first started. Note that
in this case you must provide a duration of some kind.)

# go from startPos to endPos in duration seconds
startPos, endPos, duration
# given a starting velocity, go for a specific time period
startPos, startVel, duration
# given a starting velocity, go until you hit a given Z plane
startPos, startVel, endZ
# pass through wayPoint at time 'timeToWayPoint'. Go until
# you hit a given Z plane
startPos, wayPoint, timeToWayPoint, endZ

You may alter gravity by providing a multiplier in 'gravityMult'.
'2.' will make gravity twice as strong, '.5' half as strong.
'-1.' will reverse gravity

If collNode is not None, it should be an empty CollisionNode
which will be filled with an appropriate CollisionParabola
when the interval starts.  This CollisionParabola will be set
to match the interval's parabola, and its t1, t2 values will
be updated automatically as the interval plays.  It will *not*
be automatically removed from the node when the interval
finishes.

Reimplemented from Interval.

Member Function Documentation

◆ privInitialize()

privInitialize ( self,
t )

Reimplemented from Interval.

◆ privInstant()

privInstant ( self)

Reimplemented from Interval.

◆ privStep()

privStep ( self,
t )

Reimplemented from Interval.

◆ testTrajectory()

testTrajectory ( self)

Member Data Documentation

◆ collNode

collNode

◆ duration

duration

◆ endPos

endPos

◆ gravity

int gravity = 32.
static

◆ implicitStartPos

implicitStartPos

◆ node

node

◆ notify

notify = directNotify.newCategory('ProjectileInterval')
static

◆ parabola

parabola

◆ projectileIntervalNum [1/2]

int projectileIntervalNum = 1
static

◆ projectileIntervalNum [2/2]

projectileIntervalNum

◆ startPos

startPos

◆ startVel

startVel

◆ trajectoryArgs

trajectoryArgs

◆ zAcc

zAcc