예제 #1
0
 def announceGenerate(self):
     DistributedObject.DistributedObject.announceGenerate(self)
     if not self.nodePath:
         self.makeNodePath()
     self.delta = -globalClockDelta.networkToLocalTime(
         self.initTime, globalClock.getFrameTime(), 16,
         100) + globalClock.getFrameTime()
     if self.type == 0:
         self.name = self.uniqueName('tnt')
     elif self.type == 1:
         self.name = self.uniqueName('birthday-cake')
     self.nodePath.reparentTo(self.race.geom)
     if self.ownerId == localAvatar.doId:
         base.race.thrownGags[0].removeNode()
         base.race.thrownGags = base.race.thrownGags[1:]
         self.nodePath.setPos(self.pos[0], self.pos[1], self.pos[2])
     else:
         startPos = base.cr.doId2do[self.ownerId].getPos(render)
         endPos = Vec3(self.pos[0], self.pos[1], self.pos[2])
         throwIt = ProjectileInterval(self.nodePath,
                                      startPos=startPos,
                                      endPos=endPos,
                                      duration=1)
         throwIt.start()
     taskMgr.doMethodLater(0.8 - self.delta, self.addCollider,
                           self.uniqueName('addCollider'))
 def announceGenerate(self):
     DistributedObject.DistributedObject.announceGenerate(self)
     if not self.nodePath:
         self.makeNodePath()
     self.delta = -globalClockDelta.networkToLocalTime(
         self.initTime, globalClock.getFrameTime(),
         16, 100) + globalClock.getFrameTime()
     if self.type == 0:
         self.name = self.uniqueName('banana')
     elif self.type == 1:
         self.name = self.uniqueName('pie')
     self.nodePath.reparentTo(self.race.geom)
     if self.ownerId == localAvatar.doId:
         base.race.thrownGags[0].removeNode()
         base.race.thrownGags = base.race.thrownGags[1:]
         self.nodePath.setPos(self.pos[0], self.pos[1], self.pos[2])
     else:
         startPos = base.cr.doId2do[self.ownerId].getPos(render)
         endPos = Vec3(self.pos[0], self.pos[1], self.pos[2])
         throwIt = ProjectileInterval(
             self.nodePath,
             startPos=startPos,
             endPos=endPos,
             duration=1)
         throwIt.start()
     taskMgr.doMethodLater(
         0.8 - self.delta,
         self.addCollider,
         self.uniqueName('addCollider'))
예제 #3
0
파일: Hero.py 프로젝트: UIKit0/Dota2War
class Attack:
    def __init__(self,hero,target,atkspeed):
        self.vel=120
        self.missile = loader.loadModel("/c/miss")
        self.missile.setScale(0.09,0.09,0.09)
        self.missile.reparentTo(render)
        self.missile.setPos(25,25,0)
        self.weilder=0
        self.target=0
        self.dist=0
        self.fired=False
        self.atkspeed=atkspeed
        self.Animate=False
        
    def ATT(self):
        if self.fired==False:
           self.fired=True
           self.AnimON()
           self.time=self.dist/self.vel
           self.trajectory = ProjectileInterval(self.missile,startPos =self.weilder,endPos =self.target, duration =self.time) 
           self.trajectory.start()
           taskMgr.doMethodLater(self.atkspeed,self.setFired,"Fire")
           
    def setFired(self,task):
        self.fired=False
        self.AnimOFF()
        taskMgr.remove("Fire")
        return task.done          
    def setWeil(self,arg):
        self.weilder=arg.getPos()
    def setTarg(self,arg):
        self.target=arg.getPos()
    def setDist(self,arg):
        self.dist=arg
    def setAtkSpeed(self):
        self.atkspeed=atkspeed
    def AnimON(self):
        return True
    def AnimOFF(self):
        return False