From f4b7c7452479c9bd251e712ae5bde9d8472e751d Mon Sep 17 00:00:00 2001 From: Sergio Vera Castellano Date: Thu, 11 Jan 2018 14:52:23 +0100 Subject: [PATCH] First commit --- .../parallax-scrolling-background/README.md | 5 + .../background.png | Bin 0 -> 38303 bytes .../foreground.png | Bin 0 -> 27076 bytes .../parallax-scrolling-background/main.go | 107 ++++++++++++++++++ 4 files changed, 112 insertions(+) create mode 100644 examples/community/parallax-scrolling-background/README.md create mode 100644 examples/community/parallax-scrolling-background/background.png create mode 100644 examples/community/parallax-scrolling-background/foreground.png create mode 100644 examples/community/parallax-scrolling-background/main.go diff --git a/examples/community/parallax-scrolling-background/README.md b/examples/community/parallax-scrolling-background/README.md new file mode 100644 index 0000000..5347004 --- /dev/null +++ b/examples/community/parallax-scrolling-background/README.md @@ -0,0 +1,5 @@ +# Infinite scrolling background demo + +Created by [Sergio Vera](https://github.com/svera) + +This example shows how to implement an infinite side scrolling background. diff --git a/examples/community/parallax-scrolling-background/background.png b/examples/community/parallax-scrolling-background/background.png new file mode 100644 index 0000000000000000000000000000000000000000..23f83b107ffe5f2e030a97a8ee9662e6613de9db GIT binary patch literal 38303 zcmZU)1z3|^{5L*8KtV!j5JY{XK^jRx1(og?jF8@F7~Ke{NGQ_X3^qD98U&?dW8?sl zj!8?u^Y^^J=e_>d|GutWJ9nM)J?H+OZ+|{$YrdkQV5I;6090>YztjZ)Zd3sPL|r$@ z2v@ETg!2i1M4q~@o&zd|?`;rHZrCenC;Eo>9_2GT-zLdf%>Q_iW5dOJhL~a=Iv$WBxIG^BC5nn`lBk z6cmKN#6eGLRZ(?nz)i-lg=L_e`#5hbt|(svA|KER!ryad{mo1uh;VT3-1~5N*OKVp zlOWy>{}YFa(7yjU1pqd;CDwg5orp?6*LNySN= z1XatL{J(br<5Wb9|2D^gavd@_@!vRi*MCO>B-r8PC+7mN=Y1JuxD$^5`^LtqJh8yP z?Lx8tTJ@cP@-)Ez9nY+I|vE{#fsbE&<;D_kM!Q&Ho(;r>PQv-@khCzuh1HA~(M8NAvG

_XVuOker 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 F{{qYIl)nG~ literal 0 HcmV?d00001 diff --git a/examples/community/parallax-scrolling-background/main.go b/examples/community/parallax-scrolling-background/main.go new file mode 100644 index 0000000..0e57d27 --- /dev/null +++ b/examples/community/parallax-scrolling-background/main.go @@ -0,0 +1,107 @@ +package main + +import ( + "image" + "os" + "time" + + _ "image/png" + + "github.com/faiface/pixel" + "github.com/faiface/pixel/pixelgl" +) + +func loadPicture(path string) (pixel.Picture, error) { + file, err := os.Open(path) + if err != nil { + return nil, err + } + defer file.Close() + img, _, err := image.Decode(file) + if err != nil { + return nil, err + } + return pixel.PictureDataFromImage(img), nil +} + +const ( + windowWidth = 600 + windowHeight = 450 + foregroundHeight = 149 + // This is the scrolling speed (pixels per second) + backgroundSpeed = 60 + foregroundSpeed = 120 +) + +type scrollingBackground struct { + Pic pixel.Picture + speed int +} + +func run() { + cfg := pixelgl.WindowConfig{ + Title: "Scrolling background demo", + Bounds: pixel.R(0, 0, windowWidth, windowHeight), + VSync: true, + } + win, err := pixelgl.NewWindow(cfg) + if err != nil { + panic(err) + } + + // Pic must have double the width of the window, as it will scroll to the left + picBackground, err := loadPicture("background.png") + if err != nil { + panic(err) + } + picForeground, err := loadPicture("foreground.png") + if err != nil { + panic(err) + } + + // Backgrounds are made taking the left and right halves of the image + background1 := pixel.NewSprite(picBackground, pixel.R(0, 0, windowWidth, windowHeight)) + background2 := pixel.NewSprite(picBackground, pixel.R(windowWidth, 0, windowWidth*2, windowHeight)) + foreground1 := pixel.NewSprite(picForeground, pixel.R(0, 0, windowWidth, foregroundHeight)) + foreground2 := pixel.NewSprite(picForeground, pixel.R(windowWidth, 0, windowWidth*2, foregroundHeight)) + + // In the beginning, vector1 will put background1 filling the whole window, while vector2 will + // put background2 just at the right side of the window, out of view + backgroundVector1 := pixel.V(windowWidth/2, (windowHeight/2)+1) + backgroundVector2 := pixel.V(windowWidth+(windowWidth/2), (windowHeight/2)+1) + + foregroundVector1 := pixel.V(windowWidth/2, (foregroundHeight/2)+1) + foregroundVector2 := pixel.V(windowWidth+(windowWidth/2), (foregroundHeight/2)+1) + + bi, fi := 0., 0. + last := time.Now() + for !win.Closed() { + dt := time.Since(last).Seconds() + last = time.Now() + // When one of the backgrounds has completely scrolled, we swap displacement vectors, + // so the backgrounds will swap positions too regarding the previous iteration, + // thus making the background endless. + if bi <= -windowWidth { + bi = 0 + backgroundVector1, backgroundVector2 = backgroundVector2, backgroundVector1 + } + if fi <= -windowWidth { + fi = 0 + foregroundVector1, foregroundVector2 = foregroundVector2, foregroundVector1 + } + // This delta vector will move the backgrounds to the left + db := pixel.V(-bi, 0) + df := pixel.V(-fi, 0) + background1.Draw(win, pixel.IM.Moved(backgroundVector1.Sub(db))) + background2.Draw(win, pixel.IM.Moved(backgroundVector2.Sub(db))) + foreground1.Draw(win, pixel.IM.Moved(foregroundVector1.Sub(df))) + foreground2.Draw(win, pixel.IM.Moved(foregroundVector2.Sub(df))) + bi -= backgroundSpeed * dt + fi -= foregroundSpeed * dt + win.Update() + } +} + +func main() { + pixelgl.Run(run) +}