Пример #1
0
        public void Draw(params IGameObject[] drawObject)  //risuva obektite vurhu canvasa v zavisimost ot vida im

        {
            foreach (var drawing in drawObject)
            {
                if (drawing is PadGameObject)
                {
                    IRebouncable drawingImovable = drawing as IRebouncable;
                    DrawPad(drawingImovable);
                }
                else if (drawing is BricksGameObject)
                {
                    DrawBrick(drawing);
                }
                else if (drawing is BallGameObject)
                {
                    IMovable drawingImovable = drawing as IMovable;
                    DrawBall(drawingImovable);
                }
                else if (drawing is ErorTextGameObject)
                {
                    DrawErrorMsg(drawing as ErorTextGameObject);
                }
                else if (drawing is ITextGameObject)
                {
                    DrawText(drawing as TextGameObject);
                }
            }
        }
Пример #2
0
        //incializiram vsi4ki obekti tuk i vkarvam v colectiite ,sled koeto presmqta lista s coordinati
        public void InitGame()
        {
            this.renderer.ShowStartGameScreen();


            //int Pad
            this.rebouncableObjects = new List <IRebouncable>();
            int initPadLeftPosition = (this.renderer.ScreenWidth) / 2 - GlobalConstants.padWidth / 2;
            int initPadTopPosition  = ((this.renderer.ScreenHeight) - GlobalConstants.padHeight * 2);
            var padPosition         = GameObjectsFactory.GenerateNewPosition(initPadLeftPosition, initPadTopPosition);
            var padSize             = GameObjectsFactory.GenerateNewSize(GlobalConstants.padWidth, GlobalConstants.padHeight);

            this.Pad = GameObjectsFactory.GeneratePad(padPosition, padSize);
            this.rebouncableObjects.Add(this.Pad);

            //int Ball
            this.movingObjects = new List <IMovable>();
            int initBallLeftPosition = (this.renderer.ScreenWidth) / 2;
            int initBallTopPosition  = ((this.renderer.ScreenHeight) - GlobalConstants.padHeight * (GlobalConstants.distanceFromBottomRowPad) - GlobalConstants.padHeight - GlobalConstants.ballSize);
            var ballSpeed            = GameObjectsFactory.GenerateNewPosition(GlobalConstants.BallInitSpeedLeft, GlobalConstants.BallInitSpeedTop);
            var ballPosition         = GameObjectsFactory.GenerateNewPosition(initBallLeftPosition, (initBallTopPosition));
            var ballSize             = GameObjectsFactory.GenerateNewSize(GlobalConstants.ballSize, GlobalConstants.ballSize);

            this.Ball = GameObjectsFactory.GenerateNewBall(ballPosition, ballSize, ballSpeed);
            this.movingObjects.Add(this.Ball);

            //init HighScore
            int initHighScoreLeftPosition = (this.renderer.ScreenWidth) - GlobalConstants.highScoreLeft;
            int initHighScorePosition     = GlobalConstants.distanceFromBottomRowPad;
            var highScorePosition         = GameObjectsFactory.GenerateNewPosition(initHighScoreLeftPosition, initHighScorePosition);
            var highScoreSize             = GameObjectsFactory.GenerateNewSize(GlobalConstants.highScoreWidht, GlobalConstants.highScoreHeight);

            this.HighScore = GameObjectsFactory.GenerateNewHighScore(highScorePosition, highScoreSize);


            //init Bricks
            this.bricks = new List <IDestroyable>();
            for (int j = 0; j < GlobalConstants.brickRows; j++)
            {
                for (int i = 0; i < GlobalConstants.brickCows; i++)
                {
                    var brickPosition = GameObjectsFactory.GenerateNewPosition(GlobalConstants.initBrickLeftPosition + i * GlobalConstants.brickWidth * 2,
                                                                               (GlobalConstants.initBrickTopPosition + j * GlobalConstants.brickHright * 2));
                    var brickSize = GameObjectsFactory.GenerateNewSize(GlobalConstants.brickWidth, GlobalConstants.brickHright);
                    var brick     = GameObjectsFactory.GenerateNewBrick(brickPosition, brickSize);
                    Bricks.Add(brick);
                }
            }

            CollisionDetector.GetBoundariesForDestroiableObjects(this.Bricks);
        }
Пример #3
0
        private void DrawPad(IRebouncable drawing)
        {
            //inicializaciq na bitmap
            BitmapImage ballFacetSource = new BitmapImage();

            ballFacetSource.BeginInit();                //putq do image v papka  images
            string path = System.IO.Path.GetFullPath(@"..\..\Images\neon_line.png");

            ballFacetSource.UriSource = new Uri(path);
            ballFacetSource.EndInit();

            //pravim nov image koito vzima source bitmapimage
            Image pad = new Image();

            pad.Source = ballFacetSource;
            pad.Height = drawing.Bounds.Height;
            pad.Width  = drawing.Bounds.Width;

            //static method za da setvane poziciq na ball sprqmo canvasa
            Canvas.SetLeft(pad, drawing.Position.Left);
            Canvas.SetTop(pad, drawing.Position.Top);
            //dobavqme v canvasa ball obekta kato children na cavasa
            this.canvas.Children.Add(pad);



            //BitmapImage ballFacetSource = new BitmapImage();
            //ballFacetSource.BeginInit();                //putq do image v papka images
            //string path = System.IO.Path.GetFullPath(@"..\..\Images\Ball.png");
            //ballFacetSource.UriSource = new Uri(path);
            //ballFacetSource.EndInit();

            //var pad = new Ellipse()
            //{
            //    Width = drawing.Bounds.Width,
            //    Height = drawing.Bounds.Height,
            //    Fill = Brushes.LimeGreen
            //};

            //Canvas.SetLeft(pad, drawing.Position.Left);
            //Canvas.SetTop(pad, drawing.Position.Top);
            //this.canvas.Children.Add(pad);
        }