本文整理汇总了Python中direct.particles.ParticleEffect.ParticleEffect.softStart方法的典型用法代码示例。如果您正苦于以下问题:Python ParticleEffect.softStart方法的具体用法?Python ParticleEffect.softStart怎么用?Python ParticleEffect.softStart使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类direct.particles.ParticleEffect.ParticleEffect
的用法示例。
在下文中一共展示了ParticleEffect.softStart方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Vehicle
# 需要导入模块: from direct.particles.ParticleEffect import ParticleEffect [as 别名]
# 或者: from direct.particles.ParticleEffect.ParticleEffect import softStart [as 别名]
class Vehicle(object):
COUNT = 0
def __init__(self, main, username, pos = LVecBase3(-5, -5, 1), isCurrentPlayer = False, carId=3):
self.username = username
self.main = main
self.isCurrentPlayer = isCurrentPlayer
self.boostCount = 0
self.boostActive = False
self.boostStep = 2
self.boostDuration = 0
self.moveStartTime = self.startTime = self.boostStartTime = time.time()
self.pos = pos
self.boostFactor = 1.2
self.specs = {"mass": 800.0,
"maxWheelForce": 2000.0,
"brakeForce": 100.0,
"steeringLock": 45.0,
"maxSpeed": 33.0,
"maxReverseSpeed": 10.0}
self.vehicleControlState = {"throttle": 0, "reverse": False, "brake": 0.0, "steering": 0.0, "health": 1}
# Steering change per second, normalised to steering lock
# Eg. 45 degrees lock and 1.0 rate means 45 degrees per second
self.steeringRate = 0.8
self.centreingRate = 1.2
self.speed = 0
self.setupVehicle(main)
self.props = VehicleProps(carId)
self.currentPowerups = {"powerup1": None, "powerup2": None, "powerup3": None}
if isCurrentPlayer:
#This command is required for Panda to render particles
base.enableParticles()
self.p = ParticleEffect()
# self.loadParticleConfig('steam.ptf')
def setPropHealth(self, health):
self.props.setHealth(health)
if not self.isCurrentPlayer:
self.main.updateStatusBars(self.username, self.props.health)
def loadParticleConfig(self, file):
#Start of the code from steam.ptf
self.p.cleanup()
self.p = ParticleEffect()
self.p.loadConfig(Filename(file))
# print type(main.worldNp)
self.p.softStart()
self.p.start(self.yugoNP)
# self.p.setPos(0.000, -0.700, 0.250)
self.p.setPos(0.000, -0.700, 0)
#self.setupVehicle(bulletWorld)
self.startTime = time.time()
#COUNT = 1
def move(self, steering, wheelForce, brakeForce, x, y, z, h, p, r):
self.applyForcesAndSteering(steering, wheelForce, brakeForce)
self.endTime = time.time()
#print self.endTime
elapsed = self.endTime - self.moveStartTime
#self.startTime = self.endTime
#if elapsed > 1:
self.moveStartTime = self.endTime
if not self.isCurrentPlayer:
self.setVehiclePos(x, y, z, h, p, r)
#print "Do Move"
def applyForcesAndSteering(self, steering, wheelForce, brakeForce):
# Apply steering to front wheels
self.vehicle.setSteeringValue(steering, 0);
self.vehicle.setSteeringValue(steering, 1);
# Apply engine and brake to rear wheels
self.vehicle.applyEngineForce(wheelForce, 2);
self.vehicle.applyEngineForce(wheelForce, 3);
self.vehicle.setBrake(brakeForce, 2);
self.vehicle.setBrake(brakeForce, 3);
def addBoost(self):
if self.boostCount > 0:
self.boostCount -= 1
if not self.boostActive:
self.boostStartTime = time.time()
self.boostActive = True
self.boostDuration += self.boostStep
def checkDisableBoost(self):
if time.time() - self.boostStartTime > self.boostDuration:
self.boostActive = False
def reset(self):
self.chassisNP.setP(0)
self.chassisNP.setR(0)
def processInput(self, inputState, dt):
# print self.chassisNP.getPos()
#print self.chassisNP.getH()
"""Use controls to update the player's car"""
#.........这里部分代码省略.........