public PauseScreen() { isGamePaused = false; m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("pause"), m_transform); m_sprite.Transform.Position = new Vector2(80, 72); m_sprite.Transform.Scale = new Vector2(0); }
public static void InitialiseIndexes() { particleTextures[0] = TextureLibrary.GetSpriteSheet("totem_particle_1"); particleTextures[1] = TextureLibrary.GetSpriteSheet("totem_particle_2"); particleTextures[2] = TextureLibrary.GetSpriteSheet("totem_particle_3"); particleTextures[3] = TextureLibrary.GetSpriteSheet("totem_particle_4"); }
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; }
// TODO NOTE // Si besoin de créer des particules, il faut un générateur de particules ( ParticleGenerator<ClasseDeParticle> ) /* * "J'ai un système de particules statique deans Game1, Il te faut un générateur de particules pour créer des particules" */ public Soul(Vector2 initialPosition, Player player) { //m_transform.ParentTransform = player.Transform; m_playerInstance = player; m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("soul"), m_transform); Vector2 explodePosition; if (player.IsToLeft) { explodePosition.X = player.Transform.PosX + Program.Random.Next(-72, -20); } else { explodePosition.X = player.Transform.PosX + Program.Random.Next(20, 73); } explodePosition.Y = Program.Random.Next((int)player.Transform.PosY + 50, (int)(player.Transform.PosY + 50 + ExplosionBreadth * m_playerInstance.SpeedMultiplier)); MoveToStaticAction moveToExplosionPoint = new MoveToStaticAction(Program.TheGame, m_transform, explodePosition, 1); moveToExplosionPoint.StartPosition = initialPosition; moveToExplosionPoint.Timer.Interval = BaseExplosionDuration / player.SpeedMultiplier; moveToExplosionPoint.Interpolator = new PSmoothstepInterpolation(); m_moveToPlayer = new MoveToStaticAction(Program.TheGame, m_transform, explodePosition, 1); m_moveToPlayer.StartPosition = explodePosition; m_moveToPlayer.Interpolator = new PSquareInterpolation(1); m_moveToPlayer.Timer.Interval = MoveToPlayerTime; m_animation = new Sequence(1); m_animation.AddAction(moveToExplosionPoint); m_animation.AddAction(new DelayAction(Program.TheGame, (float)(Program.Random.NextDouble() * 0.5f + 0.1f) / m_playerInstance.SpeedMultiplier)); m_animation.AddAction(m_moveToPlayer); m_animation.Start(); }
public override void Update() { if (activeTimer) { timer = (float)Program.TheGame.ElapsedTime; //timer += (float)gameTime.ElapsedGameTime.TotalMilliseconds; timeCounter -= timer; if (timeCounter < 1.0f) { m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("counter_2"), m_transform); } if (timeCounter < 0.5f) { m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("counter_1"), m_transform); } if (timeCounter < 0) { activeTimer = false; m_sprite.Transform.Scale = new Vector2(0); countdownHasFinished = true; Game1.scoreBorder.Slide(true); Game1.mapBorder.Slide(true); OnFinish(); } } }
public void SetCounter(int combo, bool triggerAnimation) { if (combo == 0) { m_transform.SclX = 0; return; } if (combo > Game1.scoreBorder.ScoreMultiplierMax) { combo = Game1.scoreBorder.ScoreMultiplierMax; } string comboIndex = "multiplier_x" + player.ComboCount.ToString(); // TODO Limiter le counter par rapport au sprite // if (combo > Game1.scoreBorder.ScoreMultiplierMax) { m_sprite.SpriteSheet = TextureLibrary.GetSpriteSheet("multiplier_x" + Game1.scoreBorder.ScoreMultiplierMax); } else { m_sprite.SpriteSheet = TextureLibrary.GetSpriteSheet(comboIndex); } if (triggerAnimation) { m_bump.StartScale = new Vector2(2.1f, 2.1f); m_bump.Restart(); } }
public void OnHit() { Transform transform = new Transform(m_transform, true); Sprite impactSprite = new Sprite(Globals.TheGame, TextureLibrary.GetSpriteSheet("shuriken_impact"), transform); transform.Position = m_shurikenBounds.GetRandomPoint(Globals.Random) - m_transform.PositionGlobal; transform.Direction = m_helper.GetAngle(m_shurikenBounds.Transform, transform); //transform.Direction += Globals.Random.NextDouble() - 0.5; Transform impactEffectTransform = new Transform(transform); impactEffectTransform.ScaleUniform = 6; impactEffectTransform.Direction += 0.5f; m_hitParticles.AddParticle(new ImpactEffect(impactEffectTransform, ImpactTexture, 0.15f)); double distance = m_helper.GetDistance(m_shurikenBounds.Transform.PositionGlobal, transform.PositionGlobal); transform.SclX = (float)(distance / m_shurikenBounds.Radius) + 0.2f; transform.SclY = 1 + (float)(Globals.Random.NextDouble() * 0.5); if (currentIndex == m_impacts.Length) { currentIndex = 0; } m_impacts[currentIndex] = impactSprite; currentIndex++; }
public MenuScreen() { isActive = false; isHidden = true; canLauchChallenge = false; menuSound = SoundEffectLibrary.Get("cursor").CreateInstance(); m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("menu_start_bg"), m_transform); m_sprite.Transform.Position = outPos; arrow = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("arrow"), new Transform(m_transform, true)); moveTo = new MoveToStaticAction(Program.TheGame, m_transform, inPos, 1); moveTo.StartPosition = new Vector2(80, 200); moveTo.Interpolator = new PSmoothstepInterpolation(); moveTo.Timer.Interval = 0.5f; moveOut = new MoveToStaticAction(Program.TheGame, m_transform, outPos, 1); moveOut.StartPosition = inPos; moveOut.Interpolator = new PSmoothstepInterpolation(); moveOut.Timer.Interval = 0.5f; choice = MenuState.START; challengeChoice = ChallengeState.CHALL_1; }
public PowerUp(int index, bool isToLeft) { indexTotemToPlacePowerUp = index; m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("power_up"), m_transform); isPickedUp = false; this.isToLeft = isToLeft; }
public Bg_Cloud_Long(int depth) : base(TextureLibrary.GetSpriteSheet("bg_cloudlong"), depth) { //_placementOffset = new Vector2(100, 24); m_sprite.Alpha = 0.2f; m_placementJitter = new Vector2(600, 100); Transform.Scale = new Vector2(2.0f, 2.0f); }
public Prop(string textureName) : base() { m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet(textureName), new Transform(m_transform, true)); m_sprite.Transform.Direction = Math.PI * 10; Physics = new PhysicsComponent(Program.TheGame, m_sprite.Transform); Physics.OnBounce = delegate() { IsVisible = false; }; }
public void resetCountdown() { timer = 0; timeCounter = TimerMaxValue; activeTimer = false; countdownHasFinished = false; m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("counter_3"), m_transform); }
public Countdown() { timer = 0; activeTimer = false; countdownHasFinished = false; m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("counter_3"), m_transform); m_sprite.Transform.Position = new Vector2(Game1.GameboyWidth / 2, Game1.GameboyHeight / 2); m_sprite.Transform.Scale = new Vector2(); }
public void ShowMenu() { choice = MenuState.START; actionManager.StartNew(moveTo); isActive = true; isHidden = false; m_transform.ScaleUniform = 1.0f; m_sprite.SpriteSheet = TextureLibrary.GetSpriteSheet("menu_start_bg"); m_transform.Position = outPos; }
public Individual(Crowd crowd, Vector2 positionInCrowd) : base() { m_transform.Position = positionInCrowd; m_transform.ParentTransform = crowd.Transform; m_spriteTransform = new Transform(); m_jumpTransform = new PastaGameLibrary.Transform(m_spriteTransform, true); m_sprite = new PastaGameLibrary.Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("perso_foule"), m_jumpTransform); m_sprite.Origin = new Vector2(0.5f, 1.0f); m_saut = new Sequence(-1); /// ///Jump animation /// Vector2 jumpTarget = new Vector2(0, (float)(Program.Random.NextDouble() * JumpHeight * 0.5 + JumpHeight * 0.5)); float movementTime = (float)(Program.Random.NextDouble() * 0.5 * JumpMovementTime + JumpMovementTime * 0.5); MoveToStaticAction jumpMovement = new MoveToStaticAction(Program.TheGame, m_jumpTransform, jumpTarget, 1); jumpMovement.Timer.Interval = movementTime; jumpMovement.Interpolator = new PBounceInterpolation(0); m_saut.AddAction(jumpMovement); m_saut.AddAction(new DelayAction(Program.TheGame, TotalJumpTime - movementTime)); /// ///Walk animation /// m_walk = new MoveToStaticAction(Program.TheGame, m_jumpTransform, new Vector2(0, 1), -1); m_walk.Timer.Interval = (float)Program.Random.NextDouble() * WalkAnimationTime * 0.5f + WalkAnimationTime * 0.5f; m_walk.Interpolator = new BooleanInterpolation(); /// ///Throw player animation /// m_throw = new Sequence(1); float intensity = 1 - Math.Min(1, m_transform.Position.Length() * 0.02f); m_throwStretch = new ScaleToAction(Program.TheGame, m_jumpTransform, new Vector2(1.0f, 1 - intensity * 0.5f), 1); m_throwStretch.Interpolator = new PSmoothstepInterpolation(); ScaleToAction throwDestretch = new ScaleToAction(Program.TheGame, m_jumpTransform, new Vector2(1.0f, 1.0f), 1); throwDestretch.Timer.Interval = 0.1f; m_throw.AddAction(m_throwStretch); MoveToStaticAction throwMovement = new MoveToStaticAction(Program.TheGame, m_jumpTransform, Vector2.Zero, 1); throwMovement.StartPosition = new Vector2(0, -20 - 30 * intensity); throwMovement.Timer.Interval = 0.4f; throwMovement.Interpolator = new PBounceInterpolation(0, 1); m_throw.AddAction(new Concurrent(new PastaGameLibrary.Action[] { throwMovement, throwDestretch })); m_actionManager = new SingleActionManager(); }
public Shuriken() : base() { m_attack = new AttackComponent(1.0f, 0.1f); m_sprite = new Sprite(Globals.TheGame, TextureLibrary.GetSpriteSheet("atk_shuriken", 1, 5), m_transform); m_sprite.Origin = new Vector2(0.5f, 0.0f); m_transform.Scale = new Vector2(3.0f, 3.0f); m_animation = new SpriteSheetAnimation(m_sprite, 0, 4, 0.1f, 1); m_pointCollider = new PointCollider(m_attack, Transform); World.UL_Global.Add(this, 0); World.DL_Foreground.Add(this, 0); }
public static void Initialise(InsoGame insoGame) { theGame = insoGame; Backgrounds = new BackgroundObjectLibrary(); TextureLibrary.Initialise(theGame.GraphicsDevice); debugFont = insoGame.Content.Load <SpriteFont>("Spritefonts/debug"); EarthTile.GroundSectionTextures = new SpriteSheet[] { TextureLibrary.GetSpriteSheet("section"), }; ShurikenReceiver.ImpactTexture = TextureLibrary.GetSpriteSheet("shuriken_impacteffect", 1, 4); //Destructible.MiniFireTexture = TextureLibrary.GetSpriteSheet("minifire", 1, 4); //FireworkSpark.SparkTexture = InsoGame.Pixel; //FireworkBlast.ParticleTextures = new SpriteSheet[] { // TextureLibrary.GetSpriteSheet("firework_blastp"), // TextureLibrary.GetSpriteSheet("firework_blastp_2"), // TextureLibrary.GetSpriteSheet("firework_blastp_3"), // TextureLibrary.GetSpriteSheet("firework_blastp_4"), // TextureLibrary.GetSpriteSheet("firework_blastp_5"), //}; //FireworkBlastParticle.BackgroundTexture = TextureLibrary.GetSpriteSheet("firework_blastp_b"); //FireworkBlast.HaloTexture = TextureLibrary.GetSpriteSheet("firework_halo"); //PointDigit.IndicatorTexture = TextureLibrary.GetSpriteSheet("counter_vertical"); //House.GroundTexture = TextureLibrary.GetSpriteSheet("section_1"); //Tpl_Enemy.DefaultThumbnail = TextureLibrary.GetSpriteSheet("thb_default"); //BurnSmoke.SmokeTexture = TextureLibrary.GetSpriteSheet("smoke1"); //Confetti.ConfettiTexture = TextureLibrary.GetSpriteSheet("confetti", 1, 4); Coin.CoinTextures = new SpriteSheet[] { TextureLibrary.GetSpriteSheet("coin_copper", 1, 6), TextureLibrary.GetSpriteSheet("coin_silver", 1, 6), TextureLibrary.GetSpriteSheet("coin_gold", 1, 6), }; //StackCoin.StackCoinTextures = new Texture2D[] //{ // TextureLibrary.GetSpriteSheet("coin_copper_pile"), // TextureLibrary.GetSpriteSheet("coin_silver_pile"), // TextureLibrary.GetSpriteSheet("coin_gold_pile"), //}; //Ts_BaseZombie.ZombieTombStoneTextures = new Texture2D[] //{ // TextureLibrary.GetSpriteSheet("ts_bz_1"), // TextureLibrary.GetSpriteSheet("ts_bz_2"), //}; }
public Title() : base() { m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("titre_anime", 4, 1), m_transform); m_animation = new SpriteSheetAnimation(m_sprite, 0, 3, 1.0f, -1); m_animation.Start(); m_physics = new PhysicsComponent(Program.TheGame, m_transform); m_physics.GroundLevel = (int)TitleY; m_physics.Mass = 4; m_moveTo = new MoveToStaticAction(Program.TheGame, m_transform, new Vector2(TitleX, -100), 1); m_moveTo.Interpolator = new PSmoothstepInterpolation(); m_moveTo.Timer.Interval = 0.4f; m_transform.Position = new Vector2(TitleX, -100); }
public static void Initialise() { s_transform = new Transform(); Backpackers[0] = new Backpacker(TextureLibrary.GetSpriteSheet("backpacker_0", 1, 8), 0); Backpackers[1] = new Backpacker(TextureLibrary.GetSpriteSheet("backpacker_1", 1, 8), 1); Backpackers[2] = new Backpacker(TextureLibrary.GetSpriteSheet("backpacker_2", 1, 8), 2); for (int i = 0; i < Backpackers.Length; ++i) { World.DL_Backpackers.Add(Backpackers[i], 0); World.UL_Global.Add(Backpackers[i], 0); } InitialiseMovingOutAnimation(); }
public ComboCounter(Player player) { m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("multiplier_x1"), m_transform); m_sprite.Transform.Position = new Vector2(Game1.GameboyWidth / 2, Game1.GameboyHeight / 2 + 20); m_sprite.Transform.Scale = new Vector2(0); m_bump = new ScaleToAction(Program.TheGame, m_transform, new Vector2(2.3f, 2.3f), 1); m_bump.Interpolator = new PBounceInterpolation(0); m_bump.Timer.Interval = 0.2f; this.player = player; initialWidth = 37; m_sprite.SourceRectangle = new Rectangle(0, 0, 0, (int)m_sprite.Height); m_sprite.Origin = new Vector2(0f, 0.5f); }
public void ExecuteStartAction() { // Start challenges // if (choice == MenuState.CHALLENGE_CHOICE && canLauchChallenge) { HideMenu(); Program.TheGame.LoadLevel((int)challengeChoice); //Game1.totem.BuildFromFile("Level1_p1"); //Game1.scoreBorder.ScoreBarMaxValue = Game1.scoreBorder.calculateScoreMax(); //Game1.mapBorder.setTopTotem(); canLauchChallenge = false; Game1.SetupNextLevel(); Cutscenes.GoToTotem(Game1.CurrentTotem, 0.5f, -40); Cutscenes.title.Dissappear(); //Cutscenes.GoToTotem(Game1.CurrentTotem, 3.0f); } // Start random game // if (choice == MenuState.START) { HideMenu(); Program.TheGame.LoadRandomLevel(); Game1.SetupNextLevel(); canLauchChallenge = false; //Game1.SetupNextLevel(); Cutscenes.GoToTotem(Game1.CurrentTotem, 0.5f, -40); Cutscenes.title.Dissappear(); //// Set informations for slides //// //Game1.scoreBorder.ScoreBarMaxValue = Game1.scoreBorder.calculateScoreMax(); //Game1.mapBorder.setTopTotem(); //Cutscenes.GoToTotem(Game1.totem); } if (choice == MenuState.CHALLENGES) { choice = MenuState.CHALLENGE_CHOICE; m_sprite.SpriteSheet = TextureLibrary.GetSpriteSheet("menu_chall_bg"); arrow.Transform.Position = new Vector2(-47, 7); canLauchChallenge = true; } }
public void OnHit(Vector2 position) { Transform transform = new Transform(m_transform, true); Sprite impactSprite = new Sprite(Globals.TheGame, TextureLibrary.GetSpriteSheet("shuriken_impact"), transform); transform.Position = position - m_transform.PositionGlobal; transform.Direction = Globals.Random.NextDouble(); //transform.Direction += Globals.Random.NextDouble() - 0.5; transform.SclX = 1 + (float)(Globals.Random.NextDouble() * 0.5) + 0.5f; if (currentIndex == m_impacts.Length) { currentIndex = 0; } m_impacts[currentIndex] = impactSprite; currentIndex++; }
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 MetalSection(SectionType type) : base(type) { m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("totem_sprite_1"), m_transform); m_sprite.Origin = TotemSection.spriteOrigin; bool left = type == SectionType.Left || type == SectionType.Bilateral; bool right = type == SectionType.Right || type == SectionType.Bilateral; if (left) { m_metalSpriteLeft = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("totem_sprite_metal_left"), new Transform(m_transform, true)); m_metalSpriteLeft.Transform.PosX = -3; m_metalSpriteLeft.Origin = TotemSection.spriteOrigin; } if (right) { m_metalSpriteRight = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("totem_sprite_metal_right"), new Transform(m_transform, true)); m_metalSpriteRight.Transform.PosX = 3; m_metalSpriteRight.Origin = TotemSection.spriteOrigin; } }
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 SpikeSection(SectionType type) : base(type) { m_sprite = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("totem_sprite_1"), m_transform); m_sprite.Origin = TotemSection.spriteOrigin; bool left = type == SectionType.Left || type == SectionType.Bilateral; bool right = type == SectionType.Right || type == SectionType.Bilateral; if (left) { m_spikeSpriteLeft = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("totem_sprite_spikes_left_1"), new Transform(m_transform, true)); //m_spikeSpriteLeft.Transform.PosX = -4; m_spikeSpriteLeft.Transform.PosX = -19; m_spikeSpriteLeft.Origin = TotemSection.spriteOrigin; } if (right) { m_spikeSpriteRight = new Sprite(Program.TheGame, TextureLibrary.GetSpriteSheet("totem_sprite_spikes_right_1"), new Transform(m_transform, true)); m_spikeSpriteRight.Origin = TotemSection.spriteOrigin; //m_spikeSpriteRight.Transform.PosX = 4; m_spikeSpriteRight.Transform.PosX = 19; } }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { TextureLibrary.LoadContent(Content, "Textures"); TextureLibrary.Initialise(GraphicsDevice); Explosion.InitialiseIndexes(); debugText = Content.Load <SpriteFont>("Text/Debug"); menuText = Content.Load <SpriteFont>("Text/Menu"); SoundEffectLibrary.LoadContent(Content, "SoundEffects"); m_drawer = new GameboyDrawer(this); GameCamera = new Camera2D(new Vector2(GameboyWidth * 0.5f, GameboyHeight * 0.5f)); GameCamera.ScaleToZoom = true; // Totem // //LoadLevel(1); //totems[0] = new Totem(); ////testTotem.BuildFromFile("Level1_p1"); //totems[0].AddSections(new SectionData(typeof(NormalSection), 0, 0, 30)); //totems[0].AddSections(new SectionData(typeof(MetalSection), 10, 10, 7)); //totems[0].AddSections(new SectionData(typeof(SpikeSection), 4, 4, 7)); //totems[0].BuildRandom(); //totems[0].Transform.PosX = 100; // Player initialisation // player = new Player(); // Pause screen & GUI initialisation // menuScreen = new MenuScreen(); pauseScreen = new PauseScreen(); startingCountdown = new Countdown(); scoreBorder = new ScoreBorder(); mapBorder = new MapBorder(); comboCounter = new ComboCounter(player); scoreDisplay = new ScoreDisplay(); // Background textures // m_falaise = new Sprite(this, TextureLibrary.GetSpriteSheet("decors_sol_falaise"), new Transform()); m_falaise.Origin = new Vector2(0, 0.32f); m_falaise.Transform.PosX = -235; m_falaise.Transform.PosY = 8; // Sound & musics // normalTotemCollisionSound_Channel1 = SoundEffectLibrary.Get("normal_collision_sound").CreateInstance(); normalTotemCollisionSound_Channel1.Volume = 0.6f; normalTotemCollisionSound_Channel2 = SoundEffectLibrary.Get("normal_collision_sound").CreateInstance(); normalTotemCollisionSound_Channel2.Volume = 0.6f; metalTotemCollisionSound_Channel1 = SoundEffectLibrary.Get("metal_collision_sound").CreateInstance(); metalTotemCollisionSound_Channel2 = SoundEffectLibrary.Get("metal_collision_sound").CreateInstance(); swordSlashSound = SoundEffectLibrary.Get("sword_slash").CreateInstance(); moveLeftToRightSound = SoundEffectLibrary.Get("move_left_to_right").CreateInstance(); moveLeftToRightSound.Volume = 0.6f; moveRightToLeftSound = SoundEffectLibrary.Get("move_right_to_left").CreateInstance(); moveRightToLeftSound.Volume = 0.6f; spikeHitSound = SoundEffectLibrary.Get("spike_hit").CreateInstance(); groundImpact = SoundEffectLibrary.Get("ground_slam").CreateInstance(); footsteps = SoundEffectLibrary.Get("footsteps").CreateInstance(); footsteps.IsLooped = true; menuMusic = SoundEffectLibrary.Get("music_menu").CreateInstance(); successJingle = SoundEffectLibrary.Get("success_jingle").CreateInstance(); feedback_powerUp = SoundEffectLibrary.Get("feedback_powerup").CreateInstance(); feedback_combo3 = SoundEffectLibrary.Get("feedback_combo3").CreateInstance(); feedback_combo3.Volume = 0.2f; feedback_combo6 = SoundEffectLibrary.Get("feedback_combo6").CreateInstance(); feedback_combo6.Volume = 0.3f; feedback_combo9 = SoundEffectLibrary.Get("feedback_combo9").CreateInstance(); feedback_combo9.Volume = 0.4f; feedback_comboBreaker = SoundEffectLibrary.Get("feedback_comboBreaker").CreateInstance(); feedbackLock = true; isComboBreakerSoundPossible = false; musicT4P1L1 = SoundEffectLibrary.Get("music_T4P1L1").CreateInstance(); musicT4P1L2 = SoundEffectLibrary.Get("music_T4P1L2").CreateInstance(); musicT4P1L3 = SoundEffectLibrary.Get("music_T4P1L3").CreateInstance(); musicT4P1L4 = SoundEffectLibrary.Get("music_T4P1L4").CreateInstance(); musicT4P2L1 = SoundEffectLibrary.Get("music_T4P2L1").CreateInstance(); musicT4P2L2 = SoundEffectLibrary.Get("music_T4P2L2").CreateInstance(); musicT4P2L3 = SoundEffectLibrary.Get("music_T4P2L3").CreateInstance(); musicT4P2L4 = SoundEffectLibrary.Get("music_T4P2L4").CreateInstance(); musicT4P3L1 = SoundEffectLibrary.Get("music_T4P3L1").CreateInstance(); musicT4P3L2 = SoundEffectLibrary.Get("music_T4P3L2").CreateInstance(); musicT4P3L3 = SoundEffectLibrary.Get("music_T4P3L3").CreateInstance(); musicT4P3L4 = SoundEffectLibrary.Get("music_T4P3L4").CreateInstance(); //dynamicMusic = new DynamicMusic(musicT1P1L1, musicT1P1L2, musicT1P1L3, musicT1P1L4); //dynamicMusic = new DynamicMusic(musicT1P2L1, musicT1P2L2, musicT1P2L3, musicT1P2L4); //dynamicMusic = new DynamicMusic(musicT4P2L1, musicT4P2L2, musicT4P2L3, musicT4P2L4); //dynamicMusic = new DynamicMusic(musicT4P3L1, musicT4P3L2, musicT4P3L3, musicT4P3L4); //Foule et joueur porté Cutscenes.Initalise(); Cutscenes.Intro(); SetupNextLevel(); }
public static void Initalise() { cutscenePlayer = new CutscenePlayer(); cutscenePlayer.Transform.PosX = -100; monster = new Monster(); crowd = new Crowd(40, 18, new Vector2(2.5f, 0.5f)); title = new Title(); DelayAction cameraDelay = new DelayAction(Program.TheGame, CameraDelay); moveToTotem = new MoveToStaticAction(Program.TheGame, Game1.GameCamera.Transform, Vector2.Zero, 1); moveToTotem.StartPosition = new Vector2(CameraMenuX, CameraMenuY); moveToTotem.Interpolator = new PSmoothstepInterpolation(); moveToTotem.Timer.Interval = TimeToFirstTotem; MethodAction moveCrowd = new MethodAction(delegate() { crowd.MoveTo(currentTotemPosition + TotemCrowdOffset, TimeToFirstTotem); }); gotoFirstTotem = new Sequence(1); gotoFirstTotem.AddAction(cameraDelay); gotoFirstTotem.AddAction(moveCrowd); gotoFirstTotem.AddAction(moveToTotem); gotoFirstTotem.AddAction(new MethodAction(delegate() { Cutscenes.ThrowPlayer(Game1.CurrentTotem); })); playerLaunch = new Sequence(1); playerLaunch.AddAction(new DelayAction(Program.TheGame, Crowd.LaunchTensionTime)); moveToAscendingPlayer = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), cutscenePlayer.Transform, 1); moveToAscendingPlayer.Interpolator = new PSquareInterpolation(0.1f); moveToAscendingPlayer.RotationActive = false; playerLaunch.AddAction(moveToAscendingPlayer); readySequence = new Sequence(1); Transform end = new Transform(Game1.player.Transform, true); end.PosY = Game1.CameraOffset; moveToFallingPlayer = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), end, 1); moveToFallingPlayer.Interpolator = new PSmoothstepInterpolation(); moveToFallingPlayer.RotationActive = false; readySequence.AddAction(new MethodAction(delegate() { Game1.player.GetReady(); })); readySequence.AddAction(moveToFallingPlayer); readySequence.AddAction(new MethodAction(delegate() { Game1.player.StartCountDown(); })); cameraZoom = new ScaleToAction(Program.TheGame, Game1.GameCamera.Transform, Vector2.Zero, 1); cameraZoom.Interpolator = new PSmoothstepInterpolation(); cameraZoom.Timer.Interval = 0.3f; goToPlayerOnGround = new Sequence(1); goToPlayerOnGroundMovement = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), cutscenePlayer.Transform, 1); goToPlayerOnGroundMovement.Timer.Interval = 1.0f; goToPlayerOnGroundMovement.Interpolator = new PSmoothstepInterpolation(); goToPlayerOnGround.AddAction(new DelayAction(Program.TheGame, 0.5f)); goToPlayerOnGround.AddAction(goToPlayerOnGroundMovement); intro = new Sequence(1); MoveToStaticAction moveToMenu = new MoveToStaticAction(Program.TheGame, Game1.GameCamera.Transform, new Vector2(CameraMenuX, CameraMenuY), 1); moveToMenu.Timer.Interval = MoveInTime + 1.0f; intro.AddAction(moveToMenu); intro.AddAction(new MethodAction(delegate() { crowd.PushNewGuy(); })); intro.AddAction(new DelayAction(Program.TheGame, 1.5f)); intro.AddAction(new MethodAction(delegate() { StartMainMenu(); })); goToCliff = new Sequence(1); goToCliff.AddAction(moveToTotem); goToCliff.AddAction(new MethodAction(delegate() { cutscenePlayer.GiveSouls(Game1.TotalScore); monster.OpenMouth(); })); auraTexture = TextureLibrary.GetSpriteSheet("soul_temp"); soulTexture = TextureLibrary.GetSpriteSheet("soul"); //moveToAscendingPlayer = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), cutscenePlayer.Transform, 1); }
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(); })); }