回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是新来的,我得到了一个错误,我希望有人能帮助我,并解释我的错误</p>
<p>错误:</p>
<blockquote>
<p>line 178, in applyThrust<br/>
shipPos = self.Fighter.getPos(self.origin)<br/>
AttributeError: 'Fighter' object has no attribute 'Fighter'</p>
</blockquote>
<pre><code> class Fighter(SphereCollideObj, object):
fighterCount = 0
def __init__(self, modelPath, parentNode, nodeName, posVec, traverser, scaleVec = 1.0):
super(Fighter, self).__init__(modelPath, parentNode, nodeName, 0, 0, 0, 3.0)
self.modelNode.setScale(scaleVec)
self.modelNode.setPos(posVec)
self.trav = traverser
self.origin = render.attachNewNode("origin")
self.origin.setPos(0, 0, 0)
self.origin.hide()
self.setKeyBindings()
self.hud = Hud("./Tools/Hud.x", self.modelNode, "Hud", (0, 10, 0))
def setKeyBindings(self):
self.accept("space", self.thrust, [1])
self.accept("space-up", self.thrust, [0])
def thrust(self,keyDown):
if keyDown:
taskMgr.add(self.applyThrust, "thrust")
else:
taskMgr.remove("thrust")
self.acceptOnce("space", self.thrust,[1])
self.acceptOnce("space-up", self.thrust,[0])
def applyThrust(self, task):
shipPos = self.Fighter.getPos(self.origin)
hudPos = self.hud.modelNode.getPos(self.origin)
trajectory = hudPos - shipPos
rate = 5
trajectory.normalize()
self.Fighter.setFluidPos(shipPos + trajectory * rate)
</code></pre>