I have this class documentation but still don’t understand very well how it works. Could someone show me an example of how to implement a tractor beam (a line from one object to another that changes with their position) ?
Thanks in advance.
I have this class documentation but still don’t understand very well how it works. Could someone show me an example of how to implement a tractor beam (a line from one object to another that changes with their position) ?
Thanks in advance.
Hey zingbat,
have a look at my steering behaviors example:
discourse.panda3d.org/viewtopic.php?t=2338
you can ignore most of it, but one of the modules it includes is ‘draw.py’: ‘a library of primitive drawing functions (lines, circles, rectangles, grid, reticles etc) built on top of Panda’s LineSegs class’. ‘steerDemo.py’ uses LineSegs also, and moves a LineSeg around with a vehicle like you were asking for.
Also take a look at this thread: discourse.panda3d.org/viewtopic.php?t=1379
Also, the Rope class, using an order of 2, can be used to draw a connected line segment between two nodes.
David
Here is some example code showing how to draw a 3D axes set. For your application you would need to create a similar object for the tractor beam. For each frame you would pass your function the coordinates of the two objects and have it create a NodePath for the line, remove your old tractor beam (the NodePath from the previous frame), and reparent this new Nodepath to render.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
def P3DCreateAxes(lineThickness=1):
ls = LineSegs()
ls.setThickness(lineThickness)
# X axis
ls.setColor(1.0, 0.0, 0.0, 1.0)
ls.moveTo(0.0, 0.0, 0.0)
ls.drawTo(1.0, 0.0, 0.0)
# Y axis
ls.setColor(0.0, 1.0, 0.0, 1.0)
ls.moveTo(0.0,0.0,0.0)
ls.drawTo(0.0, 1.0, 0.0)
# Z axis
ls.setColor(0.0, 0.0, 1.0, 1.0)
ls.moveTo(0.0,0.0,0.0)
ls.drawTo(0.0, 0.0, 1.0)
node = ls.create()
return NodePath(node)
Can we use nodes created with LineSegs for collision detection? The behavior i’m trying to create is that if something like a meteor or a missile collides with the tractor beam it will disrupt it.
maybe a collosion segment might be what you’r looking for- check the manual about it.
I have it working now. Thanks all.