Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
 public void AddRigidBody(RigidBody rigidBody)
 {
     rigidBodies.Add(rigidBody);
 }