fix Util.PixelizeNote & HoldNote creation

This commit is contained in:
msk
2023-10-09 23:22:09 -07:00
parent d00f42753d
commit 43776de41b
2 changed files with 43 additions and 34 deletions
+19 -10
View File
@@ -60,14 +60,13 @@ namespace WacK.Things.TunnelObjects
private Polygon2D CreateSegment(NotePlay origin, NotePlay destination) private Polygon2D CreateSegment(NotePlay origin, NotePlay destination)
{ {
float minuteSize = Constants.BASE_2D_RESOLUTION / 60;
var length = Play.ScrollPxPerSec * (float)(destination.time - origin.time); var length = Play.ScrollPxPerSec * (float)(destination.time - origin.time);
var verts = new Vector2[4]; var verts = new Vector2[4];
int correctedDestPos = Util.NearestMinute((int) origin.pos, (int) destination.pos); int destPosNearest = Util.NearestMinute((int) origin.pos, (int) destination.pos);
var (originPosPx, originSizePx) = Util.PixelizeNote((int)origin.pos, (int)origin.size); var (originPosPx, originSizePx) = Util.PixelizeNote((int)origin.pos, (int)origin.size);
var (destPosPx, destSizePx) = Util.PixelizeNote(correctedDestPos, (int)destination.size); var (destPosPx, destSizePx) = Util.PixelizeNote(destPosNearest, (int)destination.size);
verts[0] = new Vector2(originPosPx, 0); verts[0] = new Vector2(originPosPx, 0);
verts[1] = new Vector2(verts[0].X + originSizePx, 0); verts[1] = new Vector2(verts[0].X + originSizePx, 0);
@@ -77,17 +76,27 @@ namespace WacK.Things.TunnelObjects
// draw overflow // draw overflow
var originFinalPos = origin.pos + origin.size; var originFinalPos = origin.pos + origin.size;
var destinationFinalPos = correctedDestPos + destination.size; var destinationFinalPos = destPosNearest + destination.size;
if (originFinalPos > 60 || destinationFinalPos > 60) if (originFinalPos > 60 || destinationFinalPos > 60)
{ {
var subSegment = new Polygon2D() { Polygon = verts, Antialiased = true }; GD.Print("overflowed to the right!");
subSegment.Translate(new Vector2(-Constants.BASE_2D_RESOLUTION, 0)); var subSegment = new Polygon2D
{
Polygon = verts,
Antialiased = true,
Position = new Vector2(-Constants.BASE_2D_RESOLUTION, 0)
};
segment.AddChild(subSegment); segment.AddChild(subSegment);
} }
if (originFinalPos < 60 || destinationFinalPos < 60) if (originFinalPos < 0 || destinationFinalPos < 0)
{ {
var subSegment = new Polygon2D() { Polygon = verts, Antialiased = true }; GD.Print("overflowed to the left!");
subSegment.Translate(new Vector2(Constants.BASE_2D_RESOLUTION, 0)); var subSegment = new Polygon2D
{
Polygon = verts,
Antialiased = true,
Position = new Vector2(Constants.BASE_2D_RESOLUTION, 0)
};
segment.AddChild(subSegment); segment.AddChild(subSegment);
} }
segment.Modulate = new Color("#FFFFFFD0"); segment.Modulate = new Color("#FFFFFFD0");
+3 -3
View File
@@ -77,8 +77,8 @@ namespace WacK
{ {
float pxPerMinute = Constants.BASE_2D_RESOLUTION / 60; float pxPerMinute = Constants.BASE_2D_RESOLUTION / 60;
float posPx = 0; float posPx;
float sizePx = 0; float sizePx;
if (size <= 59) if (size <= 59)
{ {
@@ -98,7 +98,7 @@ namespace WacK
} }
else // size is 60 or greater else // size is 60 or greater
{ {
size = 60; posPx = pxPerMinute * pos;
sizePx = Constants.BASE_2D_RESOLUTION; sizePx = Constants.BASE_2D_RESOLUTION;
} }
return (posPx, sizePx); return (posPx, sizePx);