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"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
const (
|
||||
outputPath = "public/index.html"
|
||||
readMePath = "../readme.md"
|
||||
templatePath = "index_tmpl.html"
|
||||
)
|
||||
|
||||
@ -70,6 +70,21 @@ func safeHTML(text string) template.HTML {
|
||||
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() {
|
||||
f, err := os.Create(outputPath)
|
||||
if err != nil {
|
||||
@ -77,12 +92,6 @@ func main() {
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
// Parse readme.md
|
||||
readme, err := parseMarkdown(readMePath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
funcs := template.FuncMap{
|
||||
"comment": comment,
|
||||
"safeHTML": safeHTML,
|
||||
@ -92,9 +101,14 @@ func main() {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
data := map[string]string{
|
||||
"License": license,
|
||||
"ReadMe": readme,
|
||||
examples := []example{
|
||||
{Name: "mosaic"},
|
||||
{Name: "perspective"},
|
||||
{Name: "rotate"},
|
||||
}
|
||||
data := map[string]interface{}{
|
||||
"License": license,
|
||||
"Examples": examples,
|
||||
}
|
||||
if err := t.Funcs(funcs).Execute(f, data); err != nil {
|
||||
log.Fatal(err)
|
||||
|
@ -1,3 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
{{ comment .License }}
|
||||
{{ safeHTML .ReadMe }}
|
||||
{{comment .License}}
|
||||
<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.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.-->
|
||||
<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>
|
||||
|
||||
<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 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>
|
||||
<a id="user-content-features" class="anchor" href="#features" aria-hidden="true"><span class="octicon octicon-link"></span></a>Features</h2>
|
||||
|
||||
<h2>Features</h2>
|
||||
<ul>
|
||||
<li>2D Graphics</li>
|
||||
<li>Input (Mouse, Keyboard)</li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a id="user-content-example" class="anchor" href="#example" aria-hidden="true"><span class="octicon octicon-link"></span></a>Example</h2>
|
||||
<h2>Example</h2>
|
||||
<table>
|
||||
|
||||
<tr>
|
||||
<td><pre><code>package main
|
||||
|
||||
<ul>
|
||||
<li>example/mosaic - Mosaics an image</li>
|
||||
<li>example/perspective - See an image in a perspective view</li>
|
||||
<li>example/rotate - Rotates an image</li>
|
||||
<li>etc.</li>
|
||||
</ul>
|
||||
import (
|
||||
"github.com/hajimehoshi/ebiten"
|
||||
"github.com/hajimehoshi/ebiten/ebitenutil"
|
||||
_ "image/jpeg"
|
||||
"log"
|
||||
)
|
||||
|
||||
<h2>
|
||||
<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>
|
||||
const (
|
||||
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
|
||||
:; brew install glfw3 # or homebrew/versions/glfw3
|
||||
:; go get -u github.com/hajimehoshi/ebiten
|
||||
</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>
|
||||
:; 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 blocks/main.go
|
||||
</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>
|
||||
:; go run rotate/main.go</code></pre>
|
||||
|
||||
<h2>License</h2>
|
||||
<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 obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
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.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
</code></pre>
|
||||
|
||||
limitations under the License.</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