Full Tablet wrote:
_Decelerator wrote:
add a skin.ini option for how slanted you want the stage to be. 0 would be flat and 100 would be the max slant. Something like
stageSlant = 20
Why not make the value be in degrees? (capped to a high slant, like 85°)
That way the value is easier to understand, and the increase of scroll time of each note is more straightforward to calculate.
13720ms * (HitPosition/480) / ScrollSpeed / Cos(stageSlant) (As long as the stage still fills the screen, and is not cropped up to a certain length).
Scroll time of the note should remain constant under the stageSlant to make things simple. My approach just involves the stretching corners of a state as if it is a sprite. As stageSlant increases, the stage's height decreases proportionaly and the top edge of the stage also decreases proportionaly. While those aspects get modified, the stage would still be clipped to the bottom of the screen.
stageSlant 0.0 would mean that the stage takes 100% of the vertical height.
stageSlant 0.25 would mean it would take 75% of the veritical height.
stangeSlant 1.0 would it would take 0% of the vertical height
stageHeight = originalStageHeight/(originalStageHeight * (1.0- stageSlant))
As the stageSlant increase, the top edge of the stage has a decrease in horizontal width by sum(columnWidth)/(stageSlant*sum(columnWidth)) of the original width, where stageSlant is a value from 0.0 to 1.0.
Ofc divide by 0 checking should be included. I hope you understood what I am getting at.