Exemplo n.º 1
0
def makeFoe(model: str, x: float, y: float, scale: float, energy: int):
    foe = Sprite(model=model, pos=[x, 0])
    foe.scale = scale
    foe.addComponent(
        compo.SmartCollider(flag=vars.flags.foe,
                            mask=vars.flags.player | vars.flags.player_attack,
                            tag=vars.tags.foe,
                            castTag=vars.tags.foe_attack,
                            castMask=vars.flags.player))
    foe.addComponent(compo.Info(energy=energy))
    foe.addComponent(
        compo.Controller25(mask=vars.flags.platform, depth=y, elevation=0))
    foe.addComponent(compo.Dynamics2D(gravity=vars.gravity))
    stateMachine = compo.StateMachine(initialState='walk')
    # stateMachine.states.append (compo.SimpleState (id='warp', anim='idle'))
    stateMachine.states.append(
        compo.FoeWalk25(id='walk',
                        speed=20,
                        acceleration=0.05,
                        flipHorizontal=True,
                        delta=80))
    stateMachine.states.append(
        compo.IsHit25(id='ishit', acceleration=0.5, anim='idle'))
    stateMachine.states.append(compo.Hit25(id='attack', anim='attack'))
    foe.addComponent(stateMachine)
    return foe
Exemplo n.º 2
0
 def f(args):  #model: str, x: float, y: float):
     props = prop[1]
     model = props['model']
     fliph = props['fliph']
     flipp = props['flipAtPlatformEnd']
     ctag = props['ctag']
     scale = props.get('scale', 1)
     speed = props.get('speed', 20)
     goomba = Sprite(
         model=model,
         pos=[args[0] * vars.tileSize, args[1] * vars.tileSize, 0.1])
     goomba.scale = scale
     goomba.addComponent(
         SmartCollider(flag=vars.flags.foe,
                       mask=vars.flags.player,
                       tag=getattr(vars.tags, ctag)))
     goomba.addComponent(
         Controller2D(maskUp=vars.flags.platform,
                      maskDown=vars.flags.platform
                      | vars.flags.platform_passthrough,
                      maxClimbAngle=80,
                      maxDescendAngle=80))
     goomba.addComponent(Dynamics2D(gravity=vars.gravity))
     stateMachine = StateMachine(initialState='walk')
     stateMachine.states.append(
         FoeWalk(id='walk',
                 anim='walk',
                 speed=speed,
                 acceleration=0,
                 flipHorizontal=fliph,
                 flipWhenPlatformEnds=flipp,
                 left=1))
     stateMachine.states.append(
         FoeWalk(id='dead',
                 anim='dead',
                 speed=0,
                 acceleration=0,
                 flipHorizontal=fliph,
                 flipWhenPlatformEnds=flipp,
                 left=1))
     stateMachine.states.append(SimpleState(id='dead2', anim='idle'))
     goomba.addComponent(stateMachine)
     return goomba
Exemplo n.º 3
0
def makePlayer(model: str, x: float, y: float):
    player = Sprite(model=model, pos=[x, 0], tag='player')
    player.scale = 0.5
    player.addComponent(
        compo.SmartCollider(flag=vars.flags.player,
                            mask=vars.flags.foe | vars.flags.foe_attack,
                            tag=vars.tags.player,
                            castTag=vars.tags.player_attack,
                            castMask=vars.flags.foe))
    player.addComponent(
        compo.Controller25(mask=vars.flags.platform, depth=y, elevation=256))
    player.addComponent(compo.Info(energy=5))
    #     maskDown = vars.flags.platform | vars.flags.platform_passthrough,
    #     maxClimbAngle = 80,
    #     maxDescendAngle = 80))
    # speed = 75
    player.addComponent(compo.Dynamics2D(gravity=vars.gravity))
    stateMachine = compo.StateMachine(initialState='walk')
    # stateMachine.states.append (compo.SimpleState (id='warp', anim='idle'))
    stateMachine.states.append(
        compo.Walk25(id='walk',
                     speed=200,
                     acceleration=0.05,
                     flipHorizontal=True,
                     jumpvelocity=vars.jump_velocity))
    stateMachine.states.append(compo.Hit25(id='attack', anim='attack'))
    stateMachine.states.append(
        compo.IsHit25(id='ishit', acceleration=0.5, anim='idle'))
    # stateMachine.states.append (pc.Jump(id='jump', speed=200, acceleration=0.10, flipHorizontal=True, animUp='jump', animDown='jump'))
    # stateMachine.states.append (pc.FoeWalk(id='demo', anim='walk', speed = 75,
    #     acceleration=0.05, flipHorizontal=True, flipWhenPlatformEnds = False, left=1))
    player.addComponent(stateMachine)
    player.addComponent(compo.KeyInput())
    player.addComponent(compo.Follow())
    baa = Entity(tag='pane')
    baa.addComponent(
        compo.ShapeGfxColor(shape=sh.Ellipse(20, 10), color=[0, 0, 0, 64]))
    player.add(baa)

    return player
Exemplo n.º 4
0
def makeFoe (id: str, x:float, y:float): #model: str, x: float, y: float, speed: float, scale: float = 1.0, energy=1):
    model, speed, scale, energy = vars.foes[id]
    

    collFlag = vars.flags.foe
    collMask = vars.flags.player | vars.flags.player_attack
    collTag = vars.tags.foe    
    castTag = vars.tags.foe_attack
    castMask = vars.tags.player
    
    entity = Sprite (model = model, pos = [x * vars.tileSize, y*vars.tileSize, 0])
    entity.addComponent (SmartCollider(
        flag = collFlag,
        mask = collMask,
        tag = collTag,
        castTag=castTag,
        castMask=castMask))
    entity.scale = scale
    entity.addComponent (Info (energy=energy))
    entity.addComponent (Controller2D(
        maskUp = vars.flags.platform, 
        maskDown = vars.flags.platform | vars.flags.platform_passthrough, 
        maxClimbAngle = 80, 
        maxDescendAngle = 80))
    
    entity.addComponent (Dynamics2D(gravity= vars.gravity))
    
    stateMachine = StateMachine(initialState='walk')
    
    stateMachine.states.append (FoeChase(id='walk', walkanim='walk', idleanim='idle', speed = 20, acceleration=0, attacks=['attack3'], prob_attack= 0.1))
    stateMachine.states.append (Attack(id='attack1', anim= 'attack1'))
    stateMachine.states.append (Attack(id='attack2', anim= 'attack2'))
    stateMachine.states.append (JAttack (id='attack3', animup='jumpup', animdown = 'jumpdown', animland='ciao', height=80, timeDown=0.2))
    stateMachine.states.append (SimpleState(id='dead', anim='hit'))
    stateMachine.states.append (IsHit(id='ishit', acceleration=300, anim='hit', dist =32))
    stateMachine.states.append (FoeWalk(id='landed', anim='landed',speed=0,acceleration=0,flipHorizontal=True,flipWhenPlatformEnds=False, left=False))
    stateMachine.states.append (FoeWalk(id='idle', anim='idle',speed=0,acceleration=0,flipHorizontal=True,flipWhenPlatformEnds=False, left=False))
    entity.addComponent (stateMachine)
    return entity