public void Update() //This is constantly Updating. { currentTime = stopwatch.ElapsedMilliseconds; deltaTime = (currentTime - lastTime) / 1000.0f; timer += deltaTime; if (timer >= 1) { fps = frames; frames = 0; timer -= 1; } frames++; if (IsKeyDown(KeyboardKey.KEY_A)) //Key A { tankObject.Rotate(-deltaTime); } if (IsKeyDown(KeyboardKey.KEY_D)) //Key D { tankObject.Rotate(deltaTime); } if (IsKeyDown(KeyboardKey.KEY_W)) //Key W { Vector3 facing = new Vector3(tankObject.GlobalTransform.m1, tankObject.GlobalTransform.m2, 1) * deltaTime * 100; tankObject.Translate(facing.x, facing.y); } if (IsKeyDown(KeyboardKey.KEY_S)) //Key S { Vector3 facing = new Vector3(tankObject.GlobalTransform.m1, tankObject.GlobalTransform.m2, 1) * deltaTime * -100; tankObject.Translate(facing.x, facing.y); } if (IsKeyDown(KeyboardKey.KEY_Q)) //Key Q { turretObject.Rotate(-deltaTime); } if (IsKeyDown(KeyboardKey.KEY_E)) //Key E { turretObject.Rotate(deltaTime); } if (IsKeyPressed(KeyboardKey.KEY_SPACE)) //Key SpaceBar { SceneObject bulletObject = new SceneObject(); SpriteObject bulletSprite = new SpriteObject(); bulletSprites.Add(bulletSprite); bulletObject.AddChild(bulletSprite); turretObject.AddChild(bulletObject); bulletSprite.Load("bulletBlue.png"); bulletSprite.SetRotate(90 * (float)(Math.PI / 180.0f)); bulletObject.SetPosition(55f, -6); bulletSprite.corners[0].SetPosition(bulletSprite.Width, bulletSprite.Height); bulletSprite.corners[1].SetPosition(-bulletSprite.Width + 9, bulletSprite.Height); bulletSprite.corners[2].SetPosition(bulletSprite.Width, -bulletSprite.Height + 25); bulletSprite.corners[3].SetPosition(-bulletSprite.Width + 10, -bulletSprite.Height + 25); tankObject.UpdateTransform(); bulletObjects.Add(bulletObject); turretObject.RemoveChild(bulletObject); bulletObject.UpdateTransform(); } tankObject.Update(deltaTime); boxObject.Update(deltaTime); for (int i = 0; i < bulletObjects.Count; i++) { Vector3 facing = new Vector3(bulletObjects[i].LocalTransform.m1, bulletObjects[i].LocalTransform.m2, 1) * deltaTime * 250; bulletObjects[i].Translate(facing.x, facing.y); bulletObjects[i].Update(deltaTime); } for (int i = 0; i < bulletSprites.Count; i++) { if (bulletSprites[i].boxCollider.Overlaps(boxSprite.boxCollider)) { boxSprite.color = Color.YELLOW; break; } else { boxSprite.color = Color.BLUE; } } lastTime = currentTime; }