medmond919 icon

Go Example #5

medmond919 | PRO | 03/27/18 01:10:49 PM UTC | 0 ⭐ | 288 👁️ | Never ⏰ | []
Go |

1.34 KB

|

None

|

0 👍

/

0 👎

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())
}

Comments