// +build example
package main
import (
"log"
"strings"
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
)
var (
text = "Type on the keyboard:\n"
counter = 0
bsPrevPressed = false
)
func update(screen *ebiten.Image) error {
text += string(ebiten.InputChars())
ss := strings.Split(text, "\n")
if len(ss) > 10 {
text = strings.Join(ss[len(ss)-10:], "\n")
}
if ebiten.IsKeyPressed(ebiten.KeyEnter) && !strings.HasSuffix(text, "\n") {
text += "\n"
}
bsPressed := ebiten.IsKeyPressed(ebiten.KeyBackspace)
if !bsPrevPressed && bsPressed {
if len(text) >= 1 {
text = text[:len(text)-1]
}
}
bsPrevPressed = bsPressed
counter++
if ebiten.IsRunningSlowly() {
return nil
}
t := text
if counter%60 < 30 {
t += "_"
}
ebitenutil.DebugPrint(screen, t)
return nil
}
func main() {
if err := ebiten.Run(update, 320, 240, 2.0, "Typewriter (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
}