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>
[easy_media_download url=”http://blogvali.com/wp-content/uploads/fyne-golang-downloads/main48.go” text=”Download Code” color=”red_darker”]