M13: titelskärm, språkval, tutorial, tips och pausmeny
All checks were successful
release / build-release (push) Successful in 1m40s
All checks were successful
release / build-release (push) Successful in 1m40s
Björns feedback efter v0.1.0. Titelskärm med premissen i text och menyn Fortsätt/Starta, Tutorial, Inställningar, Avsluta (Enter två gånger); språkval första gången spelet startar. Tutorial i fem sidor med riktiga sprites och en exempelskylt där resmålet markeras och resten tonas ned, plus nyckeln 番線/方面/改札 och biljettipset. Kontextuella tips i spelet tills första banan är klarad, och resmålets tecken markeras på skyltar och avgångstavlor under tiden. Esc i en bana öppnar en pausmeny (Fortsätt, Lämna banan, Inställningar, Avsluta spelet) i stället för att lämna banan; Esc på bankartan går till titeln. Kortare lägestexter så att bankartans rader ryms på svenska. Test för markeringen, docs, wiki och skärmdumpar. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -135,3 +135,26 @@ func (a *Assets) drawLines(dst drawTarget, lines []line, x, y int) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// highlightLine är tutorialens sätt att läsa en skylt: resmålets japanska
|
||||
// tecken i markeringsfärg, allt annat nedtonat.
|
||||
func highlightLine(text, needle string, hi, dim color.Color) line {
|
||||
if needle == "" || !strings.Contains(text, needle) {
|
||||
return plainLine(text, dim)
|
||||
}
|
||||
var l line
|
||||
for {
|
||||
i := strings.Index(text, needle)
|
||||
if i < 0 {
|
||||
if text != "" {
|
||||
l = append(l, span{text, dim})
|
||||
}
|
||||
return l
|
||||
}
|
||||
if i > 0 {
|
||||
l = append(l, span{text[:i], dim})
|
||||
}
|
||||
l = append(l, span{needle, hi})
|
||||
text = text[i+len(needle):]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user