Mihao

Untitled

Nov 7th, 2017
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.04 KB | None | 0 0
  1. using Microsoft.Xna.Framework;
  2. using Microsoft.Xna.Framework.Graphics;
  3. using Microsoft.Xna.Framework.Input;
  4.  
  5. namespace Game2
  6. {
  7.     /// <summary>
  8.     /// This is the main type for your game.
  9.     /// </summary>
  10.     public class Game1 : Game
  11.     {
  12.  
  13.  
  14.  
  15.  
  16.         GraphicsDeviceManager graphics;
  17.         SpriteBatch spriteBatch;
  18.  
  19.         Texture2D rightWalk, leftWalk, bullet;
  20.         Rectangle destRect, bulletdestRect;
  21.         Rectangle sourceRect;
  22.         KeyboardState ks;
  23.         Vector2 position = new Vector2(20,20) ;
  24.         Vector2 bullet_pos = new Vector2(0, 0);
  25.         int kierunek =0;
  26.         int proffesorMaxFrame;
  27.         private float Elapsed;
  28.         private float delay = 1000/6f;
  29.         int frames = 0;
  30.         int bullet_frames = 0;
  31.         bool locker;
  32.         Rectangle BulletsSourceRect;
  33.  
  34.         public Game1()
  35.         {
  36.             graphics = new GraphicsDeviceManager(this);
  37.             Content.RootDirectory = "Content";
  38.             graphics.PreferredBackBufferHeight = 500;
  39.             graphics.PreferredBackBufferWidth = 500;
  40.         }
  41.  
  42.         /// <summary>
  43.         /// Allows the game to perform any initialization it needs to before starting to run.
  44.         /// This is where it can query for any required services and load any non-graphic
  45.         /// related content.  Calling base.Initialize will enumerate through any components
  46.         /// and initialize them as well.
  47.         /// </summary>
  48.         protected override void Initialize()
  49.         {
  50.             // TODO: Add your initialization logic here
  51.  
  52.             destRect = new Rectangle(100, 100, 64, 64);
  53.             proffesorMaxFrame = 9;
  54.             locker = false;
  55.  
  56.  
  57.             base.Initialize();
  58.         }
  59.  
  60.         /// <summary>
  61.         /// LoadContent will be called once per game and is the place to load
  62.         /// all of your content.
  63.         /// </summary>
  64.         protected override void LoadContent()
  65.         {
  66.             // Create a new SpriteBatch, which can be used to draw textures.
  67.             spriteBatch = new SpriteBatch(GraphicsDevice);
  68.  
  69.             rightWalk = Content.Load<Texture2D>("proffessor");
  70.             bullet = Content.Load<Texture2D>("bullet");
  71.  
  72.             // TODO: use this.Content to load your game content here
  73.         }
  74.  
  75.         /// <summary>
  76.         /// UnloadContent will be called once per game and is the place to unload
  77.         /// game-specific content.
  78.         /// </summary>
  79.         protected override void UnloadContent()
  80.         {
  81.             // TODO: Unload any non ContentManager content here
  82.         }
  83.  
  84.         /// <summary>
  85.         /// Allows the game to run logic such as updating the world,
  86.         /// checking for collisions, gathering input, and playing audio.
  87.         /// </summary>
  88.         /// <param name="gameTime">Provides a snapshot of timing values.</param>
  89.         ///
  90.  
  91.             private void Animated (GameTime gameTime, int way)
  92.         {
  93.  
  94.             Elapsed += (float)gameTime.ElapsedGameTime.TotalMilliseconds;
  95.  
  96.             switch (way)
  97.             {
  98.                 case 0: // stanie
  99.                     {
  100.                         sourceRect = new Rectangle(64, 192, 64, 64);
  101.                         break;
  102.                     }
  103.                 case 1: // wprawo
  104.                     {
  105.                         if (Elapsed >= delay)
  106.                         {
  107.                             if (frames >= proffesorMaxFrame-1)
  108.                             {
  109.                                 frames = 0;
  110.                             }
  111.                             else
  112.                             {
  113.                                 frames++;
  114.                             }
  115.                             Elapsed = 0;
  116.                         }
  117.  
  118.                         sourceRect = new Rectangle(64 * frames, 192, 64, 64);
  119.                         break;
  120.                     }
  121.                 case 2: // w lewo
  122.                     {
  123.                         if (Elapsed >= delay)
  124.                         {
  125.                             if (frames >= proffesorMaxFrame-1)
  126.                             {
  127.                                 frames = 0;
  128.                             }
  129.                             else
  130.                             {
  131.                                 frames++;
  132.                             }
  133.                             Elapsed = 0;
  134.                         }
  135.  
  136.                         sourceRect = new Rectangle(64 * frames, 64, 64, 64);
  137.                         break;
  138.                     }
  139.                 case 3: // w up
  140.                     {
  141.                         if (Elapsed >= delay)
  142.                         {
  143.                             if (frames >= proffesorMaxFrame - 1)
  144.                             {
  145.                                 frames = 0;
  146.                             }
  147.                             else
  148.                             {
  149.                                 frames++;
  150.                             }
  151.                             Elapsed = 0;
  152.                         }
  153.  
  154.                         sourceRect = new Rectangle(64 * frames, 0, 64, 64);
  155.                         break;
  156.                     }
  157.                 case 4: // w down
  158.                     {
  159.                         if (Elapsed >= delay)
  160.                         {
  161.                             if (frames >= proffesorMaxFrame - 1)
  162.                             {
  163.                                 frames = 0;
  164.                             }
  165.                             else
  166.                             {
  167.                                 frames++;
  168.                             }
  169.                             Elapsed = 0;
  170.                         }
  171.  
  172.                         sourceRect = new Rectangle(64 * frames, 128, 64, 64);
  173.                         break;
  174.                     }
  175.             }
  176.  
  177.         }
  178.  
  179.         void Shoot( GameTime gameTime, int way)
  180.         {
  181.             switch(way)
  182.             {
  183.                 case  1:
  184.                     {
  185.                         if (Elapsed >= delay)
  186.                         {
  187.                             if (bullet_frames >= proffesorMaxFrame - 1)
  188.                             {
  189.                                 bullet_frames = 0;
  190.                                 locker = false;
  191.                             }
  192.                             else
  193.                             {
  194.                                 bullet_pos.X += 10;
  195.                                 bullet_frames++;
  196.                             }
  197.                             Elapsed = 0;
  198.                            
  199.                         }
  200.  
  201.                         BulletsSourceRect = new Rectangle(64 * frames, 192, 64, 64);
  202.                         break;
  203.                     }
  204.                 default:
  205.                     {
  206.  
  207.                         break;
  208.                     }
  209.             }
  210.         }
  211.  
  212.         protected override void Update(GameTime gameTime)
  213.         {
  214.             if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
  215.                 Exit();
  216.  
  217.  
  218.             ks = Keyboard.GetState();
  219.  
  220.             if(ks.IsKeyDown(Keys.Right) && position.X < (graphics.PreferredBackBufferHeight-48))
  221.             {
  222.                 position.X += 2f;
  223.                 kierunek = 1;
  224.             }
  225.  
  226.             else if (ks.IsKeyDown(Keys.Left))
  227.             {
  228.                 position.X -= 2f;
  229.                 kierunek = 2;
  230.             }
  231.             else if( ks.IsKeyDown(Keys.Up))
  232.              {
  233.                 position.Y -= 2f;
  234.                 kierunek = 3;
  235.             }
  236.             else if(ks.IsKeyDown(Keys.Down))
  237.             {
  238.                 position.Y += 2f;
  239.                 kierunek = 4;
  240.             }
  241.             else
  242.             {
  243.                 kierunek = 0;
  244.             }
  245.  
  246.             if(ks.IsKeyDown(Keys.Space) && locker == false)
  247.             {
  248.                 locker = true;
  249.                 Shoot(gameTime, kierunek);
  250.             }
  251.  
  252.  
  253.             Animated(gameTime, kierunek);
  254.            
  255.             // TODO: Add your update logic here
  256.  
  257.             destRect = new Rectangle((int)position.X, (int)position.Y, 64, 64);
  258.             bulletdestRect = new Rectangle((int)bullet_pos.X, (int)bullet_pos.Y, 25, 25);
  259.             base.Update(gameTime);
  260.         }
  261.  
  262.         /// <summary>
  263.         /// This is called when the game should draw itself.
  264.         /// </summary>
  265.         /// <param name="gameTime">Provides a snapshot of timing values.</param>
  266.         protected override void Draw(GameTime gameTime)
  267.         {
  268.             GraphicsDevice.Clear(Color.CornflowerBlue);
  269.  
  270.             spriteBatch.Begin();
  271.  
  272.             spriteBatch.Draw(rightWalk, destRect, sourceRect, Color.White);
  273.           //  spriteBatch.Draw(rightWalk, new Rectangle(200,200,64,64), new Rectangle(0,0,64,64), Color.White);
  274.            if(locker ==  true)
  275.             {
  276.                 spriteBatch.Draw(bullet, bulletdestRect, BulletsSourceRect, Color.White);
  277.             }
  278.             spriteBatch.End();
  279.  
  280.             // TODO: Add your drawing code here
  281.  
  282.             base.Draw(gameTime);
  283.         }
  284.     }
  285. }
Add Comment
Please, Sign In to add comment