本文整理汇总了Python中direct.controls.GravityWalker.GravityWalker.enableAvatarControls方法的典型用法代码示例。如果您正苦于以下问题:Python GravityWalker.enableAvatarControls方法的具体用法?Python GravityWalker.enableAvatarControls怎么用?Python GravityWalker.enableAvatarControls使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类direct.controls.GravityWalker.GravityWalker
的用法示例。
在下文中一共展示了GravityWalker.enableAvatarControls方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: BitMask32
# 需要导入模块: from direct.controls.GravityWalker import GravityWalker [as 别名]
# 或者: from direct.controls.GravityWalker.GravityWalker import enableAvatarControls [as 别名]
offset = 3.2375
base.camera.reparentTo(duckBody)
base.camera.setPos(0, -10.0 - offset, offset)
wallBitmask = BitMask32(1)
floorBitmask = BitMask32(2)
base.cTrav = CollisionTraverser()
def getAirborneHeight():
return offset + 0.025000000000000001
walkControls = GravityWalker(legacyLifter=True)
walkControls.setWallBitMask(wallBitmask)
walkControls.setFloorBitMask(floorBitmask)
walkControls.setWalkSpeed(16.0, 24.0, 8.0, 80.0)
walkControls.initializeCollisions(base.cTrav, duckBody, floorOffset=0.025, reach=4.0)
walkControls.setAirborneHeightFunc(getAirborneHeight)
walkControls.enableAvatarControls()
duckBody.physControls = walkControls
def setWatchKey(key, input, keyMapName):
def watchKey(active=True):
if active == True:
inputState.set(input, True)
keyMap[keyMapName] = 1
else:
inputState.set(input, False)
keyMap[keyMapName] = 0
base.accept(key, watchKey, [True])
base.accept(key+'-up', watchKey, [False])
keyMap = {'left':0, 'right':0, 'forward':0, 'backward':0, 'control':0}
示例2: LocalToon
# 需要导入模块: from direct.controls.GravityWalker import GravityWalker [as 别名]
# 或者: from direct.controls.GravityWalker.GravityWalker import enableAvatarControls [as 别名]
#.........这里部分代码省略.........
camera.setPos(0, 0, 0)
camera.setHpr(0, 0, 0)
def handleSuitAttack(self, attack_id, suit_id):
DistributedToon.handleSuitAttack(self, attack_id, suit_id)
if not self.isDead() and base.config.GetBool('want-sa-reactions'):
base.taskMgr.remove('LT.attackReactionDone')
attack = SuitAttacks.SuitAttackLengths.keys()[attack_id]
suit = self.cr.doId2do.get(suit_id)
animToPlay = None
timeToWait = 3.0
if attack not in ('pickpocket', 'fountainpen'):
suitH = suit.getH(render) % 360
myH = self.getH(render) % 360
if -90.0 <= suitH - myH <= 90.0:
animToPlay = 'fallFWD'
else:
animToPlay = 'fallBCK'
elif attack in ('pickpocket',):
animToPlay = 'cringe'
elif attack in ('fountainpen',):
animToPlay = 'conked'
timeToWait = 5.0
self.cr.playGame.getPlace().fsm.request('stop')
self.b_setAnimState(animToPlay)
base.taskMgr.doMethodLater(timeToWait, self.__attackReactionDone, 'LT.attackReactionDone')
return
def __attackReactionDone(self, task):
self.cr.playGame.hood.loader.place.fsm.request('walk')
self.b_setAnimState('neutral')
return Task.done
def enableAvatarControls(self):
self.walkControls.enableAvatarControls()
self.accept('control', self.updateMovementKeymap, ['jump', 1])
self.accept('control-up', self.updateMovementKeymap, ['jump', 0])
taskMgr.add(self.movementTask, 'avatarMovementTask')
self.avatarMovementEnabled = True
self.playMovementSfx(None)
return
def disableAvatarControls(self):
self.walkControls.disableAvatarControls()
self.ignore('arrow_up')
self.ignore('arrow_up-up')
self.ignore('arrow_down')
self.ignore('arrow_down-up')
self.ignore('arrow_left')
self.ignore('arrow_left-up')
self.ignore('arrow_right')
self.ignore('arrow_right-up')
self.ignore('control')
self.ignore('control-up')
taskMgr.remove('avatarMovementTask')
self.isMoving_forward = False
self.isMoving_side = False
self.isMoving_back = False
self.isMoving_jump = False
self.avatarMovementEnabled = False
self.playMovementSfx(None)
for k, _ in self.movementKeymap.items():
self.updateMovementKeymap(k, 0)
return