This commit is contained in:
Yoshman29
2022-10-20 16:15:18 +02:00
parent 03c87027d2
commit 9671177e64
3 changed files with 29 additions and 12 deletions
+21 -9
View File
@@ -185,23 +185,35 @@ class Note extends FlxSprite
override function draw() {
if (angleOffsets && Std.int(angle % 360) != 0) {
// get default values
var oldOffset = FlxPoint.get(offset.x, offset.y);
// var oldOrigin = FlxPoint.get(origin.x, origin.y);
offset.set(
(Math.cos(angle / 180 * Math.PI) * offset.x) + (Math.sin(angle / 180 * Math.PI) * offset.y),
(Math.sin(angle / 180 * Math.PI) * offset.x) + (Math.cos(angle / 180 * Math.PI) * offset.y));
// origin.set(
// (-Math.cos(angle / 180 * Math.PI) * origin.x) + (-Math.sin(angle / 180 * Math.PI) * origin.y),
// (-Math.sin(angle / 180 * Math.PI) * origin.x) + (-Math.cos(angle / 180 * Math.PI) * origin.y));
// get offset pos without origin
var pos = FlxPoint.get(offset.x - origin.x, offset.y - origin.y);
// updates sin and cos values for angle
updateTrig();
var anglePos = FlxPoint.get(
(_cosAngle * pos.x) + (-_sinAngle * pos.y),
(-_sinAngle * pos.x) + (_cosAngle * pos.y));
// applies new values
x -= anglePos.x;
y -= anglePos.y;
offset.set(origin.x, origin.y);
// draw
super.draw();
// reset values
offset.set(oldOffset.x, oldOffset.y);
// origin.set(oldOrigin.x, oldOrigin.y);
x += anglePos.x;
y += anglePos.y;
// put flxpoints back in the recycling pool
oldOffset.put();
// oldOrigin.put();
pos.put();
anglePos.put();
return;
}
super.draw();
+7 -2
View File
@@ -40,7 +40,10 @@ class Strum extends FlxSprite {
}
}
public function updateNotePosition(daNote:Note) {
if (!daNote.exists) return;
var offset = FlxPoint.get(daNote.isSustainNote ? ((Note.swagWidth - daNote.width) / 2) : 0, (Conductor.songPosition - daNote.strumTime) * (0.45 * FlxMath.roundDecimal(PlayState.instance.scrollSpeed, 2)));
var realOffset = FlxPoint.get(0, 0);
if (daNote.isSustainNote) offset.y -= Note.swagWidth / 2;
@@ -48,8 +51,10 @@ class Strum extends FlxSprite {
var noteAngle = getNotesAngle();
daNote.angle = daNote.isSustainNote ? noteAngle : angle;
if (Std.int(noteAngle % 360) != 0) {
realOffset.x = (Math.cos(noteAngle / 180 * Math.PI) * offset.x) + (Math.sin(noteAngle / 180 * Math.PI) * offset.y);
realOffset.y = (Math.sin(noteAngle / 180 * Math.PI) * offset.x) + (Math.cos(noteAngle / 180 * Math.PI) * offset.y);
var noteAngleCos = Math.cos(noteAngle / 180 * Math.PI);
var noteAngleSin = Math.sin(noteAngle / 180 * Math.PI);
realOffset.x = (noteAngleCos * offset.x) + (noteAngleSin * offset.y);
realOffset.y = (noteAngleSin * offset.x) + (noteAngleCos * offset.y);
} else {
realOffset.x = offset.x;
realOffset.y = offset.y;