/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { CrossCutting.Instance.Game = this; SpriteFont spriteFont; spriteFont = Content.Load<SpriteFont>(@"fonts\score"); GameObject playerScore = new GameObject("playerScore"); RenderableComponent playerScoreRenderableComponent = new TextRenderableComponent(spriteFont, Vector2.Zero, Color.White) { Text = "Score: 0" }; playerScore.SetGameObjectComponent(playerScoreRenderableComponent); playerScore.SetGameObjectComponent(new ScoreBehavior()); GameObject player = new GameObject("player"); RenderableComponent playerRenderableComponent = new BasicRenderableComponent( Content.Load<Texture2D>(@"Images/player"), new Point(15, 64), new Point(0, 0), new Point(1, 1)); player.Transform.Position = new Vector2(0, 0); player.Transform.Scale = new Vector2(1, 1); player.SetGameObjectComponent(playerRenderableComponent); player.SetGameObjectComponent(new RectangleColliderComponent(0)); player.SetGameObjectComponent(new PlayerInputBehavior(PlayerIndex.One, (float)6)); GameObject ball = new GameObject("ball"); RenderableComponent ballRenderableComponent = new BasicRenderableComponent( Content.Load<Texture2D>(@"Images/ball"), new Point(16, 16), new Point(0, 0), new Point(1, 1)); ball.Transform.Position = new Vector2(Window.ClientBounds.Width / 2, Window.ClientBounds.Height / 2); ball.Transform.Scale = new Vector2(1, 1); ball.SetGameObjectComponent(ballRenderableComponent); ball.SetGameObjectComponent(new RectangleColliderComponent(1)); RigidBody ballRigidBody = new RigidBody(1); ball.SetGameObjectComponent(ballRigidBody); ballRigidBody.Velocity = new Vector2(3, 2); ball.SetGameObjectComponent(new BallMoveBehavior(this, playerScore)); SoundSystem.Instance.Add(Content.Load<SoundEffect>(@"Audio\hitwall"), "hitwall"); GameObject computer = new GameObject("computer"); RenderableComponent computerRenderableComponent = new BasicRenderableComponent( Content.Load<Texture2D>(@"Images/player"), new Point(15, 64), new Point(0, 0), new Point(1, 1)); computer.Transform.Position = new Vector2(Window.ClientBounds.Width - computerRenderableComponent.Size.X, (Window.ClientBounds.Height - computerRenderableComponent.Size.Y) / 2 ); computer.Transform.Scale = new Vector2(1, 1); computer.SetGameObjectComponent(computerRenderableComponent); computer.SetGameObjectComponent(new RectangleColliderComponent(0)); computer.SetGameObjectComponent(new ComputerAIBehavior(ball, (float)3)); SoundSystem.Instance.Add(Content.Load<SoundEffect>(@"Audio\hitpaddle"), "hitpaddle"); GameObject powerUp = new GameObject("powerup"); RenderableComponent powerUpRenderableComponent = new BasicRenderableComponent( Content.Load<Texture2D>(@"Images/powerup"), new Point(16, 16), new Point(0, 0), new Point(1, 1)); powerUp.Transform.Position = new Vector2(50, 50); powerUp.Transform.Scale = new Vector2(1, 1); powerUp.SetGameObjectComponent(powerUpRenderableComponent); powerUp.SetGameObjectComponent(new RectangleColliderComponent(1)); RigidBody powerUpRigidBody = new RigidBody(1); powerUp.SetGameObjectComponent(powerUpRigidBody); powerUpRigidBody.Velocity = new Vector2(2, 0); powerUp.SetGameObjectComponent(new PowerUpMoveBehavior(this)); SoundSystem.Instance.Add(Content.Load<SoundEffect>(@"Audio\powerup"), "powerup"); spriteManager = new SpriteManager(this); spriteManager.AddRenderableComponent(playerRenderableComponent); spriteManager.AddRenderableComponent(ballRenderableComponent); spriteManager.AddRenderableComponent(computerRenderableComponent); spriteManager.AddRenderableComponent(playerScoreRenderableComponent); spriteManager.AddRenderableComponent(powerUpRenderableComponent); physicsManager = new PhysicsManager2(this); physicsManager.AddGameObject(ball); physicsManager.AddGameObject(powerUp); physicsManager.AddGameObject(playerScore); physicsManager.AddGameObject(player); physicsManager.AddGameObject(computer); Components.Add(spriteManager); Components.Add(physicsManager); spriteManager.Enabled = true; spriteManager.Visible = true; physicsManager.Start(); base.Initialize(); }
public void AddRigidBody(RigidBody rigidBody) { rigidBodies.Add(rigidBody); }