Synced timing and recording with beat snapping
This commit is contained in:
parent
01583d98c6
commit
fda5a24f66
@ -168,13 +168,13 @@ public class LLSIG implements KeyListener{
|
|||||||
} else {
|
} else {
|
||||||
int lane = Integer.parseInt(split[0]);
|
int lane = Integer.parseInt(split[0]);
|
||||||
NoteType noteType = NoteType.valueOf(split[1]);
|
NoteType noteType = NoteType.valueOf(split[1]);
|
||||||
int offset = (int)Math.round(Integer.parseInt(split[2])*beatDelay+LLSIG.offset);
|
int offset = (int)Math.round(Double.parseDouble(split[2])*beatDelay+LLSIG.offset);
|
||||||
int offset2 = -1;
|
int offset2 = -1;
|
||||||
while (lanes.size()<lane) {
|
while (lanes.size()<lane) {
|
||||||
lanes.add(new Lane(new ArrayList<Note>()));
|
lanes.add(new Lane(new ArrayList<Note>()));
|
||||||
}
|
}
|
||||||
if (noteType==NoteType.HOLD) {
|
if (noteType==NoteType.HOLD) {
|
||||||
offset2 = (int)Math.round(Integer.parseInt(split[2])*beatDelay+LLSIG.offset);
|
offset2 = (int)Math.round(Double.parseDouble(split[2])*beatDelay+LLSIG.offset);
|
||||||
lanes.get(lane-1).addNote(new Note(noteType,offset,offset2));
|
lanes.get(lane-1).addNote(new Note(noteType,offset,offset2));
|
||||||
} else {
|
} else {
|
||||||
lanes.get(lane-1).addNote(new Note(noteType,offset));
|
lanes.get(lane-1).addNote(new Note(noteType,offset));
|
||||||
@ -188,6 +188,13 @@ public class LLSIG implements KeyListener{
|
|||||||
|
|
||||||
private void SaveSongData(String song,List<Lane> lanes) {
|
private void SaveSongData(String song,List<Lane> lanes) {
|
||||||
List<String> data = new ArrayList<String>();
|
List<String> data = new ArrayList<String>();
|
||||||
|
for (int i=0;i<timings.size();i++) {
|
||||||
|
BeatTiming bt = timings.get(i);
|
||||||
|
data.add(new StringBuilder().append("B").append(",")
|
||||||
|
.append(bt.offset).append(",")
|
||||||
|
.append(bt.bpm)
|
||||||
|
.toString());
|
||||||
|
}
|
||||||
for (int lane=0;lane<lanes.size();lane++) {
|
for (int lane=0;lane<lanes.size();lane++) {
|
||||||
Lane l = lanes.get(lane);
|
Lane l = lanes.get(lane);
|
||||||
int noteCount=0;
|
int noteCount=0;
|
||||||
@ -198,8 +205,8 @@ public class LLSIG implements KeyListener{
|
|||||||
Note n = l.getNote(noteCount++);
|
Note n = l.getNote(noteCount++);
|
||||||
data.add(new StringBuilder().append(lane+1).append(",")
|
data.add(new StringBuilder().append(lane+1).append(",")
|
||||||
.append(n.getNoteType().name()).append(",")
|
.append(n.getNoteType().name()).append(",")
|
||||||
.append(n.getStartFrame()).append(",")
|
.append(n.getBeatSnap()).append(",")
|
||||||
.append(n.getEndFrame())
|
.append(n.getBeatSnapEnd())
|
||||||
.toString());
|
.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -259,7 +266,11 @@ public class LLSIG implements KeyListener{
|
|||||||
case KeyEvent.VK_Q:{if (LLSIG.game.PLAYING) {musicPlayer.pause();SaveSongData(song,lanes);}}break;
|
case KeyEvent.VK_Q:{if (LLSIG.game.PLAYING) {musicPlayer.pause();SaveSongData(song,lanes);}}break;
|
||||||
}
|
}
|
||||||
if (LLSIG.game.PLAYING&&lane!=-1&&EDITMODE) {
|
if (LLSIG.game.PLAYING&&lane!=-1&&EDITMODE) {
|
||||||
LLSIG.game.lanes.get(lane).addNote(new Note(NoteType.NORMAL,musicPlayer.getPlayPosition()));
|
Note n = new Note(NoteType.NORMAL,musicPlayer.getPlayPosition());
|
||||||
|
n.active=false;
|
||||||
|
System.out.println(Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*4)/(double)4);
|
||||||
|
n.setBeatSnap(Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*4)/(double)4);
|
||||||
|
LLSIG.game.lanes.get(lane).addNote(n);
|
||||||
}
|
}
|
||||||
if (lane!=-1) {
|
if (lane!=-1) {
|
||||||
if (PLAYING&&!EDITMODE) {
|
if (PLAYING&&!EDITMODE) {
|
||||||
|
|||||||
@ -4,6 +4,7 @@ public class Note {
|
|||||||
NoteType type;
|
NoteType type;
|
||||||
int start,end;
|
int start,end;
|
||||||
boolean active=true; //Set to false when the note has been scored.
|
boolean active=true; //Set to false when the note has been scored.
|
||||||
|
double beatSnapStart,beatSnapEnd = -1;
|
||||||
public Note(NoteType type,int start,int end) {
|
public Note(NoteType type,int start,int end) {
|
||||||
this.type=type;
|
this.type=type;
|
||||||
this.start=start;
|
this.start=start;
|
||||||
@ -30,6 +31,18 @@ public class Note {
|
|||||||
public void setEndFrame(int end) {
|
public void setEndFrame(int end) {
|
||||||
this.end = end;
|
this.end = end;
|
||||||
}
|
}
|
||||||
|
public void setBeatSnap(double value) {
|
||||||
|
this.beatSnapStart=value;
|
||||||
|
}
|
||||||
|
public double getBeatSnap() {
|
||||||
|
return beatSnapStart;
|
||||||
|
}
|
||||||
|
public void setBeatSnapEnd(double value) {
|
||||||
|
this.beatSnapEnd=value;
|
||||||
|
}
|
||||||
|
public double getBeatSnapEnd() {
|
||||||
|
return beatSnapEnd;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Note [type=" + type + ", start=" + start + ", end=" + end + "]";
|
return "Note [type=" + type + ", start=" + start + ", end=" + end + "]";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user