Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using Microsoft.Xna.Framework;
- using Microsoft.Xna.Framework.Audio;
- using Microsoft.Xna.Framework.Content;
- using Microsoft.Xna.Framework.GamerServices;
- using Microsoft.Xna.Framework.Graphics;
- using Microsoft.Xna.Framework.Input;
- using Microsoft.Xna.Framework.Media;
- namespace XNA_Game_Try_2
- {
- /// <summary>
- /// This is the main type for your game
- /// </summary>
- public class Game1 : Microsoft.Xna.Framework.Game
- {
- GraphicsDeviceManager graphics;
- SpriteBatch spriteBatch;
- private Texture2D megaman;
- private Texture2D megamanFlip;
- private Texture2D background;
- private KeyboardState keyBoard;
- private AnimatedSprite megamanRun;
- private AnimatedSprite megamanJump;
- private AnimatedSprite megamanJumpFlip;
- int timeSinceLastFrame = 0; // two vars to control
- int millisecondsPerFrame = 100; // the speed of the movement
- public string xScale = "Right"; //sprite state var
- Vector2 megamanPosition;
- float speed = 4;
- float jumpHeight = 4;
- public Game1()
- {
- graphics = new GraphicsDeviceManager(this);
- Content.RootDirectory = "Content";
- }
- /// <summary>
- /// Allows the game to perform any initialization it needs to before starting to run.
- /// This is where it can query for any required services and load any non-graphic
- /// related content. Calling base.Initialize will enumerate through any components
- /// and initialize them as well.
- /// </summary>
- protected override void Initialize()
- {
- // TODO: Add your initialization logic here
- base.Initialize();
- }
- /// <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);
- // TODO: use this.Content to load your game content here
- megaman = Content.Load<Texture2D>("MegamanX"); // Stand sprite facing to the right
- megamanFlip = Content.Load<Texture2D>("MegamanX_Flip"); // Stand sprite facing to the left
- background = Content.Load<Texture2D>("stage1"); // The temp background
- Texture2D texture = Content.Load<Texture2D>("Megaman Tileset"); // Character's running sprite loaded
- Texture2D texture2 = Content.Load<Texture2D>("MegamanX_Jump"); // Character's jumping sprite loaded
- megamanRun = new AnimatedSprite(texture, 1, 5); // Character's running sprite in a var
- megamanJump = new AnimatedSprite(texture2, 1, 7); // Character's jumping sprite in a var
- megamanPosition = new Vector2(150, 170); // Character's position upon starting the game
- }
- /// <summary>
- /// UnloadContent will be called once per game and is the place to unload
- /// all content.
- /// </summary>
- protected override void UnloadContent()
- {
- // TODO: Unload any non ContentManager content here
- }
- /// <summary>
- /// Allows the game to run logic such as updating the world,
- /// checking for collisions, gathering input, and playing audio.
- /// </summary>
- /// <param name="gameTime">Provides a snapshot of timing values.</param>
- protected override void Update(GameTime gameTime)
- {
- // Allows the game to exit
- if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
- this.Exit();
- // TODO: Add your update logic here
- if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
- this.Exit();
- keyBoard = Keyboard.GetState();
- if (keyBoard.IsKeyDown(Keys.Right))
- {
- megamanPosition.X += speed;
- xScale = "Right";
- //Walk to the right
- }
- if (keyBoard.IsKeyDown(Keys.Left))
- {
- megamanPosition.X -= speed;
- xScale = "Left";
- //Walk to the left
- }
- if (keyBoard.Equals(new KeyboardState()))
- {
- if (xScale == "Right")
- {
- xScale = "StandRight";
- }
- else if (xScale == "Left")
- {
- xScale = "StandLeft";
- }
- //No keys are pressed.
- }
- //movment control speed
- timeSinceLastFrame += gameTime.ElapsedGameTime.Milliseconds;
- if (timeSinceLastFrame > millisecondsPerFrame)
- {
- timeSinceLastFrame -= millisecondsPerFrame;
- megamanRun.Update();
- }
- base.Update(gameTime);
- }
- /// <summary>
- /// This is called when the game should draw itself.
- /// </summary>
- /// <param name="gameTime">Provides a snapshot of timing values.</param>
- protected override void Draw(GameTime gameTime)
- {
- GraphicsDevice.Clear(Color.CornflowerBlue);
- // TODO: Add your drawing code here
- spriteBatch.Begin();
- spriteBatch.Draw(background, new Rectangle(0, 0, 800, 480), Color.White);
- spriteBatch.End();
- if (xScale == "Right" || xScale == "Left")
- {
- //draw
- megamanRun.Draw(spriteBatch, megamanPosition, xScale);
- }
- else if (xScale == "StandRight")
- {
- spriteBatch.Begin();
- spriteBatch.Draw(megaman, megamanPosition, Color.White);
- spriteBatch.End();
- }
- else if(xScale == "StandLeft")
- {
- spriteBatch.Begin();
- spriteBatch.Draw(megamanFlip, megamanPosition, Color.White);
- spriteBatch.End();
- }
- else if (xScale == "JumpRight" || xScale == "JumpLeft")
- {
- megamanJump.Draw(spriteBatch, megamanPosition, xScale);
- }
- base.Draw(gameTime);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement