From db9c5d00ce060af788de07e60ab0d6a8d086d3e6 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Sat, 4 Mar 2017 23:27:25 +0900 Subject: [PATCH] docs: Update example pages --- docs/examples/alphablending.html | 8 ++---- docs/examples/audio.html | 40 ++++++++++------------------ docs/examples/font.html | 13 +++------ docs/examples/gamepad.html | 4 +-- docs/examples/hsv.html | 8 ++---- docs/examples/hue.html | 4 +-- docs/examples/infinitescroll.html | 44 ++++++++----------------------- docs/examples/keyboard.html | 8 ++---- docs/examples/life.html | 4 +-- docs/examples/masking.html | 34 ++++++------------------ docs/examples/mosaic.html | 13 +++------ docs/examples/noise.html | 8 ++---- docs/examples/paint.html | 38 +++++++------------------- docs/examples/perspective.html | 4 +-- docs/examples/piano.html | 43 +++++++----------------------- docs/examples/rotate.html | 4 +-- docs/examples/sprites.html | 8 ++---- 17 files changed, 74 insertions(+), 211 deletions(-) diff --git a/docs/examples/alphablending.html b/docs/examples/alphablending.html index 8e6287554..c31a6b957 100644 --- a/docs/examples/alphablending.html +++ b/docs/examples/alphablending.html @@ -79,17 +79,13 @@ func update(screen *ebiten.Image) error { diff = float64(480-count) * 0.2 } - if err := screen.Fill(color.NRGBA{0x00, 0x00, 0x80, 0xff}); err != nil { - return err - } + screen.Fill(color.NRGBA{0x00, 0x00, 0x80, 0xff}) op := &ebiten.DrawImageOptions{} op.ColorM.Scale(1.0, 1.0, 1.0, 0.5) op.ImageParts = &imageParts{ diff: diff, } - if err := screen.DrawImage(ebitenImage, op); err != nil { - return err - } + screen.DrawImage(ebitenImage, op) return nil } diff --git a/docs/examples/audio.html b/docs/examples/audio.html index 12d65f3fc..563318447 100644 --- a/docs/examples/audio.html +++ b/docs/examples/audio.html @@ -115,9 +115,9 @@ func (p *Player) updateSE() error { return sePlayer.Play() } -func (p *Player) updateVolume() error { +func (p *Player) updateVolume() { if p.audioPlayer == nil { - return nil + return } if ebiten.IsKeyPressed(ebiten.KeyZ) { volume128-- @@ -132,7 +132,6 @@ func (p *Player) updateVolume() error { volume128 = 128 } p.audioPlayer.SetVolume(float64(volume128) / 128) - return nil } func (p *Player) updatePlayPause() error { @@ -153,29 +152,29 @@ func (p *Player) updatePlayPause() error { return p.audioPlayer.Play() } -func (p *Player) updateBar() error { +func (p *Player) updateBar() { if p.audioPlayer == nil { - return nil + return } if p.seekedCh != nil { - return nil + return } if !ebiten.IsMouseButtonPressed(ebiten.MouseButtonLeft) { mouseButtonState[ebiten.MouseButtonLeft] = 0 - return nil + return } mouseButtonState[ebiten.MouseButtonLeft]++ if mouseButtonState[ebiten.MouseButtonLeft] != 1 { - return nil + return } x, y := ebiten.CursorPosition() bx, by, bw, bh := playerBarRect() const padding = 4 if y < by-padding || by+bh+padding <= y { - return nil + return } if x < bx || bx+bw <= x { - return nil + return } pos := time.Duration(x-bx) * p.total / time.Duration(bw) p.seekedCh = make(chan error, 1) @@ -183,7 +182,6 @@ func (p *Player) updateBar() error { // This can't be done parallely! !?!? p.seekedCh <- p.audioPlayer.Seek(pos) }() - return nil } func (p *Player) close() error { @@ -204,26 +202,20 @@ func update(screen *ebiten.Image) error { } } if musicPlayer != nil { - if err := musicPlayer.updateBar(); err != nil { - return err - } + musicPlayer.updateBar() if err := musicPlayer.updatePlayPause(); err != nil { return err } if err := musicPlayer.updateSE(); err != nil { return err } - if err := musicPlayer.updateVolume(); err != nil { - return err - } + musicPlayer.updateVolume() } op := &ebiten.DrawImageOptions{} x, y, w, h := playerBarRect() op.GeoM.Translate(float64(x), float64(y)) - if err := screen.DrawImage(playerBarImage, op); err != nil { - return err - } + screen.DrawImage(playerBarImage, op) currentTimeStr := "00:00" if musicPlayer != nil { c := musicPlayer.audioPlayer.Current() @@ -239,9 +231,7 @@ func update(screen *ebiten.Image) error { cy := y - (ch-h)/2 op := &ebiten.DrawImageOptions{} op.GeoM.Translate(float64(cx), float64(cy)) - if err := screen.DrawImage(playerCurrentImage, op); err != nil { - return err - } + screen.DrawImage(playerCurrentImage, op) } msg := fmt.Sprintf(`FPS: %0.2f @@ -263,9 +253,7 @@ Press Z or X to change volume of the music msg += "\nSeeking..." } } - if err := ebitenutil.DebugPrint(screen, msg); err != nil { - return err - } + ebitenutil.DebugPrint(screen, msg) if err := audioContext.Update(); err != nil { return err } diff --git a/docs/examples/font.html b/docs/examples/font.html index 454139737..9ce6602ba 100644 --- a/docs/examples/font.html +++ b/docs/examples/font.html @@ -97,22 +97,17 @@ func parseFont() error { d.DrawString(s) y += size } - return textImage.ReplacePixels(dst.Pix) + textImage.ReplacePixels(dst.Pix) + return nil } func update(screen *ebiten.Image) error { - if err := screen.DrawImage(textImage, &ebiten.DrawImageOptions{}); err != nil { - return err - } + screen.DrawImage(textImage, &ebiten.DrawImageOptions{}) return nil } func main() { - var err error - textImage, err = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) - if err != nil { - log.Fatal(err) - } + textImage, _ = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) if err := parseFont(); err != nil { log.Fatal(err) } diff --git a/docs/examples/gamepad.html b/docs/examples/gamepad.html index be02a5b21..9cec700f2 100644 --- a/docs/examples/gamepad.html +++ b/docs/examples/gamepad.html @@ -69,9 +69,7 @@ func update(screen *ebiten.Image) error { Pressed Buttons: {{.Buttons}}` str = strings.Replace(str, "{{.Axes}}", strings.Join(axes, "\n "), -1) str = strings.Replace(str, "{{.Buttons}}", strings.Join(pressedButtons, ", "), -1) - if err := ebitenutil.DebugPrint(screen, str); err != nil { - return err - } + ebitenutil.DebugPrint(screen, str) return nil } diff --git a/docs/examples/hsv.html b/docs/examples/hsv.html index a32a914cf..5657e5ea5 100644 --- a/docs/examples/hsv.html +++ b/docs/examples/hsv.html @@ -94,16 +94,12 @@ func update(screen *ebiten.Image) error { saturation := float64(saturationInt) / 128 value := float64(valueInt) / 128 op.ColorM.ChangeHSV(hue, saturation, value) - if err := screen.DrawImage(gophersImage, op); err != nil { - return err - } + screen.DrawImage(gophersImage, op) msg := fmt.Sprintf(`Hue: %0.2f [Q][W] Saturation: %0.2f [A][S] Value: %0.2f [Z][X]`, hue, saturation, value) - if err := ebitenutil.DebugPrint(screen, msg); err != nil { - return err - } + ebitenutil.DebugPrint(screen, msg) return nil } diff --git a/docs/examples/hue.html b/docs/examples/hue.html index 44e6f7e32..9be70d263 100644 --- a/docs/examples/hue.html +++ b/docs/examples/hue.html @@ -54,9 +54,7 @@ func update(screen *ebiten.Image) error { op := &ebiten.DrawImageOptions{} op.GeoM.Translate(float64(screenWidth-w)/2, float64(screenHeight-h)/2) op.ColorM.RotateHue(float64(count%360) * 2 * math.Pi / 360) - if err := screen.DrawImage(gophersImage, op); err != nil { - return err - } + screen.DrawImage(gophersImage, op) return nil } diff --git a/docs/examples/infinitescroll.html b/docs/examples/infinitescroll.html index 3649c3e87..37eda7e65 100644 --- a/docs/examples/infinitescroll.html +++ b/docs/examples/infinitescroll.html @@ -86,41 +86,27 @@ func (p *viewport) Position() (int, int) { return p.x16, p.y16 } -func updateGroundImage(ground *ebiten.Image) error { - if err := ground.Clear(); err != nil { - return err - } +func updateGroundImage(ground *ebiten.Image) { + ground.Clear() x16, y16 := theViewport.Position() op := &ebiten.DrawImageOptions{} op.GeoM.Translate(float64(-x16)/16, float64(-y16)/16) - if err := ground.DrawImage(repeatedBgImage, op); err != nil { - return err - } - return nil + ground.DrawImage(repeatedBgImage, op) } -func drawGroundImage(screen *ebiten.Image, ground *ebiten.Image) error { +func drawGroundImage(screen *ebiten.Image, ground *ebiten.Image) { op := &ebiten.DrawImageOptions{} - if err := screen.DrawImage(ground, op); err != nil { - return err - } - return nil + screen.DrawImage(ground, op) } func update(screen *ebiten.Image) error { theViewport.Move() - if err := updateGroundImage(groundImage); err != nil { - return err - } - if err := drawGroundImage(screen, groundImage); err != nil { - return err - } + updateGroundImage(groundImage) + drawGroundImage(screen, groundImage) msg := fmt.Sprintf("FPS: %0.2f", ebiten.CurrentFPS()) - if err := ebitenutil.DebugPrint(screen, msg); err != nil { - return err - } + ebitenutil.DebugPrint(screen, msg) return nil } @@ -132,23 +118,15 @@ func main() { } w, h := bgImage.Size() const repeat = 5 - repeatedBgImage, err = ebiten.NewImage(w*repeat, h*repeat, ebiten.FilterNearest) - if err != nil { - log.Fatal(err) - } + repeatedBgImage, _ = ebiten.NewImage(w*repeat, h*repeat, ebiten.FilterNearest) for j := 0; j < repeat; j++ { for i := 0; i < repeat; i++ { op := &ebiten.DrawImageOptions{} op.GeoM.Translate(float64(w*i), float64(h*j)) - if err := repeatedBgImage.DrawImage(bgImage, op); err != nil { - log.Fatal(err) - } + repeatedBgImage.DrawImage(bgImage, op) } } - groundImage, err = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) - if err != nil { - log.Fatal(err) - } + groundImage, _ = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) if err := ebiten.Run(update, screenWidth, screenHeight, 2, "infinite scroll"); err != nil { log.Fatal(err) diff --git a/docs/examples/keyboard.html b/docs/examples/keyboard.html index 6f1414267..009979b99 100644 --- a/docs/examples/keyboard.html +++ b/docs/examples/keyboard.html @@ -99,9 +99,7 @@ func update(screen *ebiten.Image) error { op := &ebiten.DrawImageOptions{} op.GeoM.Translate(offsetX, offsetY) op.ColorM.Scale(0.5, 0.5, 0.5, 1) - if err := screen.DrawImage(keyboardImage, op); err != nil { - return err - } + screen.DrawImage(keyboardImage, op) pressed := []string{} for i := 0; i <= 9; i++ { @@ -129,9 +127,7 @@ func update(screen *ebiten.Image) error { ImageParts: pressedKeysParts(pressed), } op.GeoM.Translate(offsetX, offsetY) - if err := screen.DrawImage(keyboardImage, op); err != nil { - return err - } + screen.DrawImage(keyboardImage, op) return nil } diff --git a/docs/examples/life.html b/docs/examples/life.html index 38964fa4b..fc2f9cef6 100644 --- a/docs/examples/life.html +++ b/docs/examples/life.html @@ -185,9 +185,7 @@ var ( func update(screen *ebiten.Image) error { world.Progress() world.DrawImage(noiseImage) - if err := screen.ReplacePixels(noiseImage.Pix); err != nil { - return err - } + screen.ReplacePixels(noiseImage.Pix) return nil } diff --git a/docs/examples/masking.html b/docs/examples/masking.html index 50643da02..aad5a7fb5 100644 --- a/docs/examples/masking.html +++ b/docs/examples/masking.html @@ -78,31 +78,19 @@ func update(screen *ebiten.Image) error { spotLightVY = -spotLightVY } - if err := maskImage.Clear(); err != nil { - return err - } + maskImage.Clear() op := &ebiten.DrawImageOptions{} op.GeoM.Translate(float64(spotLightX), float64(spotLightY)) - if err := maskImage.DrawImage(spotLightImage, op); err != nil { - return err - } + maskImage.DrawImage(spotLightImage, op) op = &ebiten.DrawImageOptions{} op.CompositeMode = ebiten.CompositeModeSourceOut - if err := maskImage.DrawImage(fiveyearsImage, op); err != nil { - return err - } + maskImage.DrawImage(fiveyearsImage, op) - if err := screen.Fill(color.RGBA{0x00, 0x00, 0x80, 0xff}); err != nil { - return err - } - if err := screen.DrawImage(gophersImage, &ebiten.DrawImageOptions{}); err != nil { - return err - } - if err := screen.DrawImage(maskImage, &ebiten.DrawImageOptions{}); err != nil { - return err - } + screen.Fill(color.RGBA{0x00, 0x00, 0x80, 0xff}) + screen.DrawImage(gophersImage, &ebiten.DrawImageOptions{}) + screen.DrawImage(maskImage, &ebiten.DrawImageOptions{}) return nil } @@ -131,10 +119,7 @@ func main() { if err != nil { log.Fatal(err) } - maskImage, err = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) - if err != nil { - log.Fatal(err) - } + maskImage, _ = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) as := image.Point{128, 128} a := image.NewAlpha(image.Rectangle{image.ZP, as}) @@ -146,10 +131,7 @@ func main() { a.SetAlpha(i, j, color.Alpha{b}) } } - spotLightImage, err = ebiten.NewImageFromImage(a, ebiten.FilterNearest) - if err != nil { - log.Fatal(err) - } + spotLightImage, _ = ebiten.NewImageFromImage(a, ebiten.FilterNearest) if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Masking (Ebiten Demo)"); err != nil { log.Fatal(err) } diff --git a/docs/examples/mosaic.html b/docs/examples/mosaic.html index fb62c6c19..aa507cc98 100644 --- a/docs/examples/mosaic.html +++ b/docs/examples/mosaic.html @@ -52,14 +52,10 @@ var ( func update(screen *ebiten.Image) error { op := &ebiten.DrawImageOptions{} op.GeoM.Scale(1.0/mosaicRatio, 1.0/mosaicRatio) - if err := gophersRenderTarget.DrawImage(gophersImage, op); err != nil { - return err - } + gophersRenderTarget.DrawImage(gophersImage, op) op = &ebiten.DrawImageOptions{} op.GeoM.Scale(mosaicRatio, mosaicRatio) - if err := screen.DrawImage(gophersRenderTarget, op); err != nil { - return err - } + screen.DrawImage(gophersRenderTarget, op) return nil } @@ -70,10 +66,7 @@ func main() { log.Fatal(err) } w, h := gophersImage.Size() - gophersRenderTarget, err = ebiten.NewImage(w/mosaicRatio, h/mosaicRatio, ebiten.FilterNearest) - if err != nil { - log.Fatal(err) - } + gophersRenderTarget, _ = ebiten.NewImage(w/mosaicRatio, h/mosaicRatio, ebiten.FilterNearest) if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Mosaic (Ebiten Demo)"); err != nil { log.Fatal(err) } diff --git a/docs/examples/noise.html b/docs/examples/noise.html index 04feaf059..03beac569 100644 --- a/docs/examples/noise.html +++ b/docs/examples/noise.html @@ -71,12 +71,8 @@ func update(screen *ebiten.Image) error { noiseImage.Pix[4*i+2] = uint8(x >> 8) noiseImage.Pix[4*i+3] = 0xff } - if err := screen.ReplacePixels(noiseImage.Pix); err != nil { - return err - } - if err := ebitenutil.DebugPrint(screen, fmt.Sprintf("FPS: %f", ebiten.CurrentFPS())); err != nil { - return err - } + screen.ReplacePixels(noiseImage.Pix) + ebitenutil.DebugPrint(screen, fmt.Sprintf("FPS: %f", ebiten.CurrentFPS())) return nil } diff --git a/docs/examples/paint.html b/docs/examples/paint.html index 25392f557..738bf44b3 100644 --- a/docs/examples/paint.html +++ b/docs/examples/paint.html @@ -51,55 +51,43 @@ var ( canvasImage *ebiten.Image ) -func paint(screen *ebiten.Image, x, y int) error { +func paint(screen *ebiten.Image, x, y int) { op := &ebiten.DrawImageOptions{} op.GeoM.Translate(float64(x), float64(y)) op.ColorM.Scale(1.0, 0.50, 0.125, 1.0) theta := 2.0 * math.Pi * float64(count%60) / ebiten.FPS op.ColorM.RotateHue(theta) - if err := canvasImage.DrawImage(brushImage, op); err != nil { - return err - } - return nil + canvasImage.DrawImage(brushImage, op) } func update(screen *ebiten.Image) error { drawn := false mx, my := ebiten.CursorPosition() if ebiten.IsMouseButtonPressed(ebiten.MouseButtonLeft) { - if err := paint(screen, mx, my); err != nil { - return err - } + paint(screen, mx, my) drawn = true } for _, t := range ebiten.Touches() { x, y := t.Position() - if err := paint(screen, x, y); err != nil { - return err - } + paint(screen, x, y) drawn = true } if drawn { count++ } - if err := screen.DrawImage(canvasImage, nil); err != nil { - return err - } + screen.DrawImage(canvasImage, nil) msg := fmt.Sprintf("(%d, %d)", mx, my) for _, t := range ebiten.Touches() { x, y := t.Position() msg += fmt.Sprintf("\n(%d, %d) touch %d", x, y, t.ID()) } - if err := ebitenutil.DebugPrint(screen, msg); err != nil { - return err - } + ebitenutil.DebugPrint(screen, msg) return nil } func main() { - var err error const a0, a1, a2 = 0x40, 0xc0, 0xff pixels := []uint8{ a0, a1, a1, a0, @@ -107,22 +95,14 @@ func main() { a1, a2, a2, a1, a0, a1, a1, a0, } - brushImage, err = ebiten.NewImageFromImage(&image.Alpha{ + brushImage, _ = ebiten.NewImageFromImage(&image.Alpha{ Pix: pixels, Stride: 4, Rect: image.Rect(0, 0, 4, 4), }, ebiten.FilterNearest) - if err != nil { - log.Fatal(err) - } - canvasImage, err = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) - if err != nil { - log.Fatal(err) - } - if err := canvasImage.Fill(color.White); err != nil { - log.Fatal(err) - } + canvasImage, _ = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) + canvasImage.Fill(color.White) if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Paint (Ebiten Demo)"); err != nil { log.Fatal(err) diff --git a/docs/examples/perspective.html b/docs/examples/perspective.html index 39508e5ba..0164e9e8e 100644 --- a/docs/examples/perspective.html +++ b/docs/examples/perspective.html @@ -75,9 +75,7 @@ func update(screen *ebiten.Image) error { maxWidth := float64(w) + float64(h)*0.75 op.GeoM.Translate(-maxWidth/2, -float64(h)/2) op.GeoM.Translate(screenWidth/2, screenHeight/2) - if err := screen.DrawImage(gophersImage, op); err != nil { - return err - } + screen.DrawImage(gophersImage, op) return nil } diff --git a/docs/examples/piano.html b/docs/examples/piano.html index 4d487357b..cebf1128b 100644 --- a/docs/examples/piano.html +++ b/docs/examples/piano.html @@ -175,18 +175,9 @@ var ( ) func init() { - var err error - imageEmpty, err := ebiten.NewImage(16, 16, ebiten.FilterNearest) - if err != nil { - panic(err) - } - if err := imageEmpty.Fill(color.White); err != nil { - panic(err) - } - imagePiano, err = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) - if err != nil { - panic(err) - } + imageEmpty, _ := ebiten.NewImage(16, 16, ebiten.FilterNearest) + imageEmpty.Fill(color.White) + imagePiano, _ = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterNearest) whiteKeys := []string{"A", "S", "D", "F", "G", "H", "J", "K", "L"} width := 24 y := 48 @@ -198,12 +189,8 @@ func init() { op.GeoM.Scale(float64(width-1)/float64(w), float64(height)/float64(h)) op.GeoM.Translate(float64(x), float64(y)) op.ColorM.Scale(1, 1, 1, 1) - if err := imagePiano.DrawImage(imageEmpty, op); err != nil { - panic(err) - } - if err := common.ArcadeFont.DrawText(imagePiano, k, x+8, y+height-16, 1, color.Black); err != nil { - panic(err) - } + imagePiano.DrawImage(imageEmpty, op) + common.ArcadeFont.DrawText(imagePiano, k, x+8, y+height-16, 1, color.Black) } blackKeys := []string{"Q", "W", "", "R", "T", "", "U", "I", "O"} @@ -218,12 +205,8 @@ func init() { op.GeoM.Scale(float64(width-1)/float64(w), float64(height)/float64(h)) op.GeoM.Translate(float64(x), float64(y)) op.ColorM.Scale(0, 0, 0, 1) - if err := imagePiano.DrawImage(imageEmpty, op); err != nil { - panic(err) - } - if err := common.ArcadeFont.DrawText(imagePiano, k, x+8, y+height-16, 1, color.White); err != nil { - panic(err) - } + imagePiano.DrawImage(imageEmpty, op) + common.ArcadeFont.DrawText(imagePiano, k, x+8, y+height-16, 1, color.White) } } @@ -238,16 +221,10 @@ func update(screen *ebiten.Image) error { } } - if err := screen.Fill(color.RGBA{0x80, 0x80, 0xc0, 0xff}); err != nil { - return err - } - if err := screen.DrawImage(imagePiano, nil); err != nil { - return err - } + screen.Fill(color.RGBA{0x80, 0x80, 0xc0, 0xff}) + screen.DrawImage(imagePiano, nil) - if err := ebitenutil.DebugPrint(screen, fmt.Sprintf("FPS: %0.2f", ebiten.CurrentFPS())); err != nil { - return err - } + ebitenutil.DebugPrint(screen, fmt.Sprintf("FPS: %0.2f", ebiten.CurrentFPS())) if err := audioContext.Update(); err != nil { return err diff --git a/docs/examples/rotate.html b/docs/examples/rotate.html index 7a5116638..575f5437c 100644 --- a/docs/examples/rotate.html +++ b/docs/examples/rotate.html @@ -55,9 +55,7 @@ func update(screen *ebiten.Image) error { op.GeoM.Translate(-float64(w)/2, -float64(h)/2) op.GeoM.Rotate(float64(count%360) * 2 * math.Pi / 360) op.GeoM.Translate(screenWidth/2, screenHeight/2) - if err := screen.DrawImage(gophersImage, op); err != nil { - return err - } + screen.DrawImage(gophersImage, op) return nil } diff --git a/docs/examples/sprites.html b/docs/examples/sprites.html index 13093699e..c962228e2 100644 --- a/docs/examples/sprites.html +++ b/docs/examples/sprites.html @@ -137,15 +137,11 @@ func update(screen *ebiten.Image) error { ImageParts: sprites, } op.ColorM.Scale(1.0, 1.0, 1.0, 0.5) - if err := screen.DrawImage(ebitenImage, op); err != nil { - return err - } + screen.DrawImage(ebitenImage, op) msg := fmt.Sprintf(`FPS: %0.2f Num of sprites: %d Press <- or -> to change the number of sprites`, ebiten.CurrentFPS(), sprites.Len()) - if err := ebitenutil.DebugPrint(screen, msg); err != nil { - return err - } + ebitenutil.DebugPrint(screen, msg) return nil }