def setupHpMeter(self): if self.hpMeter: return zAdj = 50 self.smokeZAdj = zAdj self.fortPart = self.fortNode.find('**/top_interior_wall_collision') if self.fortPart.isEmpty(): self.fortPart = self.fortNode.find('**/col_TopFloor1') if self.fortPart.isEmpty(): self.fortPart = self.fortNode.find('**/pPlane4') zAdj = 150 self.smokeZAdj = 100 if self.fortPart.isEmpty(): self.fortPart = self.fortNode.find('**/*tower*') if self.fortPart.isEmpty(): self.fortPart = self.fortNode.find('**/*buttress*') if self.fortPart.isEmpty(): self.fortPart = self.fortNode.find('**/*floor*') fortPartBounds = self.fortPart.getBounds() self.hpAnchor = NodePath('hpAnchor') self.hpAnchor.setPos(fortPartBounds.getApproxCenter()) self.hpAnchor.setZ(self.hpAnchor.getZ() + zAdj) self.hpAnchor.reparentTo(self.fortNode) self.hpMeter = HpMeter.HpMeter(fadeOut=0, parent=self.hpAnchor, originAtMidPt=True) self.hpMeter.setScale(200) self.hpMeter.setBin('fixed', 130) self.hpMeter.setDepthWrite(False) myEffect = BillboardEffect.make(Vec3(0, 0, 1), True, False, 150, NodePath(), Point3(0, 0, 0)) self.hpMeter.node().setEffect(myEffect) self.hpMeter.update(self.hp, self.maxHp) self.hideFortHpMeter()
def createHpMeter(self): self.hpMeter = HpMeter.HpMeter(name='', height=0.035, width=0.45, parent=base.a2dBottomRight) self.hpMeter.setPos(-0.5, 0, 0.65) self.hpMeter.update(1, 1) self.hpMeter.hide() self.accept('enteringMinigame', self.hpMeter.hide) self.accept('exitingMinigame', self.hpMeter.show)