void spawnItem(int i, Vector2 position) { int num = i; Vector2 pos = position; if (i == 0) num = RandomProvider.GetRandom().Next(1, 9); if (position == Vector2.Zero) pos = new Vector2(RandomProvider.GetRandom().Next((int)(TurkeySmashGame.WindowSize.X / 6), (int)(5 * TurkeySmashGame.WindowSize.X / 6)), TurkeySmashGame.WindowSize.Y / 6); PhysicsObject item = null; switch (num) { case 1: itemsSprite.Add(football); item = new RoundPhysicsObject(world, pos, 3f, 0.7f, football); break; case 2: itemsSprite.Add(caisseSprite); item = new RectPhysicsObject(world, pos, 2.0f, caisseSprite); break; case 3: itemsSprite.Add(blocSwag); item = new RectPhysicsObject(world, pos, 1f, blocSwag); break; case 4: itemsSprite.Add(pingpong); item = new RoundPhysicsObject(world, pos, 5, 0.90f, pingpong); break; case 5: itemsSprite.Add(baguette); item = new RectPhysicsObject(world, pos, 4, baguette); break; case 6: itemsSprite.Add(pneu); item = new RoundPhysicsObject(world, pos, 5, 0.75f, pneu); break; case 7: itemsSprite.Add(pq); item = new RectPhysicsObject(world, pos, 5, pq); break; case 8: itemsSprite.Add(tv); item = new RectPhysicsObject(world, pos, 1, tv); break; } FarseerBodyUserData userData = new FarseerBodyUserData { IsCharacter = false, IsBonus = false, IsItem = true, }; item.body.UserData = userData; item.body.Mass = massItem; items.Add(item); }
/// <summary> /// Classe Character animée et possédant un body /// </summary> /// <param name="world">Monde dans le lequel ce trouve le character</param> /// <param name="position">En DisplayUnits(pixels)</param> /// <param name="density">Calcule du poids en fonction de la taille</param> /// <param name="bodySize">En DisplayUnits(pixels)</param> /// <param name="playerindex"></param> /// <param name="definition">Propriétés de l'image animée</param> public Character(World world, Vector2 position, float density, Vector2 bodySize, PlayerIndex playerindex, AnimatedSpriteDef definition) : base(position, definition) { this.playerindex = playerindex; this.world = world; this.bodySize = bodySize; body = BodyFactory.CreateRectangle(world, ConvertUnits.ToSimUnits(bodySize.X * scale), ConvertUnits.ToSimUnits(bodySize.Y * scale), density); body.BodyType = BodyType.Dynamic; body.Position = ConvertUnits.ToSimUnits(position); body.Restitution = 0.3f; body.FixedRotation = true; body.Friction = 0.1f; FarseerBodyUserData userData = new FarseerBodyUserData { AssociatedName = definition.AssetName, IsCharacter = true, Pourcent = 0, LastHit = 0 }; body.UserData = userData; textures.Add(TurkeySmashGame.content.Load<Texture2D>("Jeu\\particules\\star")); textures.Add(TurkeySmashGame.content.Load<Texture2D>("Jeu\\particules\\diamond")); CurrentFrame = new Point(0, 1); punchCharacter = TurkeySmashGame.content.Load<SoundEffect>("Sons\\effets\\PUNCH"); punchMiss = TurkeySmashGame.content.Load<SoundEffect>("Sons\\effets\\whoosh"); punchObjet = TurkeySmashGame.content.Load<SoundEffect>("Sons\\effets\\punchboite"); punchBonus = TurkeySmashGame.content.Load<SoundEffect>("Sons\\effets\\bonus"); teleportation = TurkeySmashGame.content.Load<SoundEffect>("Sons\\effets\\Teleportation"); }
void spawnBonus(int i, Vector2 position) { PhysicsObject thisBonus = null; int num = i; Vector2 pos = position; if (i == 0) num = RandomProvider.GetRandom().Next(1, 5); if (position == Vector2.Zero) pos = new Vector2(RandomProvider.GetRandom().Next((int)(TurkeySmashGame.WindowSize.X / 6), (int)(5 * TurkeySmashGame.WindowSize.X / 6)), TurkeySmashGame.WindowSize.Y / 6); switch (num) { case 1: thisBonus = new RectPhysicsObject(world, pos, 1, dinde); bonusSprite.Add(dinde); FarseerBodyUserData userData1 = new FarseerBodyUserData { IsCharacter = false, IsBonus = true, IsUsed = false, BonusType = "dinde" }; thisBonus.body.UserData = userData1; break; case 2: thisBonus = new RectPhysicsObject(world, pos, 1, hamburger); FarseerBodyUserData userData2 = new FarseerBodyUserData { IsCharacter = false, IsBonus = true, IsUsed = false, BonusType = "pourcent" }; thisBonus.body.UserData = userData2; bonusSprite.Add(hamburger); break; case 3: thisBonus = new RectPhysicsObject(world, pos, 1, raquette); FarseerBodyUserData userData3 = new FarseerBodyUserData { IsCharacter = false, IsBonus = true, IsUsed = false, BonusType = "raquette" }; thisBonus.body.UserData = userData3; bonusSprite.Add(raquette); break; case 4: thisBonus = new RectPhysicsObject(world, pos, 1, invincible); FarseerBodyUserData userData4 = new FarseerBodyUserData { IsCharacter = false, IsBonus = true, IsUsed = false, BonusType = "invincible" }; thisBonus.body.UserData = userData4; bonusSprite.Add(invincible); break; } bonus.Add(thisBonus); }