public void Initialize( ContentManager content, float X, float Y, int viewPortWidth, int viewPortHeight, string assetName) { _state = TileState.Blank; _position.X = X; _position.Y = Y; _viewPortWidth = viewPortWidth; _viewPortHeight = viewPortHeight; _tileGraphic = content.Load<Texture2D>(assetName); _X = content.Load<Texture2D>("BoardX"); _O = content.Load<Texture2D>("BoardO"); _XMoveClip = content.Load<SoundEffect>("XMove"); _OMoveClip = content.Load<SoundEffect>("OMove"); jiggleState = JiggleState.Center; jiggleDirection = JiggleDirection.Left; }
void Jiggle(SpriteBatch spriteBatch, Texture2D tile, Vector2 tilePosition, Texture2D letter) { if (jiggleDirection == JiggleDirection.Stop) { Rectangle rect = new Rectangle((int)tilePosition.X, (int)tilePosition.Y, ((int)(0.18 * ViewPortWidth)), ((int)(0.3 * ViewPortHeight))); spriteBatch.Draw(tile, rect, Color.White); spriteBatch.Draw(letter, rect, Color.White); } else { switch (jiggleState) { case JiggleState.Center: switch (jiggleDirection) { case JiggleDirection.Left: jiggleState = JiggleState.Left; tilePosition.X -= JiggleAmount; tilePosition.Y -= JiggleAmount; break; case JiggleDirection.Right: jiggleState = JiggleState.Right; tilePosition.X += JiggleAmount; tilePosition.Y += JiggleAmount; break; } break; case JiggleState.Left: switch (jiggleDirection) { case JiggleDirection.Left: jiggleDirection = JiggleDirection.Right; break; case JiggleDirection.Right: jiggleState = JiggleState.Center; tilePosition.X += JiggleAmount; tilePosition.Y += JiggleAmount; break; } break; case JiggleState.Right: switch (jiggleDirection) { case JiggleDirection.Left: jiggleState = JiggleState.Center; tilePosition.X -= JiggleAmount; tilePosition.Y -= JiggleAmount; break; case JiggleDirection.Right: jiggleDirection = JiggleDirection.Left; break; } break; } Rectangle rect = new Rectangle((int)tilePosition.X, (int)tilePosition.Y, ((int)(0.18 * ViewPortWidth)), ((int)(0.3 * ViewPortHeight))); spriteBatch.Draw(tile, rect, Color.White); spriteBatch.Draw(letter, rect, Color.White); } }