Dog Animation Demo – Fyne GUI Golang tutorial 48

Dog Animation Demo – Fyne GUI Golang tutorial 48

 

Source Code

<div>
<div>package main</div>
<div>import (</div>
<div>    "math/rand"</div>
<div>    "time"</div>
<div>    "fyne.io/fyne/v2"</div>
<div>    "fyne.io/fyne/v2/app"</div>
<div>    "fyne.io/fyne/v2/canvas"</div>
<div>    "fyne.io/fyne/v2/container"</div>
<div>    "fyne.io/fyne/v2/storage"</div>
<div>    "fyne.io/fyne/v2/widget"</div>
<div>)</div>
<div>func main() {</div>
<div>    a := app.New()</div>
<div>    w := a.NewWindow("Dog And Cat Play")</div>
<div>    x := float32(10)</div>
<div>    y := float32(10)</div>
<div>    rand.Seed(time.Now().UnixNano())</div>
<div>    cx := float32(rand.Intn(400))</div>
<div>    cy := float32(rand.Intn(400))</div>
<div>    w.Resize(fyne.NewSize(400, 400))</div>
<div>    entry := widget.NewEntry()</div>
<div>    entry.Resize(fyne.NewSize(200, 40))</div>
<div>    entry.Move(fyne.NewPos(100, 100))</div>
<div>    label := widget.NewLabel("Your selection")</div>
<div>    label.Resize(fyne.NewSize(200, 70))</div>
<div>    label.Move(fyne.NewPos(110, 60))</div>
<div>    entry2 := widget.NewSelectEntry([]string{"Item 1", "Item 2"})</div>
<div>    entry2.SetPlaceHolder("Select one or type")</div>
<div>    entry2.Resize(fyne.NewSize(200, 40))</div>
<div>    entry2.Move(fyne.NewPos(100, 180))</div>
<div>    cat_img := canvas.NewImageFromURI(storage.NewFileURI("cat.png"))</div>
<div>    cat_img.Resize(fyne.NewSize(100, 100))</div>
<div>    cat_img.Move(fyne.NewPos(cx, cy))</div>
<div>    // entry.OnChanged(x := entry2.Text)</div>
<div>    dog_img := canvas.NewImageFromURI(storage.NewFileURI("dog.png"))</div>
<div>    dog_img.Resize(fyne.NewSize(100, 100))</div>
<div>    dog_img.Move(fyne.NewPos(100, 180))</div>
<div>    down_btn := widget.NewButton("Down", func() {</div>
<div>        // x = float32(x + 10)</div>
<div>        n := float32(y + 10)</div>
<div>        canvas.NewPositionAnimation(</div>
<div>            fyne.NewPos(n, y),</div>
<div>            fyne.NewPos(x, n),</div>
<div>            canvas.DurationStandard,</div>
<div>            func(p fyne.Position) {</div>
<div>                dog_img.Move(p)</div>
<div>                dog_img.Refresh()</div>
<div>            }).Start()</div>
<div>        //dog_img.Move(fyne.NewPos(x, y))</div>
<div>        dog_img.Refresh()</div>
<div>        y = n</div>
<div>    })</div>
<div>    // anim1 := canvas.NewPositionAnimation(</div>
<div>    //  fyne.NewPos(x, y),</div>
<div>    //  fyne.NewPos(x+10, y+10),</div>
<div>    //  canvas.DurationStandard,</div>
<div>    //  func(p fyne.Position) {</div>
<div>    //      dog_img.Move(p)</div>
<div>    //      dog_img.Refresh()</div>
<div>    //  })</div>
<div>    up_btn2 := widget.NewButton("Up", func() {</div>
<div>        // x = float32(x - 10)</div>
<div>        n := float32(y - 10)</div>
<div>        //n := float32(y + 10)</div>
<div>        canvas.NewPositionAnimation(</div>
<div>            fyne.NewPos(n, y),</div>
<div>            fyne.NewPos(x, n),</div>
<div>            canvas.DurationStandard,</div>
<div>            func(p fyne.Position) {</div>
<div>                dog_img.Move(p)</div>
<div>                dog_img.Refresh()</div>
<div>            }).Start()</div>
<div>        //dog_img.Move(fyne.NewPos(x, y))</div>
<div>        dog_img.Refresh()</div>
<div>        //anim1.Start()</div>
<div>        y = n</div>
<div>    })</div>
<div>    right_btn3 := widget.NewButton("Right", func() {</div>
<div>        n := float32(x + 10)</div>
<div>        // y = float32(y - 10)</div>
<div>        //n := float32(y + 10)</div>
<div>        canvas.NewPositionAnimation(</div>
<div>            fyne.NewPos(x, n),</div>
<div>            fyne.NewPos(n, y),</div>
<div>            canvas.DurationStandard,</div>
<div>            func(p fyne.Position) {</div>
<div>                dog_img.Move(p)</div>
<div>                dog_img.Refresh()</div>
<div>            }).Start()</div>
<div>        //dog_img.Move(fyne.NewPos(x, y))</div>
<div>        dog_img.Refresh()</div>
<div>        x = n</div>
<div>    })</div>
<div>    left_btn4 := widget.NewButton("Left", func() {</div>
<div>        n := float32(x - 10)</div>
<div>        // y = float32(y - 10)</div>
<div>        //n := float32(y + 10)</div>
<div>        canvas.NewPositionAnimation(</div>
<div>            fyne.NewPos(x, n),</div>
<div>            fyne.NewPos(n, y),</div>
<div>            canvas.DurationStandard,</div>
<div>            func(p fyne.Position) {</div>
<div>                dog_img.Move(p)</div>
<div>                dog_img.Refresh()</div>
<div>            }).Start()</div>
<div>        dog_img.Move(fyne.NewPos(x, y))</div>
<div>        dog_img.Refresh()</div>
<div>        x = n</div>
<div>    })</div>
<div>    down_btn.Resize(fyne.NewSize(50, 30))</div>
<div>    down_btn.Move(fyne.NewPos(150, 60))</div>
<div>    up_btn2.Resize(fyne.NewSize(50, 30))</div>
<div>    up_btn2.Move(fyne.NewPos(150, 0))</div>
<div>    right_btn3.Resize(fyne.NewSize(50, 30))</div>
<div>    right_btn3.Move(fyne.NewPos(180, 30))</div>
<div>    left_btn4.Resize(fyne.NewSize(50, 30))</div>
<div>    left_btn4.Move(fyne.NewPos(130, 30))</div>
<div>    w.SetContent(container.NewWithoutLayout(</div>
<div>        dog_img, down_btn, up_btn2, right_btn3, left_btn4, cat_img,</div>
<div>    ))</div>
<div>    w.ShowAndRun()</div>
<div>}</div>
</div>

 

Download Code

Fyne Golang GUI Course

Tony BB
 

TonyBB is a Coach , marketer, hypnotist and a founder of RSKVF Production who specializes in providing simple, affordable, and easy to use solutions for Life.

Click Here to Leave a Comment Below 0 comments

Leave a Reply: