public Enemy(World world, GameContent gameContent, int index, Vector2 position) { this.gameContent = gameContent; walk = new Animation(gameContent.enemy[index], 2, 0.15f, true, new Vector2(0.5f)); animationPlayer.PlayAnimation(walk); if (index == 0) linearImpulse = 1f / 2; else linearImpulse = 0.75f / 2; BodyDef bd = new BodyDef(); bd.position = position / gameContent.b2Scale; bd.type = BodyType.Dynamic; bd.linearDamping = 10; body = world.CreateBody(bd); CircleShape cs = new CircleShape(); cs._radius = (float)(walk.FrameWidth - 1) / gameContent.b2Scale / 2; FixtureDef fd = new FixtureDef(); fd.shape = cs; fd.filter.groupIndex = -1; body.CreateFixture(fd); body.SetUserData(this); }
public Soldier(Shape shape, Vector2 position, GameContent gameContent, World world) { this.gameContent = gameContent; this.world = world; idle = new Animation(gameContent.idle[(int)shape], 20f, false); walk = new Animation(gameContent.walk[(int)shape], 0.15f, true); animationPlayer.PlayAnimation(idle); MaxHealth = 10; health = gameContent.random.Next(2, 10); MaxReloadTime = gameContent.random.Next(50); reloadTime = 0; CircleShape cShape = new CircleShape(); cShape._radius = (Size + 2) / 2 / gameContent.b2Scale; BodyDef bd = new BodyDef(); bd.fixedRotation = true; bd.type = BodyType.Dynamic; bd.position = position / gameContent.b2Scale; body = world.CreateBody(bd); //body.SetLinearDamping(10); FixtureDef fd = new FixtureDef(); fd.shape = cShape; fd.restitution = 0.5f; fd.friction = .1f; fd.density = .1f; body.CreateFixture(fd); body.SetUserData(this); }
public Player(GameContent gameContent, World world, Vector2 position) { this.gameContent = gameContent; this.world = world; idle = new Animation(gameContent.playerIdle, 2, 2f, true, new Vector2(0.5f)); walk = new Animation(gameContent.playerWalk, 2, 0.2f, true, new Vector2(0.5f)); die = new Animation(gameContent.playerDie, 2, 0.2f, false, new Vector2(0.5f)); animationPlayer.PlayAnimation(idle); BodyDef bd = new BodyDef(); bd.position = position / gameContent.b2Scale; bd.type = BodyType.Dynamic; bd.linearDamping = 10; body = world.CreateBody(bd); CircleShape cs = new CircleShape(); cs._radius = (float)(idle.FrameWidth - 1) / gameContent.b2Scale / 2; FixtureDef fd = new FixtureDef(); fd.shape = cs; fd.filter.groupIndex = -1; body.CreateFixture(fd); }
public Army(GameContent gameContent, Shape shape, Rank rank, Vector2 position) { this.gameContent = gameContent; Shape = shape; Rank = rank; this.position = position; walkAnimation = new Animation(gameContent.walk[(int)shape], 2, 0.1f, true, new Vector2(0.5f)); idleAnimation = new Animation(gameContent.idle[(int)shape], 1, 0.1f, true, new Vector2(0.5f)); dieAnimation = new Animation(gameContent.die[(int)shape], 3, 0.1f, false, new Vector2(0.5f)); animationPlayer.PlayAnimation(idleAnimation); ArmyDetails details = gameContent.content.Load<ArmyDetails>("Graphics/" + rank); Damage = details.Damage; health = MaxHealth = details.Health; MaxReloadTime = details.ReloadTime; Range = details.Range; MoveSpeed = details.MoveSpeed; rotation = defaultRotaion = (shape == Shape.square) ? 0 : (float)Math.PI; }
public Atom(Symbol symbol, Vector2 position, GameContent gameContent, World world) { this.gameContent = gameContent; this.world = world; if (symbol == Symbol.Ra) eye = EyeState.Angry; this.symbol = symbol; this.symbolStr = symbol.ToString(); symbolCenter = gameContent.symbolFont.MeasureString(this.symbolStr); symbolCenter.X *= 0.5f; symbolCenter.Y *= 0.92f; bondsLeft = (int)symbol; BodyDef bd = new BodyDef(); bd.type = BodyType.Dynamic; bd.position = this.position = position / gameContent.b2Scale; bd.bullet = true; body = world.CreateBody(bd); body.SetUserData(this); CircleShape cs = new CircleShape(); cs._radius = gameContent.atomRadius / gameContent.b2Scale; FixtureDef fd = new FixtureDef(); fd.shape = cs; fd.restitution = 0.2f; fd.friction = 0.5f; fixture = body.CreateFixture(fd); electroShockAnimation = new Animation(gameContent.electroShock, 3, 0.1f, true, new Vector2(0.5f, 0.5f)); radiationSmoke = new RadiationSmoke(gameContent, this); // Collide only with Ground but not with itself and bonded Filter mouseFilter = new Filter(); mouseFilter.categoryBits = 0x0002; mouseFilter.maskBits = 0x0001; mouseFilter.groupIndex = -2; // Collide with every thing atomFilter = new Filter(); atomFilter.categoryBits = 0x0001; atomFilter.maskBits = 0x0001; atomFilter.groupIndex = 1; fixture.SetFilterData(ref atomFilter); SetMode(false, false); }
/// <summary> /// Begins or continues playback of an animation. /// </summary> public void PlayAnimation(Animation animation) { // If this animation is already running, do not restart it. if (Animation == animation) return; // Start the new animation. this.animation = animation; this.frameIndex = 0; this.time = 0.0f; }