package main import ( "io" "math" "math/rand" "time" "github.com/hajimehoshi/ebiten" "github.com/hajimehoshi/ebiten/ebitenutil" "golang.org/x/image/colornames" ) var obrazok *ebiten.Image var calkokiller *ebiten.Image var x float64 var y float64 var d float64 = 50 var z float64 = 50 func update(screen *ebiten.Image) error { if ebiten.IsKeyPressed(ebiten.KeyLeft) { x -= 5 } if ebiten.IsKeyPressed(ebiten.KeyRight) { x += 5 } if ebiten.IsKeyPressed(ebiten.KeyDown) { y += 5 } if ebiten.IsKeyPressed(ebiten.KeyUp) { y -= 5 } screen.Fill(colornames.White) var opts ebiten.DrawImageOptions var nopts ebiten.DrawImageOptions opts.GeoM.Translate(x, y) nopts.GeoM.Translate(d, z) z += 7 if z > 1000 { d = rand.Float64() * 800 z = 0 } if x > 800 { x = 0 } if x < 0 { x = 800 } if y > 1000 { y = 0 } if y < 0 { y = 1000 } if math.Abs(x+40-(d+40)) < 110 && math.Abs(y+35-(z+35)) < 45 { return io.EOF } screen.DrawImage(obrazok, &opts) screen.DrawImage(calkokiller, &nopts) return nil } func main() { obrazok, _, _ = ebitenutil.NewImageFromFile("sd2.png", ebiten.FilterLinear) calkokiller, _, _ = ebitenutil.NewImageFromFile("arrow.png", ebiten.FilterLinear) ebiten.Run(update, 800, 1000, 1, "calko IIIIII") rand.Seed(time.Now().UnixNano()) }