public Walls(World world, Rectangle screenBounds, Ball ball, Paddle paddle) { _world = world; _screenBounds = screenBounds; _ball = ball; _paddle = paddle; }
// Add paddle to game private void CreatePaddle() { paddle = new Paddle { LocationX = 350, LocationY = 550 }; canvas.Children.Add(paddle); }
public Ball(Paddle paddle, Content content, InputCommands inputCommands) : base(content.Load<Image>("Ball"), Rectangle.Zero) { this.paddle = paddle; fireBallSound = content.Load<Sound>("PaddleBallStart"); collisionSound = content.Load<Sound>("BallCollision"); UpdateOnPaddle(); RegisterFireBallCommand(inputCommands); }
public Breakout(SpriteBatch spriteBatch) { this.spriteBatch = spriteBatch; this.screenWidth = spriteBatch.GraphicsDevice.Viewport.Width; this.screenHeight = spriteBatch.GraphicsDevice.Viewport.Height; this.paddle = new Paddle(screenWidth, screenHeight); this.wall = new Wall(screenWidth, screenHeight); this.ball = new Ball(paddle, wall, screenWidth, screenHeight); }
public Ball(Paddle paddle) : base(new Material(ShaderFlags.Position2DColoredTextured,"Ball"), Rectangle.Zero) { this.paddle = paddle; fireBallSound = ContentLoader.Load<Sound>("PaddleBallStart"); collisionSound = ContentLoader.Load<Sound>("BallCollision"); UpdateOnPaddle(); RegisterFireBallCommand(); Start<RunBall>(); RenderLayer = 5; }
public Block(World world, Rectangle screenBounds, int x, int y, Player player, Ball ball, Paddle paddle) { _world = world; _screenBounds = screenBounds; _x = x; _y = y; _player = player; _ball = ball; _paddle = paddle; DieTime = TimeSpan.FromSeconds(0.4); }
public Level(World world, Rectangle screenBounds, Player player) { _paddle = new Paddle(world, screenBounds); _ball = new Ball(world, _paddle, player); _walls = new Walls(world, screenBounds, _ball, _paddle); // TODO: Load level from file/resource for (int y = 0; y < 5; y++) { for (int x = 0; x < 10; x++) { _blocks.Add(new Block(world, screenBounds, x, y, player, _ball, _paddle)); } } }
private void GameRestart() { _ball = new Ball(); _controller = new Paddle(); gameOver.Visible = false; }
void resetGame() { gamestate = 2; Player = null; }
/* |-------------------------------------------------------------------------- | ANCHOR Create Paddle |-------------------------------------------------------------------------- */ private void CreatePaddle() { this.paddle = new Paddle(this, 450, 750, 200, 10); }
public Ball(World world, Paddle paddle, Player player) { _world = world; _paddle = paddle; _player = player; }
private static void Main(string[] args) { using (var w = new GameWindow(800,600)) { w.Mouse.IsVisible = false; var imageDict = new Dictionary<GameResourceType, Bitmap>(); imageDict[GameResourceType.Background] = new Bitmap("..\\Content\\background.png"); imageDict[GameResourceType.Ball] = new Bitmap("..\\Content\\ball1.png"); imageDict[GameResourceType.Paddle] = new Bitmap("..\\Content\\paddle.png"); imageDict[GameResourceType.Brick] = new Bitmap("..\\Content\\brick.png"); var ballList = new List <Ball>(); System.Threading.Tasks.Task.Factory.StartNew( ()=>{for(int j = 1; j < 100; j++) { lock(ballList) { for(int i = 0; i < 150; i++) { ballList.Add(new Ball()); } } System.Threading.Thread.Sleep(1750); }}); var paddle = new Paddle(); while (w.IsRunning) { paddle.X = w.Mouse.X - 64; w.DrawBitmap(imageDict[GameResourceType.Background],0,0); w.DrawBitmap(imageDict[GameResourceType.Paddle], (int)paddle.X, (int)paddle.Y); lock (ballList) { foreach (var b in ballList.Where(x => !x.IsDead)) { b.Process(1); w.DrawBitmap(imageDict[GameResourceType.Ball], (int)b.X, (int)b.Y); if(Rectangle.IsOverlapped(b as Rectangle, paddle as Rectangle)|| Rectangle.IsOverlapped(paddle, b)) { b.Y = paddle.Y-b.H; b.VY = -b.VY; } } } if(w.Keyboard[System.Windows.Forms.Keys.Escape]) break; w.Update(); } } }
/* * Initiates logic. */ protected override void Initialize() { graphics.PreferredBackBufferWidth = 640; graphics.PreferredBackBufferHeight = 420; graphics.IsFullScreen = false; graphics.ApplyChanges(); Window.Title = "Breakout for Atari 2600 Replica"; ball = new Ball(); paddle = new Paddle(); decoration = new Decoration(); barX = 32.0f; barY = 114.0f; bars = new List<List<Bar>>(); for (int i = 0; i < 6; i++) { bars.Add(new List<Bar>()); for (int j = 0; j < 18; j++) { bars[i].Add(new Bar(barX, barY, i)); barX += 32.0f; } barX = 32.0f; barY += 12.0f; } base.Initialize(); }
/// <summary> /// Creates a new ball. The breakout game should only need once of these, /// unless I make it so more than one ball is active at a time. /// </summary> /// <param name="paddle">The Paddle which will hit the ball</param> /// <param name="screenWidth">Width of the screen for bounds checking.</param> /// <param name="screenHeight">Height of the screen for bounds checking.</param> public Ball(Paddle paddle, Wall wall, int screenWidth, int screenHeight) { this.state = State.Active; this.paddle = paddle; this.wall = wall; this.screenWidth = screenWidth; this.screenHeight = screenHeight; initialPosition = new Vector2(screenWidth / 2, screenHeight / 2); }
public BallInLevel(Paddle paddle, Level level) : base(paddle) { Level = level; }
public BallInLevel(Paddle paddle, Content content, InputCommands inputCommands, Level level) : base(paddle, content, inputCommands) { Level = level; }
/// <summary> /// calculates collisions between the ball and a paddle, and finds the paddle surface that was hit /// </summary> /// <param name="paddle">the paddle that is being hit</param> /// <param name="newPosition">the position the ball has</param> /// <param name="newVelocity">the velocity the ball is trying to move with</param> /// <returns>the position, length and surface of the collision</returns> public CollisionReturn CollidesWithPaddle(Paddle paddle, Vector newPosition, Vector newVelocity) { Ray[] Vectors = new Ray[4]; // vector rays of moving ball Vectors[TopEdge] = new Ray(newPosition, newVelocity); Vectors[RightEdge] = new Ray(Vector.Add(newPosition, new Vector(Size.X, 0)), newVelocity); Vectors[BottomEdge] = new Ray(Vector.Add(newPosition, new Vector(0, Size.Y)), newVelocity); Vectors[LeftEdge] = new Ray(Vector.Add(newPosition, new Vector(Size.X, Size.Y)), newVelocity); CollisionReturn collisionReturn = new CollisionReturn(false); foreach (Ray ray in Vectors) { int edgeID = 0; foreach (Ray edge in paddle.Edges) { RaycastReturn raycastReturn = Ray.Raycast(ray, edge); if (raycastReturn.Intersects) { if (collisionReturn.Intersects) { if (raycastReturn.length < collisionReturn.length) { collisionReturn = new CollisionReturn(raycastReturn); collisionReturn.Edge = edgeID; } } else { collisionReturn = new CollisionReturn(raycastReturn); collisionReturn.Edge = edgeID; } } edgeID++; } } return collisionReturn; }
public Grid(Vector2f windowSize, ScoreBoard scoreBoard, List <Item> itemList, Paddle paddle, int startLevel) { level = startLevel; array2D = new Box[10, 5]; this.windowSize = windowSize; buildMap(@"Levels/Level" + level + ".txt"); this.board = scoreBoard; this.itemList = itemList; this.paddle = paddle; }
/// <summary> /// Put the paddle on the gameboard. /// </summary> private void initPaddle() { paddle = new Paddle(gameBoard); paddle.Draw(); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); _ballTexture = Content.Load<Texture2D>("ball"); _brickTexture = Content.Load<Texture2D>("block"); _paddleTexture = Content.Load<Texture2D>("Paddle"); _gameBall = new Ball(new Vector2(200, 200), _ballTexture, new Vector2(5, 5)); int[,] _map = new int[5,10] { {1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1} }; _brickManager = new BrickManager(_map, _brickTexture, 5, 10); _brickManager.Init(); _paddle = new Paddle(new Vector2(200, 400), _paddleTexture); }
/// <summary> /// sets up and begins new round /// </summary> /// <param name="form">the form being used for the game</param> public static void StartNew(Form form) { LeftMovement1 = false; RightMovement1 = false; LeftMovement2 = false; RightMovement2 = false; LastPlayerHit = Player.Player1; LabelLevels.Text = "Levels Completed: " + LevelsCompleted.ToString(); UpdateScores(); Balls = new List<Ball>(); Blocks = new List<Block>(); FormSize = new Vector(form.Size.Width, form.Size.Height - 100); PictureBox paddle1 = new PictureBox(); form.Controls.Add(paddle1); if (CurrentMode == GameMode.Coop || CurrentMode == GameMode.Versus) // 2 player { PictureBox paddle2 = new PictureBox(); form.Controls.Add(paddle2); PaddleObject2 = new Paddle(paddle2, new Vector(FormSize.X * 0.75f, FormSize.Y)); PaddleObject1 = new Paddle(paddle1, new Vector(FormSize.X * 0.25f, FormSize.Y)); } else // 1 player { PaddleObject1 = new Paddle(paddle1, new Vector(FormSize.X * 0.5f, FormSize.Y)); PaddleObject2 = null; } currentForm = form; BallsInPlay = 0; AddBall(); int blockRows = ((CurrentMode == GameMode.Classic) ? DefaultBlockRows : BlockRows); int blockColumns = ((CurrentMode == GameMode.Classic) ? DefaultBlockColumns : BlockColumns); int blockWidth = (int)FormSize.X / blockColumns; int blockHeight = (int)FormSize.Y / 3 / blockRows; const int blockFrame = 4; for (int x = 0; x < blockColumns; x++) { for (int y = 0; y < blockRows; y++) { float rowPercentage = (float)y / (float)blockRows; PictureBox newPictureBox = new PictureBox(); newPictureBox.BackColor = Color.FromArgb((int)Math.Round(255 * Math.Max(0, 1 - rowPercentage * 2), 0), (int)Math.Round(255 * (1 - 2 * Math.Abs(0.5f - rowPercentage)), 0), (int)Math.Round(255 * Math.Max(0, rowPercentage * 2 - 1), 0)); currentForm.Controls.Add(newPictureBox); Vector newBlockPosition = new Vector(x * blockWidth + blockFrame * 0.5f, y * blockHeight + blockFrame * 0.5f); Vector newBlockSize = new Vector(blockWidth - blockFrame, blockHeight - blockFrame); Block newBlock = new Block(newPictureBox, newBlockPosition, newBlockSize); newBlock.Points = 50 + 50 * (blockRows - y); } } gameThread = new Thread(GameThread); gameThread.IsBackground = true; gameThread.Start(); form.Disposed += delegate { gameThread.Abort(); }; InPlay = true; }