public void TestBasicLinear() { var constructor = new EventConstructor(yBegin: 0, tBegin: 0, tEnd: 2 * (float)Math.PI); var sampleOut = EventList.Join(new List <EventList>() { constructor.SampleEvents(_pts) .Modify .SetX(t => (float)Math.Cos(t)) .SetY(t => (float)Math.Sin(t)) .SetTimeRange(1000, 2000) .AlignRotate() .Events, }, false); PlotPoints(sampleOut); Assert.AreEqual((float)Math.PI / 2, sampleOut.R[0], delta); Assert.AreEqual(0, sampleOut.R[_pts / 4], delta); Assert.AreEqual((float)-Math.PI / 2, sampleOut.R[_pts / 2], delta); Assert.AreEqual((float)Math.PI, sampleOut.R[_pts / 4 * 3], delta); Assert.AreEqual(1, sampleOut.X[0], delta); Assert.AreEqual(0, sampleOut.X[_pts / 4], delta); Assert.AreEqual(-1, sampleOut.X[_pts / 2], delta); Assert.AreEqual(0, sampleOut.X[_pts / 4 * 3], delta); Assert.AreEqual(0, sampleOut.Y[0], delta); Assert.AreEqual(1, sampleOut.Y[_pts / 4], delta); Assert.AreEqual(0, sampleOut.Y[_pts / 2], delta); Assert.AreEqual(-1, sampleOut.Y[_pts / 4 * 3], delta); }
// Start is called before the first frame update void Start() { eventCanvas.gameObject.SetActive(false); ButtonTwo.gameObject.SetActive(false); ButtonThree.gameObject.SetActive(false); ButtonFour.gameObject.SetActive(false); eventsHappened = 0; Manager = GetComponent <GameManager>(); Construct = GetComponent <EventConstructor>(); }
public void TestPipelineWorkflow() { var constructor = new EventConstructor(); var samples = constructor.SampleEvents(_pts); samples.Modify .AddRotateXY(0.5f * (float)Math.PI) .AddRotateXY(0.5f * (float)Math.PI); Assert.AreEqual(-1f, samples.Y[0]); Assert.AreEqual(0, samples.Y[_pts]); }
public void TestOopWorkflow() { var constructor = new EventConstructor(); var samples = constructor.SampleEvents(_pts); var rotate = new EventAddRotateXY(0.5f * (float)Math.PI); samples.Modify.WithModifiers(new List <EventModifier>() { rotate, rotate }); Assert.AreEqual(-1f, samples.Y[0]); Assert.AreEqual(0, samples.Y[_pts]); }
public void TestStandard() { var reader = new OsuManiaReader("tests/Files/ex.osu"); var columns = reader.Columns.Take(200).ToList(); var offsets = reader.Offsets.Take(200).ToList(); var samples = 20; var duration = 1000; var columnSpace = 0.3f; var spritePath = "down.png"; var sprites = new List <Sprite>(); var constructor = new EventConstructor(); var colMap = new Dictionary <int, float>(); colMap.Add(0, 0.5f * (float)Math.PI); colMap.Add(1, 0); colMap.Add(2, -1f * (float)Math.PI); colMap.Add(3, -0.5f * (float)Math.PI); // Receptors for (int i = 0; i < 4; i++) { var sprite = new Sprite( new EventConstructor(yBegin: 0) .SampleEvents(samples) .Modify .SetTimeRange(-duration, 20000 - duration) .AddRotate(colMap[i]) .AddX((i - 1.5f) * columnSpace) .AddRotateXY(t => t % 20000 / 10000f * (float)Math.PI) .FitXY(-1, 1, -1, 1, 0, 480, 480, 0) .AddX(80) .Events, "receptor.png" ); sprites.Add(sprite); } // Notes foreach (var obj in columns.Zip(offsets)) { var column = obj.First; var offset = obj.Second; var sprite = new Sprite( constructor .SampleEvents(samples) .Modify .AddRotate(t => - t * 2 * (float)Math.PI) .AddRotateXY(t => - t * (float)Math.PI) .SetTimeRange(offset - duration, offset) .AddRotate(colMap[column]) .AddX((column - 1.5f) * columnSpace) .AddRotateXY(t => t % 20000 / 10000f * (float)Math.PI) .FitXY(-1, 1, -1, 1, 0, 480, 480, 0) .AddX(80) .Events, spritePath ); sprites.Add(sprite); } var storyboard = new Storyboard(sprites); storyboard.Export("Getty - Sonic Bass (Evening).osb"); }
public void Setup() { System.IO.Directory.CreateDirectory(dir); Constructor = new EventConstructor(); EventList = Constructor.SampleEvents(_pts); }