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 coin(x: float, y: float):
    a = Sprite(model='pickupcoin',
               pos=[x * vars.tileSize, y * vars.tileSize, 1])
    a.addComponent(
        compo.SmartCollider(flag=vars.flags.foe,
                            mask=vars.flags.player,
                            tag=vars.tags.coin))
    return a
Exemplo n.º 3
0
 def f(args):
     a = Sprite(model='door',
                pos=[args[0] * vars.tileSize, args[1] * vars.tileSize, -1])
     a.addComponent(
         Collider(flag=vars.flags.foe,
                  mask=vars.flags.player,
                  tag=vars.tags.door,
                  shape=sh.Rect(vars.tileSize, vars.tileSize * 2)))
     a.addComponent(Info(var=args[2], world=args[3], start=args[4]))
     return a
Exemplo n.º 4
0
def mushroom(x: float, y: float):
    a = Sprite(model='mushroom',
               pos=[x * vars.tileSize, y * vars.tileSize, -0.1])
    a.addComponent(
        SmartCollider(flag=vars.flags.foe,
                      mask=vars.flags.player,
                      tag=vars.tags.mushroom))
    a.addComponent(
        Controller2D(maskUp=vars.flags.platform,
                     maskDown=vars.flags.platform
                     | vars.flags.platform_passthrough,
                     maxClimbAngle=80,
                     maxDescendAngle=80))
    a.addComponent(Dynamics2D(gravity=vars.gravity))
    stateMachine = StateMachine(initialState='idle')
    stateMachine.states.append(SimpleState(id='idle', anim='walk'))
    stateMachine.states.append(
        FoeWalk(id='walk',
                anim='walk',
                speed=30,
                acceleration=0,
                flipHorizontal=False,
                flipWhenPlatformEnds=False,
                left=1))
    a.addComponent(stateMachine)
    return a
Exemplo n.º 5
0
 def f(args):
     props = prop[1]
     model = props['model']
     fliph = props['fliph']
     flipp = props['flipAtPlatformEnd']
     speed = props.get('speed', 20)
     goomba = Sprite(
         model=model,
         pos=[args[0] * vars.tileSize, args[1] * vars.tileSize, -0.1])
     goomba.addComponent(
         SmartCollider(flag=vars.flags.foe,
                       mask=vars.flags.player,
                       tag=vars.tags.koopa))
     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))
     goomba.addComponent(ScriptPlayer())
     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='walk2',
                 anim='hide',
                 speed=200,
                 acceleration=0,
                 flipHorizontal=fliph,
                 flipWhenPlatformEnds=flipp,
                 left=1))
     stateMachine.states.append(
         FoeWalk(id='hide',
                 anim='hide',
                 speed=0,
                 acceleration=0,
                 flipHorizontal=fliph,
                 flipWhenPlatformEnds=flipp,
                 left=1))
     goomba.addComponent(stateMachine)
     return goomba
Exemplo n.º 6
0
def _brick(x, y, model, hits, callback):
    a = Sprite(model=model, pos=[x * vars.tileSize, y * vars.tileSize, 0])
    a.addComponent(
        Collider(flag=vars.flags.platform,
                 mask=0,
                 tag=0,
                 shape=sh.Rect(width=vars.tileSize, height=vars.tileSize)))
    a.addComponent(Info(hitsLeft=hits, callback=callback))
    b = Entity()
    b.pos = [2, -0.5, 0]
    b.addComponent(
        Collider(flag=vars.flags.foe,
                 mask=vars.flags.player,
                 tag=vars.tags.bonus_brick_sensor,
                 shape=sh.Rect(width=vars.tileSize - 4, height=1.0)))
    a.add(b)
    return a
Exemplo n.º 7
0
 def f(args):
     model = props[1]
     x = args[0]
     y = args[1]
     a = Sprite(model = model)
     a.addComponent (Collider (flag = vars.flags.platform, mask = 0, tag = 0, shape = sh.Rect(width=vars.tileSize, height=vars.tileSize)))
     a.pos = [x * vars.tileSize, y * vars.tileSize, 0]
     a.addComponent (Info(piece = props[2]))
     b = Entity()
     b.pos = [2, -0.5, 0]
     b.addComponent (Collider (
         flag=vars.flags.foe,
         mask=vars.flags.player,
         tag = vars.tags.brick_sensor,
         shape = sh.Rect(width = vars.tileSize-4, height = 1.0)
     ))
     a.add(b)
     return a    
