Skip to main content
added 237 characters in body
Source Link

I have a vertical scrolling rhythm game, here is the commented code of the basic logic of the game neccesary to understand the question

int scrollSpeed = 500 //time in ms that take the note to get from the top to the bottom
float currentTime = 0 //time in ms of the song playing
List<int> noteTimings = new List() //List of the time in ms that the player should hit them, sorted in ascending order

for(i=0; i<noteTimings.Count; i++) {
    int noteTiming = noteTimings[i];
    float notePosition = (noteTiming-currentTime) / scrollSpeed;
}

The note position will be a value, 1 meaning the note is at the top of the screen and 0 at the bottom where the player should hit it.

What I want to do

I want to make a multiplier that will multiply the speed of the notes. With the actual code multiplying the note speed while playing will make the notes jump, for example if I multiply the note speed by two the notes will have the double of separation than before, and that would look like the notes moved INSTANTLY, but I want that double separation to be done before changing the speed so it looks linear and well when playing

edit: here's an example of how I want it to look: https://youtube.com/watch?v=ZBtNjb8E1n4 As you can see it changes velocity, this is done by changing the timing points so the velocity slow down or speed up depending on a multiplier

I have a vertical scrolling rhythm game, here is the commented code of the basic logic of the game neccesary to understand the question

int scrollSpeed = 500 //time in ms that take the note to get from the top to the bottom
float currentTime = 0 //time in ms of the song playing
List<int> noteTimings = new List() //List of the time in ms that the player should hit them, sorted in ascending order

for(i=0; i<noteTimings.Count; i++) {
    int noteTiming = noteTimings[i];
    float notePosition = (noteTiming-currentTime) / scrollSpeed;
}

The note position will be a value, 1 meaning the note is at the top of the screen and 0 at the bottom where the player should hit it.

What I want to do

I want to make a multiplier that will multiply the speed of the notes. With the actual code multiplying the note speed while playing will make the notes jump, for example if I multiply the note speed by two the notes will have the double of separation than before, and that would look like the notes moved INSTANTLY, but I want that double separation to be done before changing the speed so it looks linear and well when playing

I have a vertical scrolling rhythm game, here is the commented code of the basic logic of the game neccesary to understand the question

int scrollSpeed = 500 //time in ms that take the note to get from the top to the bottom
float currentTime = 0 //time in ms of the song playing
List<int> noteTimings = new List() //List of the time in ms that the player should hit them, sorted in ascending order

for(i=0; i<noteTimings.Count; i++) {
    int noteTiming = noteTimings[i];
    float notePosition = (noteTiming-currentTime) / scrollSpeed;
}

The note position will be a value, 1 meaning the note is at the top of the screen and 0 at the bottom where the player should hit it.

What I want to do

I want to make a multiplier that will multiply the speed of the notes. With the actual code multiplying the note speed while playing will make the notes jump, for example if I multiply the note speed by two the notes will have the double of separation than before, and that would look like the notes moved INSTANTLY, but I want that double separation to be done before changing the speed so it looks linear and well when playing

edit: here's an example of how I want it to look: https://youtube.com/watch?v=ZBtNjb8E1n4 As you can see it changes velocity, this is done by changing the timing points so the velocity slow down or speed up depending on a multiplier

Source Link

How to implement variable velocity in my rhythm game

I have a vertical scrolling rhythm game, here is the commented code of the basic logic of the game neccesary to understand the question

int scrollSpeed = 500 //time in ms that take the note to get from the top to the bottom
float currentTime = 0 //time in ms of the song playing
List<int> noteTimings = new List() //List of the time in ms that the player should hit them, sorted in ascending order

for(i=0; i<noteTimings.Count; i++) {
    int noteTiming = noteTimings[i];
    float notePosition = (noteTiming-currentTime) / scrollSpeed;
}

The note position will be a value, 1 meaning the note is at the top of the screen and 0 at the bottom where the player should hit it.

What I want to do

I want to make a multiplier that will multiply the speed of the notes. With the actual code multiplying the note speed while playing will make the notes jump, for example if I multiply the note speed by two the notes will have the double of separation than before, and that would look like the notes moved INSTANTLY, but I want that double separation to be done before changing the speed so it looks linear and well when playing