/// <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); }
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; } }
static private void CheckBulletHit(Moving_entity enemy) { BulletController.CheckCollisionWith(enemy); }
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(); }
public void LauchAttack(Vector2 pos, Vector2 direction, int damage) { BulletController.AddBullet(pos, direction, damage); }