private void CreateSystems() { SystemManager systemManager = SystemManager.Instance(); Game_Engine.Systems.System newSystem; newSystem = new SystemRender(entityCamera); systemManager.AddRenderSystem(newSystem); newSystem = new SystemRender(mapCamera); systemManager.AddRenderSystem(newSystem); newSystem = new SystemInput(); systemManager.AddUpdateSystem(newSystem); newSystem = new SystemPhysics(); systemManager.AddUpdateSystem(newSystem); newSystem = new SystemCollision(); systemManager.AddUpdateSystem(newSystem); newSystem = new SystemArtificialInput(map); artificialInput = (SystemArtificialInput)newSystem; systemManager.AddUpdateSystem(newSystem); newSystem = new SystemAnimation(); systemManager.AddUpdateSystem(newSystem); newSystem = new SystemAudio(); systemManager.AddUpdateSystem(newSystem); }
public override void Update(FrameEventArgs e) { dt = (float)e.Time; var keyboardState = Keyboard.GetState(); view = sceneManager.cam.GetViewMatrix(); if (keyboardState.IsKeyDown(Key.Escape)) { sceneManager.Exit(); } //Trajectory calculation if (InputNum >= 2) { ComponentPosition pos; if (ProjTime <= 0.0f) { SoundEffect.UpdateEmitPos(sceneManager.cam.Position); SoundEffect.Vol = 1f; SoundEffect.Play(); } SystemCollision collider = (SystemCollision)systemManager.FindSystem("SystemCollision"); pos = (ComponentPosition)entityManager.FindEntity("Banana").FindComponent(ComponentTypes.COMPONENT_POSITION); float power, angle; if (Angle == "") { angle = 0f; } else { angle = (float)((Math.PI / 180) * float.Parse(Angle)); } if (Power == "") { power = 0f; } else { power = float.Parse(Power) / 25f; } // x = X+V*COS(A)*T // z = Z+V*COS(A)*T // y = Y+V*SIN(A)*T-G*T*T/2 float x = pos.Position.X + power * (float)Math.Cos(angle) * ProjTime; float z = pos.Position.Z + power * (float)Math.Cos(angle) * ProjTime; float y = pos.Position.Y + power * (float)Math.Sin(angle) * ProjTime - (9.807f * 0.25f) * ProjTime * (ProjTime / 2); pos.Position = new Vector3(x, y, z); collider.UpdatePosition(pos.Position); ProjTime += dt; } }
private void CreateSystems() { ISystem newSystem; ComponentPosition pos = (ComponentPosition)entityManager.FindEntity("Banana").FindComponent(ComponentTypes.COMPONENT_POSITION); newSystem = new SystemRender(); systemManager.AddSystem(newSystem); newSystem = new SystemCollision(pos.Position); systemManager.AddSystem(newSystem); newSystem = new SystemPhysics(ref sceneManager.cam); systemManager.AddSystem(newSystem); newSystem = new SystemSkyBox(ref sceneManager.cam); systemManager.AddSystem(newSystem); }
public void InitializeSystem() { SystemBase newSystem; newSystem = new SystemSkybox(); renderSystems.Add(newSystem); newSystem = new SystemRender(); renderSystems.Add(newSystem); newSystem = new SystemPhysics(); physicsSystem.Add(newSystem); newSystem = new SystemCollision(); physicsSystem.Add(newSystem); newSystem = new SystemAudio(); systemList.Add(newSystem); }