mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-01-12 20:18:59 +01:00
Update documents
This commit is contained in:
parent
89a3297e74
commit
a653ba9258
34
_docs/gen.go
34
_docs/gen.go
@ -23,11 +23,11 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
outputPath = "public/index.html"
|
outputPath = "public/index.html"
|
||||||
readMePath = "../readme.md"
|
|
||||||
templatePath = "index_tmpl.html"
|
templatePath = "index_tmpl.html"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -70,6 +70,21 @@ func safeHTML(text string) template.HTML {
|
|||||||
return template.HTML(text)
|
return template.HTML(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type example struct {
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *example) Source() string {
|
||||||
|
path := filepath.Join(os.Getenv("GOPATH"), "src", "github.com", "hajimehoshi", "ebiten", "example", e.Name, "main.go")
|
||||||
|
b, err := ioutil.ReadFile(path)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
str := regexp.MustCompile("(?s)^.*?\n\n").ReplaceAllString(string(b), "")
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
f, err := os.Create(outputPath)
|
f, err := os.Create(outputPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -77,12 +92,6 @@ func main() {
|
|||||||
}
|
}
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
|
|
||||||
// Parse readme.md
|
|
||||||
readme, err := parseMarkdown(readMePath)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
funcs := template.FuncMap{
|
funcs := template.FuncMap{
|
||||||
"comment": comment,
|
"comment": comment,
|
||||||
"safeHTML": safeHTML,
|
"safeHTML": safeHTML,
|
||||||
@ -92,9 +101,14 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
data := map[string]string{
|
examples := []example{
|
||||||
"License": license,
|
{Name: "mosaic"},
|
||||||
"ReadMe": readme,
|
{Name: "perspective"},
|
||||||
|
{Name: "rotate"},
|
||||||
|
}
|
||||||
|
data := map[string]interface{}{
|
||||||
|
"License": license,
|
||||||
|
"Examples": examples,
|
||||||
}
|
}
|
||||||
if err := t.Funcs(funcs).Execute(f, data); err != nil {
|
if err := t.Funcs(funcs).Execute(f, data); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
@ -1,3 +1,43 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
{{ comment .License }}
|
{{comment .License}}
|
||||||
{{ safeHTML .ReadMe }}
|
<h1>Ebiten (海老天) v1.0.0-alpha</h1>
|
||||||
|
<ul>
|
||||||
|
<li>A simple 2D game library in Go</li>
|
||||||
|
<li>Works on
|
||||||
|
<ul>
|
||||||
|
<li>Mac OS X</li>
|
||||||
|
<li>Linux (maybe)</li>
|
||||||
|
<li>Windows (possibly)</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="http://godoc.org/github.com/hajimehoshi/ebiten">API Docs</a></li>
|
||||||
|
<li><a href="http://github.com/hajimehoshi/ebiten">Source Code</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Features</h2>
|
||||||
|
<ul>
|
||||||
|
<li>2D Graphics</li>
|
||||||
|
<li>Input (Mouse, Keyboard)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Example</h2>
|
||||||
|
<table>
|
||||||
|
{{range .Examples}}
|
||||||
|
<tr>
|
||||||
|
<td><pre><code>{{.Source}}</code></pre></td>
|
||||||
|
<td><img src="{{.Name}}.gif" width="320" height="240"></td>
|
||||||
|
</tr>
|
||||||
|
{{end}}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h2>Install on Mac OS X</h2>
|
||||||
|
<pre><code>:; brew install glew
|
||||||
|
:; brew install glfw3 # or homebrew/versions/glfw3
|
||||||
|
:; go get -u github.com/hajimehoshi/ebiten</code></pre>
|
||||||
|
|
||||||
|
<h2>Execute the example</h2>
|
||||||
|
<pre><code>:; cd $GOHOME/src/github.com/hajimehoshi/ebiten/example
|
||||||
|
:; go run rotate/main.go</code></pre>
|
||||||
|
|
||||||
|
<h2>License</h2>
|
||||||
|
<pre><code>{{.License}}</code></pre>
|
||||||
|
@ -12,87 +12,224 @@ distributed under the License is distributed on an "AS IS" BASIS,
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.-->
|
limitations under the License.-->
|
||||||
<h1>
|
<h1>Ebiten (海老天) v1.0.0-alpha</h1>
|
||||||
<a id="user-content-ebiten-海老天-v100-alpha" class="anchor" href="#ebiten-%E6%B5%B7%E8%80%81%E5%A4%A9-v100-alpha" aria-hidden="true"><span class="octicon octicon-link"></span></a>Ebiten (海老天) v1.0.0-alpha</h1>
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>A simple 2D game library in Go</li>
|
<li>A simple 2D game library in Go</li>
|
||||||
<li>Works on
|
<li>Works on
|
||||||
|
<ul>
|
||||||
<ul>
|
<li>Mac OS X</li>
|
||||||
<li>Mac OS X</li>
|
<li>Linux (maybe)</li>
|
||||||
<li>Linux (maybe)</li>
|
<li>Windows (possibly)</li>
|
||||||
<li>Windows (possibly)</li>
|
</ul>
|
||||||
</ul>
|
</li>
|
||||||
</li>
|
<li><a href="http://godoc.org/github.com/hajimehoshi/ebiten">API Docs</a></li>
|
||||||
<li><a href="http://godoc.org/github.com/hajimehoshi/ebiten">API Docs</a></li>
|
<li><a href="http://github.com/hajimehoshi/ebiten">Source Code</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>
|
<h2>Features</h2>
|
||||||
<a id="user-content-features" class="anchor" href="#features" aria-hidden="true"><span class="octicon octicon-link"></span></a>Features</h2>
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>2D Graphics</li>
|
<li>2D Graphics</li>
|
||||||
<li>Input (Mouse, Keyboard)</li>
|
<li>Input (Mouse, Keyboard)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>
|
<h2>Example</h2>
|
||||||
<a id="user-content-example" class="anchor" href="#example" aria-hidden="true"><span class="octicon octicon-link"></span></a>Example</h2>
|
<table>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><pre><code>package main
|
||||||
|
|
||||||
<ul>
|
import (
|
||||||
<li>example/mosaic - Mosaics an image</li>
|
"github.com/hajimehoshi/ebiten"
|
||||||
<li>example/perspective - See an image in a perspective view</li>
|
"github.com/hajimehoshi/ebiten/ebitenutil"
|
||||||
<li>example/rotate - Rotates an image</li>
|
_ "image/jpeg"
|
||||||
<li>etc.</li>
|
"log"
|
||||||
</ul>
|
)
|
||||||
|
|
||||||
<h2>
|
const (
|
||||||
<a id="user-content-install-on-mac-os-x" class="anchor" href="#install-on-mac-os-x" aria-hidden="true"><span class="octicon octicon-link"></span></a>Install on Mac OS X</h2>
|
screenWidth = 320
|
||||||
|
screenHeight = 240
|
||||||
|
)
|
||||||
|
|
||||||
|
const mosaicRatio = 16
|
||||||
|
|
||||||
|
var (
|
||||||
|
gophersImage *ebiten.Image
|
||||||
|
gophersRenderTarget *ebiten.Image
|
||||||
|
)
|
||||||
|
|
||||||
|
func update(screen *ebiten.Image) error {
|
||||||
|
gophersRenderTarget.DrawImage(gophersImage, &ebiten.DrawImageOptions{
|
||||||
|
GeoM: ebiten.ScaleGeo(1.0/mosaicRatio, 1.0/mosaicRatio),
|
||||||
|
})
|
||||||
|
screen.DrawImage(gophersRenderTarget, &ebiten.DrawImageOptions{
|
||||||
|
GeoM: ebiten.ScaleGeo(mosaicRatio, mosaicRatio),
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var err error
|
||||||
|
gophersImage, _, err = ebitenutil.NewImageFromFile("images/gophers.jpg", ebiten.FilterNearest)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
w, h := gophersImage.Size()
|
||||||
|
gophersRenderTarget, err = ebiten.NewImage(w/mosaicRatio, h/mosaicRatio, ebiten.FilterNearest)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Mosaic (Ebiten Demo)"); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code></pre></td>
|
||||||
|
<td><img src="mosaic.gif" width="320" height="240"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><pre><code>package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/hajimehoshi/ebiten"
|
||||||
|
"github.com/hajimehoshi/ebiten/ebitenutil"
|
||||||
|
"image"
|
||||||
|
_ "image/jpeg"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
screenWidth = 320
|
||||||
|
screenHeight = 240
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
gophersImage *ebiten.Image
|
||||||
|
)
|
||||||
|
|
||||||
|
func update(screen *ebiten.Image) error {
|
||||||
|
parts := []ebiten.ImagePart{}
|
||||||
|
w, h := gophersImage.Size()
|
||||||
|
for i := 0; i < h; i++ {
|
||||||
|
width := w + i*3/4
|
||||||
|
x := ((h - i) * 3 / 4) / 2
|
||||||
|
parts = append(parts, ebiten.ImagePart{
|
||||||
|
Dst: image.Rect(x, i, x+width, i+1),
|
||||||
|
Src: image.Rect(0, i, w, i+1),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
maxWidth := float64(w) + float64(h)*0.75
|
||||||
|
geo := ebiten.TranslateGeo(-maxWidth/2, -float64(h)/2)
|
||||||
|
geo.Concat(ebiten.TranslateGeo(screenWidth/2, screenHeight/2))
|
||||||
|
screen.DrawImage(gophersImage, &ebiten.DrawImageOptions{
|
||||||
|
Parts: parts,
|
||||||
|
GeoM: geo,
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var err error
|
||||||
|
gophersImage, _, err = ebitenutil.NewImageFromFile("images/gophers.jpg", ebiten.FilterNearest)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Perspective (Ebiten Demo)"); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code></pre></td>
|
||||||
|
<td><img src="perspective.gif" width="320" height="240"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><pre><code>package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/hajimehoshi/ebiten"
|
||||||
|
"github.com/hajimehoshi/ebiten/ebitenutil"
|
||||||
|
_ "image/jpeg"
|
||||||
|
"log"
|
||||||
|
"math"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
screenWidth = 320
|
||||||
|
screenHeight = 240
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
count int
|
||||||
|
horizontalCount int
|
||||||
|
verticalCount int
|
||||||
|
gophersImage *ebiten.Image
|
||||||
|
)
|
||||||
|
|
||||||
|
func update(screen *ebiten.Image) error {
|
||||||
|
count++
|
||||||
|
if ebiten.IsKeyPressed(ebiten.KeyLeft) {
|
||||||
|
horizontalCount--
|
||||||
|
}
|
||||||
|
if ebiten.IsKeyPressed(ebiten.KeyRight) {
|
||||||
|
horizontalCount++
|
||||||
|
}
|
||||||
|
if ebiten.IsKeyPressed(ebiten.KeyDown) {
|
||||||
|
verticalCount--
|
||||||
|
}
|
||||||
|
if ebiten.IsKeyPressed(ebiten.KeyUp) {
|
||||||
|
verticalCount++
|
||||||
|
}
|
||||||
|
|
||||||
|
w, h := gophersImage.Size()
|
||||||
|
geo := ebiten.TranslateGeo(-float64(w)/2, -float64(h)/2)
|
||||||
|
scaleX := math.Pow(1.05, float64(horizontalCount))
|
||||||
|
scaleY := math.Pow(1.05, float64(verticalCount))
|
||||||
|
geo.Concat(ebiten.ScaleGeo(scaleX, scaleY))
|
||||||
|
geo.Concat(ebiten.RotateGeo(float64(count%720) * 2 * math.Pi / 720))
|
||||||
|
geo.Concat(ebiten.TranslateGeo(screenWidth/2, screenHeight/2))
|
||||||
|
if err := screen.DrawImage(gophersImage, &ebiten.DrawImageOptions{
|
||||||
|
GeoM: geo,
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var err error
|
||||||
|
gophersImage, _, err = ebitenutil.NewImageFromFile("images/gophers.jpg", ebiten.FilterNearest)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Image (Ebiten Demo)"); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code></pre></td>
|
||||||
|
<td><img src="rotate.gif" width="320" height="240"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h2>Install on Mac OS X</h2>
|
||||||
<pre><code>:; brew install glew
|
<pre><code>:; brew install glew
|
||||||
:; brew install glfw3 # or homebrew/versions/glfw3
|
:; brew install glfw3 # or homebrew/versions/glfw3
|
||||||
:; go get -u github.com/hajimehoshi/ebiten
|
:; go get -u github.com/hajimehoshi/ebiten</code></pre>
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
<h2>
|
|
||||||
<a id="user-content-execute-the-example" class="anchor" href="#execute-the-example" aria-hidden="true"><span class="octicon octicon-link"></span></a>Execute the example</h2>
|
|
||||||
|
|
||||||
|
<h2>Execute the example</h2>
|
||||||
<pre><code>:; cd $GOHOME/src/github.com/hajimehoshi/ebiten/example
|
<pre><code>:; cd $GOHOME/src/github.com/hajimehoshi/ebiten/example
|
||||||
:; go run blocks/main.go
|
:; go run rotate/main.go</code></pre>
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
<h3>
|
|
||||||
<a id="user-content-benchmark-the-example" class="anchor" href="#benchmark-the-example" aria-hidden="true"><span class="octicon octicon-link"></span></a>Benchmark the example</h3>
|
|
||||||
|
|
||||||
<pre><code>:; cd $GOHOME/src/github.com/hajimehoshi/ebiten/example
|
|
||||||
:; go build -o=example blocks/main.go
|
|
||||||
:; ./example -cpuprofile=cpu.out
|
|
||||||
:; go tool pprof ./example cpu.out
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
<h2>
|
|
||||||
<a id="user-content-versioning" class="anchor" href="#versioning" aria-hidden="true"><span class="octicon octicon-link"></span></a>Versioning</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>We adopted <a href="http://semver.org/">Semantic Versioning</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>
|
|
||||||
<a id="user-content-license" class="anchor" href="#license" aria-hidden="true"><span class="octicon octicon-link"></span></a>License</h2>
|
|
||||||
|
|
||||||
|
<h2>License</h2>
|
||||||
<pre><code>Copyright 2014 Hajime Hoshi
|
<pre><code>Copyright 2014 Hajime Hoshi
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.</code></pre>
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
|
BIN
_docs/public/mosaic.gif
Normal file
BIN
_docs/public/mosaic.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
BIN
_docs/public/perspective.gif
Normal file
BIN
_docs/public/perspective.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
BIN
_docs/public/rotate.gif
Normal file
BIN
_docs/public/rotate.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 MiB |
Loading…
Reference in New Issue
Block a user