Merge remote-tracking branch 'upstream/release-0.1' into release-0.1
This commit is contained in:
commit
c8e8c6d09b
3 files changed
+41
-8
No files matched your search
Binary file not shown.
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 65 KiB |
+16
-3
@@ -192,6 +192,8 @@ namespace Vocaluxe
|
|||||||
|
|
||||||
class SplashScreen : Form
|
class SplashScreen : Form
|
||||||
{
|
{
|
||||||
|
Bitmap logo;
|
||||||
|
|
||||||
public SplashScreen()
|
public SplashScreen()
|
||||||
{
|
{
|
||||||
string path = Path.Combine(Environment.CurrentDirectory, Path.Combine(CSettings.sFolderGraphics, CSettings.sLogo));
|
string path = Path.Combine(Environment.CurrentDirectory, Path.Combine(CSettings.sFolderGraphics, CSettings.sLogo));
|
||||||
@@ -199,9 +201,8 @@ namespace Vocaluxe
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Bitmap logo = new Bitmap(path);
|
logo = new Bitmap(path);
|
||||||
this.ClientSize = new Size(logo.Width, logo.Height);
|
this.ClientSize = new Size(logo.Width, logo.Height);
|
||||||
this.BackgroundImage = logo;
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@@ -230,8 +231,20 @@ namespace Vocaluxe
|
|||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||||
this.Text = CSettings.sProgramName;
|
this.Text = CSettings.sProgramName;
|
||||||
this.CenterToScreen();
|
this.CenterToScreen();
|
||||||
this.TransparencyKey = this.BackColor; //thx to Klafhor :>
|
|
||||||
this.Show();
|
this.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnPaintBackground(System.Windows.Forms.PaintEventArgs e)
|
||||||
|
{
|
||||||
|
if (logo == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Graphics g = e.Graphics;
|
||||||
|
g.DrawImage(logo, new Rectangle(0, 0, this.Width, this.Height));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -581,7 +581,8 @@ namespace Vocaluxe.Screens
|
|||||||
|
|
||||||
lines[i] = song.Notes.GetLines(i);
|
lines[i] = song.Notes.GetLines(i);
|
||||||
CLine[] line = lines[i].Line;
|
CLine[] line = lines[i].Line;
|
||||||
|
|
||||||
|
// find current line (it must be the same as in CalcFadingAlpha)
|
||||||
int nr = -1;
|
int nr = -1;
|
||||||
for (int j = 0; j < line.Length; j++)
|
for (int j = 0; j < line.Length; j++)
|
||||||
{
|
{
|
||||||
@@ -850,12 +851,16 @@ namespace Vocaluxe.Screens
|
|||||||
lines[i] = Song.Notes.GetLines(i);
|
lines[i] = Song.Notes.GetLines(i);
|
||||||
CLine[] line = lines[i].Line;
|
CLine[] line = lines[i].Line;
|
||||||
|
|
||||||
|
// find current line (it must be the same as in UpdateLyrics)
|
||||||
int CurrentLine = 0;
|
int CurrentLine = 0;
|
||||||
for (int j = 0; j < line.Length; j++)
|
for (int j = 0; j < line.Length; j++)
|
||||||
{
|
{
|
||||||
if (line[j].FirstBeat <= _CurrentBeat)
|
if (line[j].StartBeat <= _CurrentBeat)
|
||||||
{
|
{
|
||||||
CurrentLine = j;
|
if (CGame.GetTimeFromBeats(line[j].FirstBeat, Song.BPM) <= _CurrentTime - Song.Gap + 10f)
|
||||||
|
{
|
||||||
|
CurrentLine = j;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -863,9 +868,11 @@ namespace Vocaluxe.Screens
|
|||||||
Alpha[i * 2] = 1f;
|
Alpha[i * 2] = 1f;
|
||||||
Alpha[i * 2 + 1] = 1f;
|
Alpha[i * 2 + 1] = 1f;
|
||||||
|
|
||||||
// main
|
// main line alpha
|
||||||
if (CurrentLine == 0 && CurrentTime < CGame.GetTimeFromBeats(line[CurrentLine].FirstBeat, Song.BPM))
|
if (CurrentLine == 0 && CurrentTime < CGame.GetTimeFromBeats(line[CurrentLine].FirstBeat, Song.BPM))
|
||||||
{
|
{
|
||||||
|
// first main line and fist note is not reached
|
||||||
|
// => fade in
|
||||||
float diff = CGame.GetTimeFromBeats(line[CurrentLine].FirstBeat, Song.BPM) - CurrentTime;
|
float diff = CGame.GetTimeFromBeats(line[CurrentLine].FirstBeat, Song.BPM) - CurrentTime;
|
||||||
if (diff > dt)
|
if (diff > dt)
|
||||||
{
|
{
|
||||||
@@ -875,20 +882,29 @@ namespace Vocaluxe.Screens
|
|||||||
else if (CurrentLine < line.Length - 1 && CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM) < CurrentTime &&
|
else if (CurrentLine < line.Length - 1 && CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM) < CurrentTime &&
|
||||||
CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) > CurrentTime)
|
CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) > CurrentTime)
|
||||||
{
|
{
|
||||||
|
// current position is between two lines
|
||||||
|
|
||||||
|
// time between the to lines
|
||||||
float diff = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) -
|
float diff = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) -
|
||||||
CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
|
CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
|
||||||
|
|
||||||
|
// fade only if there is enough time for fading
|
||||||
if (diff > 3.3f * dt)
|
if (diff > 3.3f * dt)
|
||||||
{
|
{
|
||||||
|
// time elapsed since last line
|
||||||
float last = CurrentTime - CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
|
float last = CurrentTime - CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
|
||||||
|
|
||||||
|
// time to next line
|
||||||
float next = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) - CurrentTime;
|
float next = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) - CurrentTime;
|
||||||
|
|
||||||
if (last < next)
|
if (last < next)
|
||||||
{
|
{
|
||||||
|
// fade out
|
||||||
Alpha[i * 2] = 1f - last / rt;
|
Alpha[i * 2] = 1f - last / rt;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// fade in if it is time for
|
||||||
if (next > dt)
|
if (next > dt)
|
||||||
Alpha[i * 2] = 1f - (next - dt) / rt;
|
Alpha[i * 2] = 1f - (next - dt) / rt;
|
||||||
}
|
}
|
||||||
@@ -896,6 +912,8 @@ namespace Vocaluxe.Screens
|
|||||||
}
|
}
|
||||||
else if (CurrentLine == line.Length - 1 && CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM) < CurrentTime)
|
else if (CurrentLine == line.Length - 1 && CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM) < CurrentTime)
|
||||||
{
|
{
|
||||||
|
// last main line and last note was reached
|
||||||
|
// => fade out
|
||||||
float diff = CurrentTime - CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
|
float diff = CurrentTime - CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
|
||||||
Alpha[i * 2] = 1f - diff / rt;
|
Alpha[i * 2] = 1f - diff / rt;
|
||||||
}
|
}
|
||||||
@@ -903,7 +921,9 @@ namespace Vocaluxe.Screens
|
|||||||
// sub
|
// sub
|
||||||
if (CurrentLine < line.Length - 2)
|
if (CurrentLine < line.Length - 2)
|
||||||
{
|
{
|
||||||
float diff = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) - CurrentTime;
|
float diff = 0f;
|
||||||
|
diff = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) - CurrentTime;
|
||||||
|
|
||||||
if (diff > dt)
|
if (diff > dt)
|
||||||
{
|
{
|
||||||
Alpha[i * 2 + 1] = 1f - (diff - dt) / rt;
|
Alpha[i * 2 + 1] = 1f - (diff - dt) / rt;
|
||||||
|
|||||||
Reference in new issue
Block a user