예제 #1
0
        /// <summary>
        /// Update the bullet location and check for collisions
        /// </summary>
        public void Update()
        {
            bool check = CollisionCheckV2();

            if (check)
            {
                isAlive = false;
                BulletController.AddExplosion(position);
            }
            position += direction;

            FindTexture(direction);
        }
예제 #2
0
        private void Window_UpdateFrame(object sender, FrameEventArgs e)
        {
            //Add update with time function
            Elappsedtime    += sw.ElapsedMilliseconds - Time.currentTime;
            Time.currentTime = sw.ElapsedMilliseconds;

            if (Elappsedtime >= updateInterval)
            {
                GameStateCheck();
                if (gameState == 0)
                {
                    Camera.CheckPresses();
                    mouseBuf.Empty();
                    mainMenu.Update();
                    Camera.DrawCursorPosition(mouseBuf, 20, out mouseBuf);
                    BufferFill(mouseBuf);
                }
                else if (gameState == 1)
                {
                    #region Game state 1
                    for (int i = 0; i < buf.Length; i++)
                    {
                        buf[i].Empty();
                    }
                    Camera.CenterCamera(player.GetPosition, new Vector2(window.Width, window.Height), new Vector2(Map.GetMap.GetLength(0) * 10, Map.GetMap.GetLength(1) * 10));
                    Camera.CameraUpdate();
                    buf = Map.FillBuffer(buf);
                    foreach (GraphicsBuffer b in buf)
                    {
                        BufferFill(b);
                    }
                    buffer.Empty();
                    frogBuf.Empty();
                    if (player.isAlive)
                    {
                        player.Update();
                    }
                    buffer = player.Draw(buffer);
                    for (int i = 0; i < bulletBuffer.Length; i++)
                    {
                        bulletBuffer[i].Empty();
                    }
                    EntityController.Update();
                    frogBuf = EntityController.Draw(frogBuf);
                    explosionBuf.Empty();
                    for (int i = 0; i < HUDBuf.Length; i++)
                    {
                        HUDBuf[i].Empty();
                    }
                    BulletController.Update();
                    bulletBuffer = BulletController.Draw(bulletBuffer);
                    explosionBuf = BulletController.DrawExplosion(explosionBuf);
                    HUD.Update(player.health);
                    HUDBuf = HUD.Draw(HUDBuf, player.position);
                    foreach (GraphicsBuffer b in HUDBuf)
                    {
                        BufferFill(b);
                    }
                    BufferFill(explosionBuf);
                    BufferFill(frogBuf);
                    foreach (GraphicsBuffer b in bulletBuffer)
                    {
                        BufferFill(b);
                    }
                    BufferFill(buffer);
                    #endregion
                }
                else if (gameState == 2)
                {
                    Camera.CheckPresses();
                    mouseBuf.Empty();
                    inGameMenu.Update();
                    Camera.DrawCursorPosition(mouseBuf, 20, out mouseBuf);
                    BufferFill(mouseBuf);
                }
                Elappsedtime -= updateInterval;
            }
        }
예제 #3
0
 static private void CheckBulletHit(Moving_entity enemy)
 {
     BulletController.CheckCollisionWith(enemy);
 }
