public MapBorder() { m_actionManager = new SingleActionManager(); m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("score_background"), m_transform); m_transform.Position = new Vector2(168, 72); pixelPlayer = new Sprite(Program.TheGame, TextureLibrary.PixelSpriteSheet, new Transform(m_transform, true)); pixelPlayer.Colour = new Vector4((float)255/(float)255, (float)251/(float)255, (float)240/(float)255, 1); pixelPlayer.Transform.PosX = -4; pixelPlayer.Transform.Scale = new Vector2(2, 2); pixelTotem = new Sprite(Program.TheGame, TextureLibrary.PixelSpriteSheet, new Transform(m_transform, true)); pixelTotem.Colour = new Vector4((float)255 / (float)255, (float)251 / (float)255, (float)240 / (float)255, 1); pixelTotem.Origin = new Vector2(0.5f, 1); pixelTotem.Transform.PosY = m_mapFloor; pixelTotem.Transform.Scale = new Vector2(2, m_mapCeiling); m_slideToScreen = new MoveToStaticAction(Program.TheGame, m_transform, positionOnScreen, 1); m_slideToScreen.Interpolator = new PSmoothstepInterpolation(); m_slideToScreen.Timer.Interval = durationSlide; m_slideOutOfScreen = new MoveToStaticAction(Program.TheGame, m_transform, positionOutOfScreen, 1); m_slideOutOfScreen.Interpolator = new PSmoothstepInterpolation(); m_slideOutOfScreen.StartPosition = positionOnScreen; m_slideOutOfScreen.Timer.Interval = durationSlide; }
public Backpacker(SpriteSheet spriteSheet, int index) : base() { m_actionManager = new SingleActionManager(); m_sprite = new Sprite(Globals.TheGame, spriteSheet, Transform); m_sprite.Origin = new Vector2(0.5f, 1.0f); m_collider = new AABBCollider(this, new AABB(m_sprite)); m_currentState = BackpackerState.Idle; }
public ScoreDisplay() { m_transform = new Transform(); m_slideIn = new MoveToStaticAction(Program.TheGame, m_transform, inPos, 1); m_slideIn.StartPosition = outPos; m_slideIn.Timer.Interval = 0.25f; m_slideIn.Interpolator = new PSmoothstepInterpolation(); m_slideOut = new MoveToStaticAction(Program.TheGame, m_transform, outPos, 1); m_slideOut.StartPosition = inPos; m_slideOut.Timer.Interval = 0.25f; m_slideOut.Interpolator = new PSmoothstepInterpolation(); m_actions = new SingleActionManager(); m_transform.Position = outPos; }
public Monster() : base() { m_spriteSheetNomNom = TextureLibrary.GetSpriteSheet("anim_monstre_miam", 8, 1); m_spriteSheetIdle = TextureLibrary.GetSpriteSheet("anim_monstre_neutre", 5, 1); m_sprite = new Sprite(Program.TheGame, m_spriteSheetIdle, m_transform); m_sprite.PixelCorrection = true; m_idle = new SpriteSheetAnimation(m_sprite, 0, 4, 3.0f, -1); m_openMouth = new SpriteSheetAnimation(m_sprite, 4, 6, 0.5f, 1); m_closeMouth = new Sequence(1); m_closeMouth.AddAction(new SpriteSheetAnimation(m_sprite, 6, 7, 0.45f, 1)); m_closeMouth.AddAction(new MethodAction(Idle)); m_actionManager = new SingleActionManager(); m_transform.Position = new Vector2(MonsterPosX, MonsterPosY); m_breathing = new MoveToStaticAction(Program.TheGame, m_transform, m_transform.Position + new Vector2(0, 3), -1); m_breathing.Interpolator = new PSineInterpolation(); m_breathing.Timer.Interval = 4.0f; m_breathing.Start(); }
public NewLevelButton() : base(new Sprite(Globals.TheGame, TextureLibrary.GetSpriteSheet("btn_newlevel", 1, 4), new Transform())) { m_animation = new SpriteSheetAnimation(m_buttonSprite, 0, 3, 0.5f, -1); m_popAction = new SingleActionManager(); //m_in = new MoveToStaticAction(Globals.TheGame, m_transform, new Vector2(150, 300), false); //m_out = new MoveToStaticAction(Globals.TheGame, m_transform, new Vector2(150, 0), false); m_transform.Position = new Vector2(150, 300); _generation = new Counter(2, TextureLibrary.GetSpriteSheet("levelscore_vertical", 20, 1)); _generation.Transform.ParentTransform = m_transform; _section = new Counter(1, TextureLibrary.GetSpriteSheet("levelscore_vertical", 20, 1)); _section.Transform.ParentTransform = m_transform; _generation.Alpha = _section.Alpha = 1.0f; _generation.ScrollSpeed = _section.ScrollSpeed = 50; }
public ScoreBorder() { m_actionManager = new SingleActionManager(); score = 0; m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("score_background"), m_transform); m_transform.Position = new Vector2(-8, 72); m_graphicScore = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("score_foreground"), new Transform(m_transform, true)); m_graphicScore.Origin = new Vector2(0.5f, 1); m_graphicScore.Transform.Position = new Vector2(0,72); m_graphicScore.Transform.SclY = 0f; m_slideToScreen = new MoveToStaticAction(Program.TheGame, m_transform, positionOnScreen, 1); m_slideToScreen.Interpolator = new PSmoothstepInterpolation(); m_slideToScreen.Timer.Interval = durationSlide; m_slideOutOfScreen = new MoveToStaticAction(Program.TheGame, m_transform, positionOutOfScreen, 1); m_slideOutOfScreen.StartPosition = positionOnScreen; m_slideOutOfScreen.Interpolator = new PSmoothstepInterpolation(); m_slideOutOfScreen.Timer.Interval = durationSlide; }
public CutscenePlayer() : base() { m_ascendSound = SoundEffectLibrary.Get("ascend").CreateInstance(); m_cloud = new Prop("cloud"); m_sword = new Prop("sword"); m_shlingSprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("shling"), new Transform(m_transform, true)); m_sprite = new PastaGameLibrary.Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("player_cutscene", 1, 4), new Transform(m_transform, true)); m_sprite.Origin = new Vector2(0.5f, 0.5f); m_sprite.PixelCorrection = false; m_moveToCrowd = new MoveToTransform(Program.TheGame, m_transform, null, null, 1); m_moveToCrowd.Timer.Interval = 0.1f; MoveToStaticAction carryMovement = new MoveToStaticAction(Program.TheGame, m_transform, new Vector2(0, CarryHeight - 5), 1); carryMovement.Interpolator = new PBounceInterpolation(1.0f); carryMovement.StartPosition = new Vector2(0, CarryHeight); carryMovement.Timer.Interval = 0.2f; MethodAction action = new MethodAction(delegate() { carryMovement.StartPosition = new Vector2(0, CarryHeight); }); Sequence bounceAnimation = new Sequence(-1); bounceAnimation.AddAction(carryMovement); bounceAnimation.AddAction(action); m_carryAnimation = new Sequence(1); m_carryAnimation.AddAction(m_moveToCrowd); m_carryAnimation.AddAction(bounceAnimation); //Sword movement Transform start = new Transform(m_transform, true); Transform end = new Transform(m_transform, true); m_swordMovement = new MoveToTransform(Program.TheGame, m_sword.Transform, start, end, 1); end.PosX = SwordOffsetToPlayerX; end.PosY = SwordOffsetToPlayerY; m_swordDelay = new DelayAction(Program.TheGame, AscendDuration * SwordStartTimeRatio); //Cloud movement m_cloudMovement = new MoveToStaticAction(Program.TheGame, m_cloud.Transform, new Vector2(CloudOffsetToPlayerX, CloudOffsetToPlayerY), 1); m_cloudMovement.StartPosition = new Vector2(CloudStartX, 0); m_cloudMovement.Interpolator = new PSquareInterpolation(0.25f); //Delay of the ascend, then sword/cloud movement Sequence swordAndCloudMovement = new Sequence(1); swordAndCloudMovement.AddAction(m_swordDelay); swordAndCloudMovement.AddAction(new Concurrent(new PastaGameLibrary.Action[] { m_swordMovement, m_cloudMovement })); m_ascendMovement = new MoveToTransform(Program.TheGame, m_transform, new Transform(), new Transform(), 1); m_ascendMovement.Interpolator = new PSquareInterpolation(0.5f); MethodAction showPlayer = new MethodAction(delegate() { m_sprite.Transform.PosY -= 1; Game1.player.ShowPlayer(); isVisible = false; m_cloud.IsVisible = false; m_sword.IsVisible = false; }); //Shling! ScaleToAction shlingScale = new ScaleToAction(Program.TheGame, m_shlingSprite.Transform, new Vector2(ShlingScale, ShlingScale), 1); shlingScale.Timer.Interval = ShlingTime; shlingScale.StartScale = Vector2.Zero; shlingScale.Interpolator = new PSquareInterpolation(2); RotateToStaticAction shlingRotate = new RotateToStaticAction(Program.TheGame, m_shlingSprite.Transform, ShlingSpin, 1); shlingRotate.Timer.Interval = ShlingTime; m_shling = new Concurrent(new PastaGameLibrary.Action[] { shlingScale, shlingRotate }); Sequence readyAnim = new Sequence(1); readyAnim.AddAction(new DelayAction(Program.TheGame, 0.5f)); readyAnim.AddAction(new MethodAction(delegate() { Cutscenes.GetReady(); SoundEffectLibrary.Get("sword_slash").Play(); })); Concurrent shlingReady = new Concurrent(new PastaGameLibrary.Action[] { m_shling, readyAnim, }); m_ascend = new Sequence(1); m_ascend.AddAction(new DelayAction(Program.TheGame, Crowd.LaunchTensionTime)); m_ascend.AddAction(new MethodAction(delegate() { m_ascendSound.Play(); })); Concurrent ascendAndSword = new Concurrent(new PastaGameLibrary.Action[] { m_ascendMovement, swordAndCloudMovement }); m_ascend.AddAction(ascendAndSword); m_ascend.AddAction(showPlayer); m_ascend.AddAction(shlingReady); m_physics = new PhysicsComponent(Program.TheGame, m_transform); m_physics.Mass = 3.0f; m_jumpFromTotem = new Sequence(1); m_decelerate = new MoveToStaticAction(Program.TheGame, m_transform, Vector2.Zero, 1); m_decelerate.Interpolator = new PSquareInterpolation(0.5f); m_jumpFromTotem.AddAction(m_decelerate); m_jumpFromTotem.AddAction(new DelayAction(Program.TheGame, 0.2f)); m_jumpFromTotem.AddAction(new MethodAction(delegate() { m_physics.OnBounce = null; m_physics.Throw(1.0f, -2.0f, 0); Game1.CurrentMusic.StopDynamicMusic(); SoundEffectLibrary.Get("sword_slash").Play(); })); m_jumpFromTotem.AddAction(new DelayAction(Program.TheGame, 0.75f)); m_jumpFromTotem.AddAction(new MethodAction(delegate() { Game1.SetupNextRound(); if (Game1.CurrentTotem == null) Cutscenes.GoToCliff(); else Cutscenes.GoToTotem(Game1.CurrentTotem, 1.0f, 0); })); m_actionManager = new SingleActionManager(); m_hitSpikes = new Sequence(1); m_moveToCrashingPlayer = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), new Transform(), 1); m_moveToCrashingPlayer.Timer.Interval = 0.2f; m_hitSpikes.AddAction(new DelayAction(Program.TheGame, 1.0f)); m_hitSpikes.AddAction(m_moveToCrashingPlayer); m_hitSpikes.AddAction(new DelayAction(Program.TheGame, 0.5f)); m_hitSpikes.AddAction(new MethodAction(delegate() { if(Game1.CurrentTotem == null) Cutscenes.GoToCliff(); else Cutscenes.GoToTotem(Game1.CurrentTotem, 1.0f, 0); m_sprite.SetFrame(0); m_physics.OnBounce = null; m_physics.Throw(0, -3, 0); m_transform.PosY = m_physics.GroundLevel; })); m_auraParticles = new ParticleSystem(Program.TheGame, 100); m_soulParticles = new ParticleSystem(Program.TheGame, 500); m_levitate = new Sequence(1); m_moveToCliffTip = new MoveToStaticAction(Program.TheGame, m_transform, new Vector2(Cutscenes.InitialCharacterPosition + 10, -8), 1); m_moveToCliffTip.Interpolator = new PSmoothstepInterpolation(); m_moveToCliffTip.Timer.Interval = 1.0f; m_levitate.AddAction(m_moveToCliffTip); m_levitate.AddAction(new MethodAction(delegate() { m_generateSouls = true; })); m_particleGenerator = new ParticleGenerator<GlitterParticle>(Program.TheGame, m_auraParticles); m_particleGenerator.Automatic = true; m_particleGenerator.GenerationInterval = 0.01f; m_soulParticleGenerator = new ParticleGenerator<SoulParticle>(Program.TheGame, m_soulParticles); m_jumpInMouth = new Sequence(1); m_jumpInMouth.AddAction(new DelayAction(Program.TheGame, 0.5f)); m_jumpInMouth.AddAction(new MethodAction(delegate() { m_generateSouls = false; })); m_jumpInMouth.AddAction(new DelayAction(Program.TheGame, 0.5f)); m_jumpInMouth.AddAction(new MethodAction(delegate() { JumpInMonsterMouth(); })); m_jumpInMouth.AddAction(new DelayAction(Program.TheGame, 0.25f)); m_jumpInMouth.AddAction(new MethodAction(delegate() { Cutscenes.monster.CloseMouth(); })); m_jumpInMouth.AddAction(new DelayAction(Program.TheGame, 2.0f)); m_jumpInMouth.AddAction(new MethodAction(delegate() { Cutscenes.crowd.PushNewGuy(); })); m_jumpInMouth.AddAction(new DelayAction(Program.TheGame, 1.0f)); m_jumpInMouth.AddAction(new MethodAction(delegate() { Cutscenes.StartMainMenu(); })); }
public FatZombie() { m_physics = new PhysicsComponent(Globals.TheGame, Transform); m_sprite = new Sprite(Globals.TheGame, TextureLibrary.GetSpriteSheet("zombie_phat", 1, 12), Transform); m_sprite.Origin = new Vector2(0.5f, 1); m_loot = Loot.GenerateLoot(12); ObjectState.BeginAction = delegate() { m_actionManager.StartNew(m_full); }; ObjectState.StandbyAction = delegate() { m_actionManager.Stop(); m_sprite.SetFrame(0); }; ObjectState.DestroyAction = delegate() { m_destructible.ClearHitEvents(); Backpacker.HitPlayerColliders.Remove(m_collider); }; m_collider = new AABBCollider(this, new AABB(m_sprite)); Backpacker.HitPlayerColliders.Add(m_collider, delegate(Collider other) { m_physics.Throw(10.0f, -10.0f, 0.1f); } ); m_destructible = new DestructibleComponent(Transform, m_collider, m_collider.AABB, HP); m_impactBox = new AABB(new Transform(Transform, true), new Vector2(72, 67)); m_impactBox.Transform.Position = new Vector2(13, -70); m_shurikenReceiver = new ShurikenReceiver(Transform, m_impactBox, 10); m_hitAnimation = new HitAnimation(World.baseEffect); m_measurer = new AABBMeasurer(new AABB(new Transform(Transform, true), new Vector2(50, 50))); m_full = new SpriteSheetAnimation(m_sprite, 0, 1, 0.7f, -1); m_noHead1 = new SpriteSheetAnimation(m_sprite, 2, 3, 0.7f, -1); m_noHead2 = new SpriteSheetAnimation(m_sprite, 4, 5, 0.7f, -1); m_noRightArm = new SpriteSheetAnimation(m_sprite, 6, 7, 0.7f, -1); m_noLeftArm = new SpriteSheetAnimation(m_sprite, 8, 9, 0.7f, -1); m_noShoulders = new SpriteSheetAnimation(m_sprite, 10, 11, 0.7f, -1); m_actionManager = new SingleActionManager(); m_actionManager.StartNew(m_full); //_projections = new BodyPart[] //{ // null, // new BodyPart(this, new Vector2(0, -55), "bp_fatshoulders"), // new BodyPart(this, new Vector2(-15, -75), "bp_basezombiearm"), // new BodyPart(this, new Vector2(-15, -75), "bp_basezombiearm"), // new BodyPart(this, new Vector2(-30, -100), "bp_fathead2"), // new BodyPart(this, new Vector2(-30, -115), "bp_fathead1"), //}; //_destroyProjections = new BodyPart[] { // new BodyPart(this, new Vector2(0, -45), "bp_fatupperb"), // new BodyPart(this, new Vector2(0, -10), "bp_fatlowerb"), //}; m_bodyParts = new ParticleSystem(Globals.TheGame, 7); m_head1 = new BodyPart(TextureLibrary.GetSpriteSheet("bp_fathead1"), new Transform(Transform, true)); m_head1.Transform.Position = new Vector2(-30, -110); m_bodyParts.AddParticle(m_head1); m_head2 = new BodyPart(TextureLibrary.GetSpriteSheet("bp_fathead2"), new Transform(Transform, true)); m_head2.Transform.Position = new Vector2(-30, -100); m_bodyParts.AddParticle(m_head2); m_shoulders = new BodyPart(TextureLibrary.GetSpriteSheet("bp_fatshoulders"), new Transform(Transform, true)); m_shoulders.Transform.Position = new Vector2(0, -80); m_bodyParts.AddParticle(m_shoulders); m_armL = new BodyPart(TextureLibrary.GetSpriteSheet("bp_basezombiearm"), new Transform(Transform, true)); m_armL.Transform.Position = new Vector2(-15, -75); m_bodyParts.AddParticle(m_armL); m_armR = new BodyPart(TextureLibrary.GetSpriteSheet("bp_basezombiearm"), new Transform(Transform, true)); m_armR.Transform.Position = new Vector2(-15, -75); m_bodyParts.AddParticle(m_armR); m_upperB = new BodyPart(TextureLibrary.GetSpriteSheet("bp_fatupperb"), new Transform(Transform, true)); m_upperB.Transform.Position = new Vector2(15, -65); m_bodyParts.AddParticle(m_upperB); m_lowerB = new BodyPart(TextureLibrary.GetSpriteSheet("bp_fatlowerb"), new Transform(Transform, true)); m_lowerB.Transform.Position = new Vector2(15, -27); m_bodyParts.AddParticle(m_lowerB); /// ///Hit events /// m_destructible.SetHitEvent(AttackType.Shuriken, OnShurikenHit); m_destructible.SetHitEvent(AttackType.Slash, OnSliceHit); /// /// Health events /// m_destructible.AddHealthEvent(7, false, new MethodAction(delegate() { m_actionManager.StartNew(m_noHead1); m_head1.Pop(-1.1f, 500, true); })); m_destructible.AddHealthEvent(6, false, new MethodAction(delegate() { m_actionManager.StartNew(m_noHead2); m_head2.Pop(-1.1f, 500, true); })); m_destructible.AddHealthEvent(5, false, new MethodAction(delegate() { m_actionManager.StartNew(m_noRightArm); m_armR.Pop(-1.1f, 500, true); })); m_destructible.AddHealthEvent(4, false, new MethodAction(delegate() { m_actionManager.StartNew(m_noLeftArm); m_armL.Pop(-1.1f, 500, true); })); m_destructible.AddHealthEvent(3, false, new MethodAction(delegate() { m_actionManager.StartNew(m_noShoulders); m_shoulders.Pop(-1.1f, 500, true); })); m_destructible.AddHealthEvent(0, false, new MethodAction(delegate() { m_upperB.Pop(-1.1f, 500, true); m_lowerB.Pop(-1.1f, 500, true); ObjectState.Destroy(); })); ObjectState.Begin(); }
public BasicZombie() : base() { m_physics = new PhysicsComponent(Globals.TheGame, Transform); m_sprite = new Sprite(Globals.TheGame, TextureLibrary.GetSpriteSheet("zombie_base", 1, 8), Transform); m_sprite.Origin = new Vector2(0.5f, 1.0f); m_loot = Loot.GenerateLoot(4); ObjectState.BeginAction = delegate() { m_actionManager.StartNew(m_full); }; ObjectState.StandbyAction = delegate() { m_actionManager.Stop(); m_sprite.SetFrame(0); }; ObjectState.DestroyAction = delegate() { m_destructible.ClearHitEvents(); Backpacker.HitPlayerColliders.Remove(m_collider); }; m_collider = new AABBCollider(this, new AABB(m_sprite)); Backpacker.HitPlayerColliders.Add(m_collider, delegate(Collider other) { m_physics.Throw(10.0f, -10.0f, 0.1f); }); m_destructible = new DestructibleComponent(Transform, m_collider, m_collider.AABB, HP); m_impactBox = new AABB(new Transform(Transform, true), new Vector2(22, 42)); m_impactBox.Transform.Position = new Vector2(13, -44); m_measurer = new AABBMeasurer(m_impactBox); m_shurikenReceiver = new ShurikenReceiver(Transform, m_impactBox, 5); m_hitAnimation = new HitAnimation(World.baseEffect); m_full = new SpriteSheetAnimation(m_sprite, 0, 1, 0.5f, -1); m_noHead = new SpriteSheetAnimation(m_sprite, 2, 3, 0.5f, -1); m_noLeftArm = new SpriteSheetAnimation(m_sprite, 4, 5, 0.5f, -1); m_noRightArm = new SpriteSheetAnimation(m_sprite, 6, 7, 0.5f, -1); m_actionManager = new SingleActionManager(); //Transform headTransform = new Transform(Transform, true //_projections = new BodyPart[] { // null, // new BodyPart(this, new Vector2(0, -65), "bp_basezombiearm"), // new BodyPart(this, new Vector2(-10, -55), "bp_basezombiearm"), // new BodyPart(this, new Vector2(15, -75), "bp_basezombiehead"), // new BodyPart(this, new Vector2(10, -50), "bp_basezombieupperb"), // new BodyPart(this, new Vector2(10, -10), "bp_basezombielowerb") //}; /// /// Body Parts /// m_bodyParts = new ParticleSystem(Globals.TheGame, 5); m_head = new BodyPart(TextureLibrary.GetSpriteSheet("bp_basezombiehead"), new Transform(Transform, true)); m_head.Transform.Position = new Vector2(5, -50); m_bodyParts.AddParticle(m_head); m_armL = new BodyPart(TextureLibrary.GetSpriteSheet("bp_basezombiearm"), new Transform(Transform, true)); m_armL.Transform.Position = new Vector2(5, -30); m_bodyParts.AddParticle(m_armL); m_armR = new BodyPart(TextureLibrary.GetSpriteSheet("bp_basezombiearm"), new Transform(Transform, true)); m_armR.Transform.Position = new Vector2(-5, -30); m_bodyParts.AddParticle(m_armR); m_upperB = new BodyPart(TextureLibrary.GetSpriteSheet("bp_basezombieupperb"), new Transform(Transform, true)); m_upperB.Transform.Position = new Vector2(0, -30); m_bodyParts.AddParticle(m_upperB); m_lowerB = new BodyPart(TextureLibrary.GetSpriteSheet("bp_basezombielowerb"), new Transform(Transform, true)); m_lowerB.Transform.Position = new Vector2(0, -10); m_bodyParts.AddParticle(m_lowerB); /// ///Hit events /// m_destructible.SetHitEvent(AttackType.Shuriken, OnShurikenHit); m_destructible.SetHitEvent(AttackType.Slash, OnSliceHit); /// /// Health events /// m_destructible.AddHealthEvent(3, false, new MethodAction(delegate() { m_actionManager.StartNew(m_noHead); m_head.Pop(-1.1f, 500, true); })); m_destructible.AddHealthEvent(2, false, new MethodAction(delegate() { m_actionManager.StartNew(m_noLeftArm); m_armL.Pop(-1.1f, 500, true); })); m_destructible.AddHealthEvent(1, false, new MethodAction(delegate() { m_actionManager.StartNew(m_noRightArm); m_armR.Pop(-1.1f, 500, true); })); m_destructible.AddHealthEvent(0, false, new MethodAction(delegate() { m_upperB.Pop(-1.1f, 500, true); m_lowerB.Pop(-1.1f, 500, true); ObjectState.Destroy(); })); ObjectState.Begin(); }