mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2025-02-20 23:47:16 -05:00
Finished credits screen.
This commit is contained in:
parent
a535d447af
commit
e9181535be
@ -89,8 +89,11 @@ func (v *Credits) Load() []func() {
|
||||
v.uiManager.AddWidget(v.exitButton)
|
||||
},
|
||||
func() {
|
||||
fileData, _ := utf16BytesToString(v.fileProvider.LoadFile(ResourcePaths.CreditsText))
|
||||
fileData, _ := utf16BytesToString(v.fileProvider.LoadFile(ResourcePaths.CreditsText)[2:])
|
||||
v.creditsText = strings.Split(fileData, "\r\n")
|
||||
for i := range v.creditsText {
|
||||
v.creditsText[i] = strings.Trim(v.creditsText[i], " ")
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
@ -111,11 +114,11 @@ func (v *Credits) Render(screen *ebiten.Image) {
|
||||
}
|
||||
}
|
||||
|
||||
const secondsPerCycle = (float64(4) / float64(100000))
|
||||
const secondsPerCycle = (float64(40) / float64(1000))
|
||||
|
||||
// Update runs the update logic on the credits scene
|
||||
func (v *Credits) Update(tickTime float64) {
|
||||
v.cycleTime += tickTime / float64(1000)
|
||||
v.cycleTime += tickTime
|
||||
for v.cycleTime >= secondsPerCycle {
|
||||
v.cycleTime -= secondsPerCycle
|
||||
v.cyclesTillNextLine--
|
||||
@ -148,39 +151,39 @@ func (v *Credits) addNextItem() {
|
||||
return
|
||||
}
|
||||
|
||||
text := strings.Trim(v.creditsText[0], " ")
|
||||
text := v.creditsText[0]
|
||||
v.creditsText = v.creditsText[1:]
|
||||
if len(text) == 0 {
|
||||
v.cyclesTillNextLine = 18
|
||||
return
|
||||
}
|
||||
isHeading := text[0] == '*'
|
||||
isNextHeading := len(v.creditsText) > 0 && v.creditsText[1][0] == '*'
|
||||
isNextSpace := len(v.creditsText) > 0 && len(strings.Trim(v.creditsText[1], " ")) == 0
|
||||
isNextHeading := len(v.creditsText) > 0 && len(v.creditsText[0]) > 0 && v.creditsText[0][0] == '*'
|
||||
isNextSpace := len(v.creditsText) > 0 && len(v.creditsText[0]) == 0
|
||||
var label = v.getNewFontLabel(isHeading)
|
||||
if isHeading {
|
||||
label.SetText(text[1:])
|
||||
} else {
|
||||
label.SetText(text)
|
||||
}
|
||||
|
||||
width, _ := label.GetSize()
|
||||
isDoubled := false
|
||||
if !isHeading && !isNextHeading && !isNextSpace {
|
||||
isDoubled = true
|
||||
|
||||
// Gotta go side by side
|
||||
label.MoveTo(390-int(label.Width), 605)
|
||||
label.MoveTo(390-int(width), 605)
|
||||
|
||||
text2 := strings.Trim(v.creditsText[0], " ")
|
||||
text2 := v.creditsText[0]
|
||||
v.creditsText = v.creditsText[1:]
|
||||
|
||||
isNextHeading = len(v.creditsText[1]) > 0 && v.creditsText[1][0] == '*'
|
||||
isNextHeading = len(v.creditsText) > 0 && len(v.creditsText[0]) > 0 && v.creditsText[0][0] == '*'
|
||||
label2 := v.getNewFontLabel(isHeading)
|
||||
label2.SetText(text2)
|
||||
|
||||
label2.MoveTo(410, 605)
|
||||
} else {
|
||||
label.MoveTo(400-int(label.Width/2), 605)
|
||||
label.MoveTo(400-int(width/2), 605)
|
||||
}
|
||||
|
||||
if isHeading && isNextHeading {
|
||||
@ -202,6 +205,11 @@ func (v *Credits) getNewFontLabel(isHeading bool) *UI.Label {
|
||||
for _, label := range v.labels {
|
||||
if label.Available {
|
||||
label.Available = false
|
||||
if isHeading {
|
||||
label.Label.Color = color.RGBA{255, 88, 82, 255}
|
||||
} else {
|
||||
label.Label.Color = color.RGBA{198, 178, 150, 255}
|
||||
}
|
||||
return label.Label
|
||||
}
|
||||
}
|
||||
|
@ -89,3 +89,11 @@ func (v *Label) SetText(newText string) {
|
||||
v.text = newText
|
||||
v.imageData = nil
|
||||
}
|
||||
|
||||
// GetSize returns the size of the label
|
||||
func (v *Label) GetSize() (width, height uint32) {
|
||||
v.cacheImage()
|
||||
width = v.Width
|
||||
height = v.Height
|
||||
return
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user