Exemplo n.º 8
0
def makeBrick(model: str, x: float, y: float):
    a = Sprite(model=model)
    a.addComponent(
        compo.Collider(flag=vars.flags.platform,
                       mask=0,
                       tag=0,
                       shape=sh.Rect(width=vars.tileSize,
                                     height=vars.tileSize)))
    a.pos = [x * vars.tileSize, y * vars.tileSize]

    b = Entity()
    b.pos = [2, -0.5, 0]
    b.addComponent(
        compo.Collider(flag=vars.flags.foe,
                       mask=vars.flags.player,
                       tag=vars.tags.brick_sensor,
                       shape=sh.Rect(width=vars.tileSize - 4, height=1.0)))
    a.add(b)
    return a
Exemplo n.º 9
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
Exemplo n.º 10
0
def _fire(a: example.Wrap1, state: str):
    if vars.state >= 2:
        a.setState(state, {})
        b = Sprite(model='fire',
                   pos=[a.x + (-2 if a.flipx else 2), a.y + 16, 0])
        b.flipx = a.flipx
        b.addComponent(
            Controller2D(maskUp=vars.flags.platform,
                         maskDown=vars.flags.platform
                         | vars.flags.platform_passthrough,
                         maxClimbAngle=80,
                         maxDescendAngle=80))
        b.addComponent(GarbageCollect(10))
        b.addComponent(Dynamics2D(gravity=vars.gravity))
        b.addComponent(
            SmartCollider(flag=vars.flags.player_attack,
                          mask=vars.flags.foe | vars.flags.platform,
                          tag=vars.tags.player_fire))
        sm = StateMachine(initialState='jmp')
        sm.states.append(Bounce(id='jmp', speed=300, a=0, b=200))
        b.addComponent(sm)
        id = example.get('main').add(b)
Exemplo n.º 11
0
def bonusBrick(model: str,
               x: float,
               y: float,
               callback: callable,
               hits: int = 1):
    a = Sprite(model=model, pos=[x * vars.tileSize, y * vars.tileSize, 0])
    a.addComponent(
        compo.Collider(flag=vars.flags.platform,
                       mask=0,
                       tag=0,
                       shape=sh.Rect(width=vars.tileSize,
                                     height=vars.tileSize)))
    a.addComponent(compo.Info(hitsLeft=hits, callback=callback))
    b = Entity()
    b.pos = [2, -0.5, 0]
    b.addComponent(
        compo.Collider(flag=vars.flags.foe,
                       mask=vars.flags.player,
                       tag=vars.tags.bonus_brick_sensor,
                       shape=sh.Rect(width=vars.tileSize - 4, height=1.0)))
    a.add(b)
    return a
Exemplo n.º 12
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.º 13
0
def makePlayer(model: str, x: float, y: float):
    player = Sprite(model=model,
                    pos=[x * vars.tileSize, y * vars.tileSize],
                    tag='player')
    player.addComponent(
        SmartCollider(flag=vars.flags.player,
                      mask=vars.flags.foe | vars.flags.foe_attack,
                      tag=vars.tags.player))
    player.addComponent(
        Controller2D(maskUp=vars.flags.platform,
                     maskDown=vars.flags.platform
                     | vars.flags.platform_passthrough,
                     maxClimbAngle=80,
                     maxDescendAngle=80))
    speed = 75
    player.addComponent(Dynamics2D(gravity=vars.gravity))
    stateMachine = StateMachine(initialState='walk')
    stateMachine.states.append(SimpleState(id='dead', anim='dead'))
    stateMachine.states.append(
        WalkSide(id='walk',
                 speed=200,
                 acceleration=0.05,
                 jumpSpeed=vars.jump_velocity,
                 keys=[
                     [90, StateCallback(f=scripts.fire)],
                     [264, StateCallback(f=scripts.enterPipe)],
                 ],
                 flipHorizontal=True))
    stateMachine.states.append(
        Jump(id='jump',
             speed=200,
             acceleration=0.10,
             keys=[
                 [90, StateCallback(f=scripts.firej)],
             ],
             flipHorizontal=True,
             animUp='jump',
             animDown='jump'))
    stateMachine.states.append(Attack(id='attack1', anim='fire'))
    stateMachine.states.append(
        JumpAttack(id='attack2',
                   anim='fire',
                   speed=200,
                   acceleration=0.10,
                   flipHorizontal=True))
    stateMachine.states.append(
        FoeWalk(id='demo',
                anim='walk',
                speed=75,
                acceleration=0.05,
                flipHorizontal=True,
                flipWhenPlatformEnds=False,
                left=1))
    stateMachine.states.append(SimpleState(id='pipe', anim='idle'))
    stateMachine.states.append(SimpleState(id='slide', anim='slide'))
    player.addComponent(stateMachine)
    player.addComponent(KeyInput())
    player.addComponent(Follow())
    return player
Exemplo n.º 14
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