internal void moveAsteroids(Globals.moveDirection where) { //move the asteroids furthest away from the ship to the left switch (where) { case (Globals.moveDirection.right): moveTile(0, reference.background.bgRects[2]); moveTile(3, reference.background.bgRects[5]); moveTile(6, reference.background.bgRects[8]); break; case (Globals.moveDirection.up): moveTile(6, reference.background.bgRects[0]); moveTile(7, reference.background.bgRects[1]); moveTile(8, reference.background.bgRects[2]); break; case (Globals.moveDirection.left): moveTile(2, reference.background.bgRects[0]); moveTile(5, reference.background.bgRects[3]); moveTile(8, reference.background.bgRects[6]); break; case (Globals.moveDirection.down): moveTile(0, reference.background.bgRects[6]); moveTile(1, reference.background.bgRects[7]); moveTile(2, reference.background.bgRects[8]); break; } }
public void moveBackground(Globals.moveDirection whichDirection) { //recalculate bgrects, move all in one direction Vector2f moveDelta = new Vector2f(); switch (whichDirection) { case Globals.moveDirection.left: moveDelta.X -= bgRenderTexture.Size.X; bgMoved[2] = true; Console.WriteLine("left"); break; case Globals.moveDirection.right: moveDelta.X += bgRenderTexture.Size.X; bgMoved[0] = true; Console.WriteLine("right"); break; case Globals.moveDirection.up: moveDelta.Y -= bgRenderTexture.Size.Y; bgMoved[1] = true; Console.WriteLine("top"); break; case Globals.moveDirection.down: moveDelta.Y += bgRenderTexture.Size.Y; bgMoved[3] = true; Console.WriteLine("bottom"); break; } //move sprites for (int i = 0; i < bgSprites.Length; i++) { bgSprites[i].Position += moveDelta; bgRects[i] = bgSprites[i].GetGlobalBounds(); testShapes[i].Position += moveDelta; } }
//add calls to handle moving through the background tiles internal void bgMoveCallBack(Globals.moveDirection where) { //keep first, sets currentcenterrect background.moveBackground(where); asteroids.moveAsteroids(where); }