예제 #4
0
        private void Window_Load(object sender, EventArgs e)
        {
            floorTex     = ContentPipe.LoadTexture("Floor.bmp");
            wallTex      = ContentPipe.LoadTexture("Wall.bmp");
            bulletTex    = ContentPipe.LoadTexture("Bullet\\BulletUp.png");
            frogTex      = ContentPipe.LoadTexture("Frog\\Frog.png");
            explosionTex = ContentPipe.LoadTexture("Bullet\\Explosion.png");
            //Hud textures
            HUDTex[0] = ContentPipe.LoadTexture("HUD\\Heart.png");
            HUDTex[1] = ContentPipe.LoadTexture("HUD\\HeartCover.png");
            HUDTex[7] = ContentPipe.LoadTexture("HUD\\Minimap.png");
            HUDTex[2] = ContentPipe.LoadTexture("HUD\\BackCover.png");
            HUDTex[3] = floorTex;
            HUDTex[4] = wallTex;
            Map.LoadMap("Content\\map.txt");
            player            = new Player(new Vector2(200, 300), new Vector2(0, 0), Map.GetMap);
            HUDTex[5]         = player.GetTexture;
            HUDTex[6]         = ContentPipe.LoadTexture("HUD\\EnemyEntity.png");
            buffer.vertBuffer = new Vertex[0];

            Func <bool>[] func = new Func <bool>[2] {
                Start, Quit
            };
            //Main menu setup
            mainMenu = new Menu(2, MMbuttonPos, MMbuttonWidth, MMbuttonHeight, mainMenuTextureStrings, func);
            //In game menu setup
            func = new Func <bool>[3] {
                Resume, Restart, Quit
            };
            inGameMenu = new Menu(3, IGMButtonPos, IGMButtonWidth, IGMButtonHeight, inGameMenuTextureStrings, func);
            EntityController.SetupEntityController(ref player);
            for (int i = 0; i < nmbrOfFrogs; i++)
            {
                EntityController.AddEntity((new Vector2(rand.Next(0, (int)Map.GetSize.X * 10), rand.Next(0, (int)Map.GetSize.Y * 10))), new Vector2((float)rand.NextDouble(), (float)rand.NextDouble()), id);
                id++;
            }

            frogBuf     = new GraphicsBuffer();
            frogBuf.VBO = GL.GenBuffer();
            frogBuf.IBO = GL.GenBuffer();
            frogBuf.Empty();

            explosionBuf     = new GraphicsBuffer();
            explosionBuf.VBO = GL.GenBuffer();
            explosionBuf.IBO = GL.GenBuffer();
            explosionBuf.Empty();

            buffer.VBO = GL.GenBuffer();
            GL.BindBuffer(BufferTarget.ArrayBuffer, buffer.VBO);
            GL.BufferData <Vertex>(BufferTarget.ArrayBuffer, (IntPtr)(Vertex.SizeInBytes * buffer.vertBuffer.Length), buffer.vertBuffer, BufferUsageHint.StaticDraw);
            GL.BindBuffer(BufferTarget.ArrayBuffer, 0);

            buffer.indexBuffer = new uint[0];

            buffer.IBO = GL.GenBuffer();
            GL.BindBuffer(BufferTarget.ElementArrayBuffer, buffer.IBO);
            GL.BufferData(BufferTarget.ElementArrayBuffer, (IntPtr)(sizeof(uint) * (buffer.indexBuffer.Length)), buffer.indexBuffer, BufferUsageHint.StaticDraw);
            GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0);

            window.CursorVisible = false;
            buf = new GraphicsBuffer[2];
            for (int i = 0; i < buf.Length; i++)
            {
                buf[i]     = new GraphicsBuffer();
                buf[i].VBO = GL.GenBuffer();
                buf[i].IBO = GL.GenBuffer();
                buf[i].Empty();
            }

            for (int i = 0; i < bulletBuffer.Length; i++)
            {
                bulletBuffer[i]     = new GraphicsBuffer();
                bulletBuffer[i].VBO = GL.GenBuffer();
                bulletBuffer[i].IBO = GL.GenBuffer();
                bulletBuffer[i].Empty();
            }

            //Bullet controller setup
            BulletController.LoadTextures();
            HUD.SetupHUD(player.health, new Vector2(30, window.Height - 15), 5, window);
            for (int i = 0; i < HUDBuf.Length; i++)
            {
                HUDBuf[i]     = new GraphicsBuffer();
                HUDBuf[i].VBO = GL.GenBuffer();
                HUDBuf[i].IBO = GL.GenBuffer();
                HUDBuf[i].Empty();
            }

            mouseBuf.VBO = GL.GenBuffer();
            mouseBuf.IBO = GL.GenBuffer();
            mouseBuf.Empty();

            updateInterval = 20;
            sw.Start();
        }
예제 #5
0
 public void LauchAttack(Vector2 pos, Vector2 direction, int damage)
 {
     BulletController.AddBullet(pos, direction, damage);
 }