public Car(Vector2 position, GameContent gameContent, World world) { this.world = world; this.gameContent = gameContent; BodyDef bd = new BodyDef(); bd.position = position / gameContent.Scale; bd.type = BodyType.Dynamic; bd.bullet = true; body = world.CreateBody(bd); body.SetLinearDamping(1f); body.SetAngularDamping(0.1f); float width = gameContent.playerCar.Width, height = gameContent.playerCar.Height; FixtureDef fd = new FixtureDef(); fd.density = 0.1f; //fd.restitution = .1f; CircleShape cs = new CircleShape(); cs._p = new Vector2(0, -(height - width / 2)) / gameContent.Scale; cs._radius = width / 2 / gameContent.Scale; fd.shape = cs; body.CreateFixture(fd); PolygonShape ps = new PolygonShape(); ps.SetAsBox(width / 2 / gameContent.Scale, (height - width / 2) / 2 / gameContent.Scale, new Vector2(0, -(height - width / 2) / 2) / gameContent.Scale, 0); fd.shape = ps; body.CreateFixture(fd); CreateWheels(); }
public Tutorial(GameContent gameContent, World world) : base(gameContent, world) { instructions = gameContent.content.Load<List<string>>("Levels/tutorial"); NextMsg(); }
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 Apple(Fixture connectedFixture, GameContent gameContent, World world) { this.world = world; this.gameContent = gameContent; texture = gameContent.apple; fallenFromAir = false; CreatBody(); State = LeafState.Grow; if (connectedFixture != null) { this.connectedFixture = connectedFixture; AABB aabb; connectedFixture.GetAABB(out aabb); body.Position = aabb.GetCenter(); RevoluteJointDef rjd = new RevoluteJointDef(); rjd.bodyA = body; rjd.bodyB = connectedFixture.GetBody(); rjd.localAnchorA = Vector2.Zero; rjd.localAnchorB = connectedFixture.GetBody().GetLocalPoint(body.Position); revoJoint = (RevoluteJoint)world.CreateJoint(rjd); } }
public Level(GameContent gameContent) { world = new World(atomGravity, false); this.gameContent = gameContent; if (gameContent.levelIndex == -1) this.isLAB = true; camera = new Camera2D(gameContent.viewportSize, false); if (!isLAB) LoadLevelComponent(); else { labComponent = new LabComponent(gameContent, world); editMode = true; world.Gravity = equipGravity; camera.Scale = targetScale = scale = labComponent.EqScale; camera.Position = new Vector2(labComponent.Width, labComponent.Height) / 2; camera.Speed = 15; camera.ScrollBar = new Vector2(100, 50); camera.ScrollWidth = labComponent.Width; camera.ScrollHeight = labComponent.Height; } mouseGroundBody = world.CreateBody(new BodyDef()); }
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 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 Level(ScreenManager screenManager, int levelIndex) { this.gameContent = screenManager.GameContent; this.levelIndex = levelIndex; Load(); }
public RadiationSmoke(GameContent gameContent, Atom atom) { this.gameContent = gameContent; this.atom = atom; for (int i = 0; i < MaxParticle; i++) particlePos[i] = MaxParticlePos / (MaxParticle - 1) * i; }
public Block(GameContent gameContent, MDGoal goal, int number, Vector2 position) { this.gameContent = gameContent; this.Goal = goal; this.position = position; this.number = number; Bounds = new Rectangle((int)position.X, (int)position.Y, Tile.Width, Tile.Width); }
public Block(GameContent gameContent, Vector2 position, char number) { this.position = oriPosition = position; BlockNumber = number >= 'a' ? number - 'a' + 10 : number - '0'; State = BlockState.Ground; IsActive = false; this.gameContent = gameContent; }
public static void DrawBond(SpriteBatch spriteBatch, GameContent gameContent, Vector2 a, Vector2 b, int numberOfBonds) { float scale = Vector2.Distance(a, b) / (gameContent.bondOrigin[numberOfBonds].X * 2); float rotation = (float)Math.Atan((b.Y - a.Y) / (b.X - a.X)); spriteBatch.Draw(gameContent.bond[numberOfBonds], (a + b) / 2, null, Color.White, rotation, gameContent.bondOrigin[numberOfBonds], new Vector2(scale, 1), SpriteEffects.None, 1); }
public Apple(Vector2 position, Body ground, GameContent gameContent, World world) : this(null, gameContent, world) { this.ground = ground; body.Position = position; originalPostion = position; State = LeafState.Drop; fallenFromAir = true; }
public Level(GameContent gameContent, int levelIndex, int previousScore) { GameContent = gameContent; LevelIndex = levelIndex; PreviousScore = previousScore; Score = 0; LoadTiles(levelIndex); }
public Level(ScreenManager screenManager, int levelIndex) { this.gameContent = screenManager.GameContent; this.levelIndex = levelIndex; for (int i = 0; i < GameContent.MaxGoals; i++) blockNumber[i] = gameContent.random.Next(gameContent.blockCount[i]); LoadBlocks(levelIndex); }
public Level(ScreenManager screenManager, int levelIndex) { this.gameContent = screenManager.GameContent; this.levelIndex = levelIndex; LoadTiles(levelIndex); if (blocks.Count == 4) timeBonus = 10; if (blocks.Count == 9) timeBonus = 20; if (blocks.Count == 16) timeBonus = 30; }
public Tutorial(GameContent gameContent, World world) : base(gameContent, world) { #if WINDOWS instructions = gameContent.content.Load<List<string>>("Levels/tutorial"); #endif #if WINDOWS_PHONE instructions = gameContent.content.Load<List<string>>("Levels/tutorialPhone"); #endif NextMsg(); }
public Level(ScreenManager screenManager, int levelIndex) { this.gameContent = screenManager.GameContent; this.levelIndex = levelIndex; basicEffect = new BasicEffect(screenManager.GraphicsDevice); basicEffect.VertexColorEnabled = true; //Render._device = screenManager.GraphicsDevice; //Render._batch = screenManager.SpriteBatch; //Render._font = debugFont; }
public leaf(Fixture fixture, float rotation, int index, GameContent gameContent) { this.gameContent = gameContent; this.connectedFixture = fixture; this.rotation = rotation / 180 * (float)Math.PI; oriRotation = this.rotation; AABB aabb; fixture.GetAABB(out aabb); position = aabb.GetCenter(); texture = gameContent.leaves[index]; }
// For Tutorial Level public Formula(string strFormula, Vector2 position, GameContent gameContent) { this.position = position; this.gameContent = gameContent; this.strFormula = strFormula; time = float.NegativeInfinity; charSize = 20; SetPos(); }
public Castle(GameContent gameContent, Shape shape, Vector2 tileCenter) { this.Shape = shape; this.gameContent = gameContent; this.position = tileCenter; int halfSize = Tile.Width / 2; BoundingRectangle = new Rectangle((int)position.X - halfSize, (int)position.Y - halfSize, 2 * halfSize, 2 * halfSize); AttackRectangle = BoundingRectangle; AttackRectangle.Inflate(200, 600); }
public Asteroid(GameContent gameContent, int index, Body body) { this.gameContent = gameContent; tex = gameContent.asteroid[index]; this.body = body; body.SetUserData(this); originalPosition = body.Position; for (int i = 0; i < 5; i++) blastTex[i] = gameContent.asteroid[(index + i) % 16]; blastSound = gameContent.boom[index % 3]; blastSoundInstance = blastSound.CreateInstance(); blastSoundInstance.Volume = 0.8f; }
public Level(GameContent gameContent, int levelIndex) { this.gameContent = gameContent; this.levelIndex = levelIndex; LoadTiles(levelIndex); //LoadGround(); car = new Car(new Vector2(-200), gameContent, world); camera = new Camera2D(gameContent.viewportSize, false); camera.Position = gameContent.viewportSize / 2; camera.Origin = new Vector2(400, 550); camera.Scale = .6f; }
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); }
public Level(GameContent gameContent, int levelIndex, int score) { GameContent = gameContent; LevelIndex = levelIndex; Score = score; LoadGround(); LoadShip(); LoadAsteroidField((int)asteroidsCount); engineInstance = gameContent.engine.CreateInstance(); engineInstance.IsLooped = true; engineInstance.Volume = 0.65f; }
public Asteroid(GameContent gameContent, int index, Body body) { this.gameContent = gameContent; tex = gameContent.asteroid[index]; this.body = body; body.SetUserData(this); originalPosition = body.Position; for (int i = 0; i < 5; i++) { blastTex[i] = gameContent.asteroid[(index + i) % 16]; } blastSound = gameContent.boom[index % 3]; blastSoundInstance = blastSound.CreateInstance(); blastSoundInstance.Volume = 0.8f; }
public override void LoadContent() { gameContent = ScreenManager.GameContent; //titleString = "High\nScores"; titleTexture = gameContent.highScores; //titlePosition = new Vector2(20, 20); highScores = BitSitsGames.ScoreData.HighScores; spriteBatch = ScreenManager.SpriteBatch; MenuEntry exitMenuEntry = new MenuEntry(this, "Back", new Vector2(60, 360)); exitMenuEntry.Selected += OnCancel; MenuEntries.Add(exitMenuEntry); }
public LevelComponent(GameContent gameContent, World world) { this.gameContent = gameContent; this.world = world; levelData = gameContent.content.Load<LevelData>("Levels/level" + gameContent.levelIndex); MaxAtoms = levelData.MaxAtoms; int totalProbability = 0; for (int i = 0; i < levelData.AtomProbability.Length; i++) totalProbability += levelData.AtomProbability[i]; if (totalProbability != 100) throw new Exception("must be 100"); entryPoint = levelData.Entry; bonusType = levelData.BonusType; BodyDef bd = new BodyDef(); Body ground = world.CreateBody(bd); PolygonShape ps = new PolygonShape(); List<Vector2> v = levelData.ContinuousBoundry; for (int i = 0; i < v.Count - 1; i++) { if (v[i + 1].X == -1 && v[i + 1].Y == -1) { i++; continue; } ps.SetAsEdge(v[i] / gameContent.scale, v[i + 1] / gameContent.scale); ground.CreateFixture(ps, 0); } for (int i = 0; i < levelData.EquipmentDetails.Count; i++) { Equipment eq = new Equipment(levelData.EquipmentDetails[i].EquipmentName, gameContent, world); eq.body.Position = levelData.EquipmentDetails[i].Position / gameContent.scale; eq.body.Rotation = levelData.EquipmentDetails[i].RotationInDeg / 180 * (float)MathHelper.Pi; eq.isClamped = levelData.EquipmentDetails[i].IsClamped; eq.body.SetType(BodyType.Static); equipments.Add(eq); if (eq.equipName == EquipmentName.thermometer) thermometer = eq; if (eq.equipName == EquipmentName.pHscale) pHscale = eq; } }
public LabComponent(GameContent gameContent, World world) { this.gameContent = gameContent; EqScale = 0.4f; AtomScale = 0.7f; Width = (int)(gameContent.viewportSize.X * 2 / EqScale); Height = (int)(gameContent.viewportSize.Y * 1 / EqScale); gameContent.clampDistance = (int)(gameContent.viewportSize.X / 2 / EqScale); PolygonShape ps = new PolygonShape(); Body ground = world.CreateBody(new BodyDef()); Vector2 pos = new Vector2(Width / 2, Height) / gameContent.scale; ps.SetAsBox(Width / 2 / gameContent.scale, (float)gameContent.labTable.Height / gameContent.scale, pos, 0); ground.CreateFixture(ps, 0); }
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 Formula(int[] atomCount, int twiceNumberOfBonds, int numberOfRings, BonusType bonusType, Vector2 position, GameContent gameContent) { this.position = position; this.gameContent = gameContent; this.twiceNumberOfBonds = twiceNumberOfBonds; this.numberOfRings = numberOfRings; this.atomCount = new int[gameContent.symbolCount]; atomCount.CopyTo(this.atomCount, 0); int bonus = 1; if (bonusType == BonusType.Ring) bonus = numberOfRings + 1; else if (bonusType == BonusType.Hydrogen) bonus = atomCount[(int)Symbol.H]; score = twiceNumberOfBonds * bonus; strScore = "+" + twiceNumberOfBonds; if (bonus > 1) strScore += " x" + bonus; Symbol[] symbolPref = new Symbol[atomCount.Length]; // C_H_N_O_X_Ra symbolPref[0] = Symbol.C; symbolPref[1] = Symbol.H; symbolPref[2] = Symbol.N; symbolPref[3] = Symbol.O; symbolPref[4] = Symbol.X; symbolPref[5] = Symbol.Ra; for (int i = 0; i < symbolPref.Length; i++) { int count = atomCount[(int)symbolPref[i]]; if (count > 0) { strFormula += symbolPref[i]; if (count > 1) strFormula += count; } } SetPos(); }