fix Util.PixelizeNote & HoldNote creation
This commit is contained in:
@@ -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
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user