Spaces:
Sleeping
Sleeping
class JumpTrait: | |
def __init__(self, entity): | |
self.verticalSpeed = -12 | |
self.jumpHeight = 120 | |
self.entity = entity | |
self.initalHeight = 384 | |
self.deaccelerationHeight = self.jumpHeight - ((self.verticalSpeed*self.verticalSpeed)/(2*self.entity.gravity)) | |
def jump(self, jumping): | |
if jumping: | |
if self.entity.onGround: | |
self.entity.vel.y = self.verticalSpeed | |
self.entity.inAir = True | |
self.initalHeight = self.entity.rect.y | |
self.entity.inJump = True | |
self.entity.obeyGravity = False # always reach maximum height | |
if self.entity.inJump: | |
if (self.initalHeight-self.entity.rect.y) >= self.deaccelerationHeight or self.entity.vel.y == 0: | |
self.entity.inJump = False | |
self.entity.obeyGravity = True | |
def reset(self): | |
self.entity.inAir = False | |