public void Dispose() { Skybox.Dispose(); Terrain.Dispose(); Water.Dispose(); Ship.Dispose(); Shark.Dispose(); Character.Dispose(); Fishes.ForEach(fish => fish.Dispose()); Vegetation.Dispose(); Common.Dispose(); Weapon.Dispose(); Bubble.Dispose(); }
public void Update(float elapsedTime, float timeBeetweenUpdate) { Timer += elapsedTime; FogShader.SetValue("time", Timer); SoundManager.PlayMusicAmbient(Character.Submerge); Character.Update(Ray, Shark.Mesh, elapsedTime); PhysicalWorld.dynamicsWorld.StepSimulation(elapsedTime, maxSubSteps: 10, timeBeetweenUpdate); Fishes.ForEach(fish => fish.Update(elapsedTime, Camera)); Skybox.Update(); Shark.Update(elapsedTime); Water.Update(elapsedTime, Camera.Position); Terrain.Update(elapsedTime, Camera.Position); Character.LooksAtTheHatch = Ray.IntersectsWithObject(objectAABB: Ship.Plane.BoundingBox, distance: 500); Character.CanAttack = Ray.IntersectsWithObject(objectAABB: Shark.Mesh.BoundingBox, distance: 150); Character.NearShip = Ray.IntersectsWithObject(objectAABB: Ship.OutdoorMesh.BoundingBox, distance: 500); Character.IsNearSkybox = Skybox.IsNearSkybox; Bubble.Update(elapsedTime, MeshBuilder, Skybox); DetectSelectedItem(); }
public void Render(TgcFrustum frustum) { Character.Render(); if (Character.IsInsideShip) { Ship.RenderIndoorShip(); } else { FogShader.SetValue("CameraPos", TGCVector3.TGCVector3ToFloat4Array(Camera.Position)); FogShader.SetValue("eyePosition", TGCVector3.TGCVector3ToFloat4Array(Camera.Position)); Ship.RenderOutdoorShip(); Skybox.Render(Terrain.SizeWorld()); Terrain.Render(); Shark.Render(); QuadTree.Render(frustum, false); Fishes.ForEach(fish => fish.Render()); Water.Render(); Bubble.Render(); } }