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); } } }
//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); }
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); }