-
Stable version: v1.6.1 / Development version: v1.7.0-alpha
+Stable version: v1.6.2 / Development version: v1.7.0-alpha
diff --git a/_docs/index.tmpl.html b/_docs/index.tmpl.html index eb066d848..fb70f4813 100644 --- a/_docs/index.tmpl.html +++ b/_docs/index.tmpl.html @@ -25,7 +25,7 @@
// +build example
+ // +build example jsgo
package main
import (
+ "bytes"
"fmt"
"image"
"image/color"
@@ -41,6 +42,7 @@ import (
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -65,11 +67,21 @@ var (
)
func init() {
- var err error
- gophersImage, _, err = ebitenutil.NewImageFromFile("_resources/images/gophers.jpg", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Gophers_jpg))
if err != nil {
- panic(err)
+ log.Fatal(err)
}
+ gophersImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
groundImage, _ = ebiten.NewImage(screenWidth*2, screenHeight*2/3+50, ebiten.FilterDefault)
perspectiveGroundImage, _ = ebiten.NewImage(screenWidth*2, screenHeight, ebiten.FilterDefault)
@@ -210,9 +222,9 @@ func drawGroundImage(screen *ebiten.Image, ground *ebiten.Image) {
gw, _ := ground.Size()
pw, ph := perspectiveGroundImage.Size()
for j := 0; j < ph; j++ {
- // z is in [1, -1]
+ // z is in [2, -1]
rate := float64(j) / float64(ph)
- z := (1-rate)*1 + rate*-1
+ z := (1-rate)*2 + rate*-1
if z <= 0 {
break
}
diff --git a/docs/examples/alphablending.html b/docs/examples/alphablending.html
index 4175d7b76..435352f12 100644
--- a/docs/examples/alphablending.html
+++ b/docs/examples/alphablending.html
@@ -27,17 +27,19 @@
Ebiten example - alphablending
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
+ "image"
"image/color"
_ "image/png"
"log"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -81,11 +83,21 @@ func update(screen *ebiten.Image) error {
}
func main() {
- var err error
- ebitenImage, _, err = ebitenutil.NewImageFromFile("_resources/images/ebiten.png", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Ebiten_png))
if err != nil {
log.Fatal(err)
}
+ ebitenImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Alpha Blending (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/audio.html b/docs/examples/audio.html
index 7fc663fc2..003b2bea0 100644
--- a/docs/examples/audio.html
+++ b/docs/examples/audio.html
@@ -27,7 +27,7 @@
Ebiten example - audio
- // +build example
+ // +build example jsgo
// This is an example to implement an audio player.
// See examples/wav for a simpler example to play a sound file.
@@ -46,6 +46,7 @@ import (
"github.com/hajimehoshi/ebiten/audio/mp3"
"github.com/hajimehoshi/ebiten/audio/wav"
"github.com/hajimehoshi/ebiten/ebitenutil"
+ raudio "github.com/hajimehoshi/ebiten/examples/resources/audio"
"github.com/hajimehoshi/ebiten/inpututil"
)
@@ -83,15 +84,7 @@ func playerBarRect() (x, y, w, h int) {
func NewPlayer(audioContext *audio.Context) (*Player, error) {
const bytesPerSample = 4 // TODO: This should be defined in audio package
- wavF, err := ebitenutil.OpenFile("_resources/audio/jab.wav")
- if err != nil {
- return nil, err
- }
- mp3F, err := ebitenutil.OpenFile("_resources/audio/classic.mp3")
- if err != nil {
- return nil, err
- }
- s, err := mp3.Decode(audioContext, mp3F)
+ s, err := mp3.Decode(audioContext, audio.BytesReadSeekCloser(raudio.Classic_mp3))
if err != nil {
return nil, err
}
@@ -111,7 +104,7 @@ func NewPlayer(audioContext *audio.Context) (*Player, error) {
}
player.audioPlayer.Play()
go func() {
- s, err := wav.Decode(audioContext, wavF)
+ s, err := wav.Decode(audioContext, audio.BytesReadSeekCloser(raudio.Jab_wav))
if err != nil {
log.Fatal(err)
return
diff --git a/docs/examples/filter.html b/docs/examples/filter.html
index 4fe9107e2..defb5df3e 100644
--- a/docs/examples/filter.html
+++ b/docs/examples/filter.html
@@ -27,16 +27,19 @@
Ebiten example - filter
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
+ "image"
_ "image/png"
"log"
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -72,14 +75,25 @@ func update(screen *ebiten.Image) error {
}
func main() {
- var err error
- // Specifying filter on NewImage(FromImage) is just for backward compatibility.
- // Now specifying filter at DrawImageOptions is recommended.
- // Specify FilterDefault here, that means to prefer filter specified at DrawImageOptions.
- ebitenImage, _, err = ebitenutil.NewImageFromFile("_resources/images/ebiten.png", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Ebiten_png))
if err != nil {
log.Fatal(err)
}
+
+ // Specifying filter on NewImage[FromImage] is just for backward compatibility.
+ // Now specifying filter at DrawImageOptions is recommended.
+ // Specify FilterDefault here, that means to prefer filter specified at DrawImageOptions.
+ ebitenImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
if err := ebiten.Run(update, screenWidth, screenHeight, 1, "Filter (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/flood.html b/docs/examples/flood.html
index e224b59b6..26d91f8f3 100644
--- a/docs/examples/flood.html
+++ b/docs/examples/flood.html
@@ -27,17 +27,19 @@
Ebiten example - flood
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
+ "image"
"image/color"
_ "image/png"
"log"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -97,11 +99,21 @@ func update(screen *ebiten.Image) error {
}
func main() {
- var err error
- ebitenImage, _, err = ebitenutil.NewImageFromFile("_resources/images/ebiten.png", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Ebiten_png))
if err != nil {
log.Fatal(err)
}
+ ebitenImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Flood fill with solid colors (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/font.html b/docs/examples/font.html
index 059ad62d5..476b86bcd 100644
--- a/docs/examples/font.html
+++ b/docs/examples/font.html
@@ -27,14 +27,13 @@
Ebiten example - font
- // +build example
+ // +build example jsgo
package main
import (
"fmt"
"image/color"
- "io/ioutil"
"log"
"math/rand"
"strings"
@@ -44,7 +43,7 @@ import (
"golang.org/x/image/font"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/fonts"
"github.com/hajimehoshi/ebiten/text"
)
@@ -109,18 +108,7 @@ func init() {
}
func init() {
- f, err := ebitenutil.OpenFile("_resources/fonts/mplus-1p-regular.ttf")
- if err != nil {
- log.Fatal(err)
- }
- defer f.Close()
-
- b, err := ioutil.ReadAll(f)
- if err != nil {
- log.Fatal(err)
- }
-
- tt, err := truetype.Parse(b)
+ tt, err := truetype.Parse(fonts.MPlus1pRegular_ttf)
if err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/gamepad.html b/docs/examples/gamepad.html
index c93f3985a..05c299029 100644
--- a/docs/examples/gamepad.html
+++ b/docs/examples/gamepad.html
@@ -27,7 +27,7 @@
Ebiten example - gamepad
- // +build example
+ // +build example jsgo
package main
diff --git a/docs/examples/highdpi.html b/docs/examples/highdpi.html
index ce9325d0c..c463e4920 100644
--- a/docs/examples/highdpi.html
+++ b/docs/examples/highdpi.html
@@ -27,7 +27,7 @@
Ebiten example - highdpi
- // +build example
+ // +build example jsgo
package main
diff --git a/docs/examples/hsv.html b/docs/examples/hsv.html
index 5e3084ccf..8a68d4f84 100644
--- a/docs/examples/hsv.html
+++ b/docs/examples/hsv.html
@@ -27,18 +27,21 @@
Ebiten example - hsv
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
"fmt"
+ "image"
_ "image/jpeg"
"log"
"math"
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -139,11 +142,21 @@ Inverted: %s [I]`, hue, saturation, value, msgInverted)
}
func main() {
- var err error
- gophersImage, _, err = ebitenutil.NewImageFromFile("_resources/images/gophers.jpg", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Gophers_jpg))
if err != nil {
log.Fatal(err)
}
+ gophersImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "HSV (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/hue.html b/docs/examples/hue.html
index 45b1002a7..72b6fa2ad 100644
--- a/docs/examples/hue.html
+++ b/docs/examples/hue.html
@@ -27,17 +27,19 @@
Ebiten example - hue
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
+ "image"
_ "image/jpeg"
"log"
"math"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -70,11 +72,21 @@ func update(screen *ebiten.Image) error {
}
func main() {
- var err error
- gophersImage, _, err = ebitenutil.NewImageFromFile("_resources/images/gophers.jpg", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Gophers_jpg))
if err != nil {
log.Fatal(err)
}
+ gophersImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Hue (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/infinitescroll.html b/docs/examples/infinitescroll.html
index 41091d4e3..b2ef20664 100644
--- a/docs/examples/infinitescroll.html
+++ b/docs/examples/infinitescroll.html
@@ -27,17 +27,20 @@
Ebiten example - infinitescroll
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
"fmt"
+ "image"
_ "image/png"
"log"
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -50,11 +53,20 @@ var (
)
func init() {
- var err error
- bgImage, _, err = ebitenutil.NewImageFromFile("_resources/images/tile.png", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Tile_png))
if err != nil {
log.Fatal(err)
}
+ bgImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
}
var (
diff --git a/docs/examples/keyboard.html b/docs/examples/keyboard.html
index 8f7f7c01b..a3ebab48d 100644
--- a/docs/examples/keyboard.html
+++ b/docs/examples/keyboard.html
@@ -27,18 +27,20 @@
Ebiten example - keyboard
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
+ "image"
_ "image/png"
"log"
"strconv"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
"github.com/hajimehoshi/ebiten/examples/keyboard/keyboard"
+ rkeyabord "github.com/hajimehoshi/ebiten/examples/resources/images/keyboard"
)
const (
@@ -49,11 +51,12 @@ const (
var keyboardImage *ebiten.Image
func init() {
- var err error
- keyboardImage, _, err = ebitenutil.NewImageFromFile("_resources/images/keyboard/keyboard.png", ebiten.FilterDefault)
+ img, _, err := image.Decode(bytes.NewReader(rkeyabord.Keyboard_png))
if err != nil {
log.Fatal(err)
}
+
+ keyboardImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
}
var keyNames = map[ebiten.Key]string{
diff --git a/docs/examples/life.html b/docs/examples/life.html
index 321bee2f8..a0649b786 100644
--- a/docs/examples/life.html
+++ b/docs/examples/life.html
@@ -27,7 +27,7 @@
Ebiten example - life
- // +build example
+ // +build example jsgo
package main
diff --git a/docs/examples/mandelbrot.html b/docs/examples/mandelbrot.html
index 921d5dd9c..1ffcfccdb 100644
--- a/docs/examples/mandelbrot.html
+++ b/docs/examples/mandelbrot.html
@@ -27,7 +27,7 @@
Ebiten example - mandelbrot
- // +build example
+ // +build example jsgo
package main
diff --git a/docs/examples/masking.html b/docs/examples/masking.html
index c3f5807e1..0e1c67279 100644
--- a/docs/examples/masking.html
+++ b/docs/examples/masking.html
@@ -27,11 +27,12 @@
Ebiten example - masking
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
"image"
"image/color"
_ "image/jpeg"
@@ -39,7 +40,7 @@ import (
"math"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -59,16 +60,26 @@ var (
)
func init() {
- var err error
- bgImage, _, err = ebitenutil.NewImageFromFile("_resources/images/gophers.jpg", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Gophers_jpg))
if err != nil {
log.Fatal(err)
}
+ bgImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
- fgImage, _, err = ebitenutil.NewImageFromFile("_resources/images/fiveyears.jpg", ebiten.FilterDefault)
+ img, _, err = image.Decode(bytes.NewReader(images.FiveYears_jpg))
if err != nil {
log.Fatal(err)
}
+ fgImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
maskedFgImage, _ = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterDefault)
diff --git a/docs/examples/mosaic.html b/docs/examples/mosaic.html
index 4a42a3d58..28bc73340 100644
--- a/docs/examples/mosaic.html
+++ b/docs/examples/mosaic.html
@@ -27,16 +27,18 @@
Ebiten example - mosaic
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
+ "image"
_ "image/jpeg"
"log"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -52,11 +54,20 @@ var (
)
func init() {
- var err error
- gophersImage, _, err = ebitenutil.NewImageFromFile("_resources/images/gophers.jpg", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Gophers_jpg))
if err != nil {
log.Fatal(err)
}
+ gophersImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
}
func update(screen *ebiten.Image) error {
diff --git a/docs/examples/noise.html b/docs/examples/noise.html
index cb6a780aa..10a06a046 100644
--- a/docs/examples/noise.html
+++ b/docs/examples/noise.html
@@ -27,7 +27,7 @@
Ebiten example - noise
- // +build example
+ // +build example jsgo
package main
diff --git a/docs/examples/paint.html b/docs/examples/paint.html
index 6c3a53ac4..f1f092b52 100644
--- a/docs/examples/paint.html
+++ b/docs/examples/paint.html
@@ -27,7 +27,7 @@
Ebiten example - paint
- // +build example
+ // +build example jsgo
package main
diff --git a/docs/examples/perspective.html b/docs/examples/perspective.html
index f6884d794..99657f489 100644
--- a/docs/examples/perspective.html
+++ b/docs/examples/perspective.html
@@ -27,17 +27,18 @@
Ebiten example - perspective
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
"image"
_ "image/jpeg"
"log"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -80,11 +81,21 @@ func update(screen *ebiten.Image) error {
}
func main() {
- var err error
- gophersImage, _, err = ebitenutil.NewImageFromFile("_resources/images/gophers.jpg", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Gophers_jpg))
if err != nil {
log.Fatal(err)
}
+ gophersImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Perspective (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/piano.html b/docs/examples/piano.html
index 353e6f36a..ff7531ae2 100644
--- a/docs/examples/piano.html
+++ b/docs/examples/piano.html
@@ -27,14 +27,13 @@
Ebiten example - piano
- // +build example
+ // +build example jsgo
package main
import (
"fmt"
"image/color"
- "io/ioutil"
"log"
"math"
@@ -44,6 +43,7 @@ import (
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/audio"
"github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/fonts"
"github.com/hajimehoshi/ebiten/inpututil"
"github.com/hajimehoshi/ebiten/text"
)
@@ -53,18 +53,7 @@ var (
)
func init() {
- f, err := ebitenutil.OpenFile("_resources/fonts/arcade_n.ttf")
- if err != nil {
- log.Fatal(err)
- }
- defer f.Close()
-
- b, err := ioutil.ReadAll(f)
- if err != nil {
- log.Fatal(err)
- }
-
- tt, err := truetype.Parse(b)
+ tt, err := truetype.Parse(fonts.ArcadeN_ttf)
if err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/rotate.html b/docs/examples/rotate.html
index e3f80b3cf..3d834c6c3 100644
--- a/docs/examples/rotate.html
+++ b/docs/examples/rotate.html
@@ -27,17 +27,19 @@
Ebiten example - rotate
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
+ "image"
_ "image/jpeg"
"log"
"math"
"github.com/hajimehoshi/ebiten"
- "github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -74,11 +76,21 @@ func update(screen *ebiten.Image) error {
}
func main() {
- var err error
- gophersImage, _, err = ebitenutil.NewImageFromFile("_resources/images/gophers.jpg", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Gophers_jpg))
if err != nil {
log.Fatal(err)
}
+ gophersImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Rotate (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
diff --git a/docs/examples/sinewave.html b/docs/examples/sinewave.html
index ba50f6f24..819a93191 100644
--- a/docs/examples/sinewave.html
+++ b/docs/examples/sinewave.html
@@ -27,7 +27,7 @@
Ebiten example - sinewave
- // +build example
+ // +build example jsgo
package main
diff --git a/docs/examples/sprites.html b/docs/examples/sprites.html
index 3f16746d4..022c1e40c 100644
--- a/docs/examples/sprites.html
+++ b/docs/examples/sprites.html
@@ -27,12 +27,14 @@
Ebiten example - sprites
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
"fmt"
+ "image"
_ "image/png"
"log"
"math"
@@ -40,6 +42,7 @@ import (
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -105,15 +108,28 @@ var (
)
func init() {
- img, _, err := ebitenutil.NewImageFromFile("_resources/images/ebiten.png", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Ebiten_png))
if err != nil {
log.Fatal(err)
}
- w, h := img.Size()
- ebitenImage, _ = ebiten.NewImage(w, h, ebiten.FilterDefault)
+ origEbitenImage, _ := ebiten.NewImageFromImage(img, ebiten.FilterDefault)
+
+ w, h := origEbitenImage.Size()
+ ebitenImage, _ = ebiten.NewImage(w, h, ebiten.FilterNearest)
+
op := &ebiten.DrawImageOptions{}
op.ColorM.Scale(1, 1, 1, 0.5)
- ebitenImage.DrawImage(img, op)
+ ebitenImage.DrawImage(origEbitenImage, op)
+
for i := range sprites.sprites {
w, h := ebitenImage.Size()
x, y := rand.Intn(screenWidth-w), rand.Intn(screenHeight-h)
diff --git a/docs/examples/tiles.html b/docs/examples/tiles.html
index 3fb747394..4d9194d94 100644
--- a/docs/examples/tiles.html
+++ b/docs/examples/tiles.html
@@ -27,11 +27,12 @@
Ebiten example - tiles
- // +build example
+ // +build example jsgo
package main
import (
+ "bytes"
"fmt"
"image"
_ "image/png"
@@ -39,6 +40,7 @@ import (
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
+ "github.com/hajimehoshi/ebiten/examples/resources/images"
)
const (
@@ -56,11 +58,20 @@ var (
)
func init() {
- var err error
- tilesImage, _, err = ebitenutil.NewImageFromFile("_resources/images/tiles.png", ebiten.FilterDefault)
+ // Decode image from a byte slice instead of a file so that
+ // this example works in any working directory.
+ // If you want to use a file, there are some options:
+ // 1) Use os.Open and pass the file to the image decoder.
+ // This is a very regular way, but doesn't work on browsers.
+ // 2) Use ebitenutil.OpenFile and pass the file to the image decoder.
+ // This works even on browsers.
+ // 3) Use ebitenutil.NewImageFromFile to create an ebiten.Image directly from a file.
+ // This also works on browsers.
+ img, _, err := image.Decode(bytes.NewReader(images.Tiles_png))
if err != nil {
log.Fatal(err)
}
+ tilesImage, _ = ebiten.NewImageFromImage(img, ebiten.FilterDefault)
}
var (
diff --git a/docs/examples/typewriter.html b/docs/examples/typewriter.html
index c8741af21..6b8ac44b7 100644
--- a/docs/examples/typewriter.html
+++ b/docs/examples/typewriter.html
@@ -27,7 +27,7 @@
Ebiten example - typewriter
- // +build example
+ // +build example jsgo
package main
diff --git a/docs/index.html b/docs/index.html
index 9b500b751..68c5c8626 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -25,7 +25,7 @@
GitHub
GoDoc
Wiki
- Playground
+ Playground (jsgo.io)
@@ -36,7 +36,7 @@
- Stable version: v1.6.1 / Development version: v1.7.0-alpha
+ Stable version: v1.6.2 / Development version: v1.7.0-alpha
Platforms