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
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
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
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