mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-01-13 12:32:05 +01:00
parent
e25a6f4d46
commit
bab3288a37
@ -42,7 +42,10 @@ func init() {
|
|||||||
offscreen, _ = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterDefault)
|
offscreen, _ = ebiten.NewImage(screenWidth, screenHeight, ebiten.FilterDefault)
|
||||||
}
|
}
|
||||||
|
|
||||||
func update(screen *ebiten.Image) error {
|
type Game struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) Update(screen *ebiten.Image) error {
|
||||||
w, h := offscreen.Size()
|
w, h := offscreen.Size()
|
||||||
x := rand.Intn(w)
|
x := rand.Intn(w)
|
||||||
y := rand.Intn(h)
|
y := rand.Intn(h)
|
||||||
@ -53,18 +56,22 @@ func update(screen *ebiten.Image) error {
|
|||||||
byte(0xff),
|
byte(0xff),
|
||||||
}
|
}
|
||||||
offscreen.Set(x, y, c)
|
offscreen.Set(x, y, c)
|
||||||
|
|
||||||
if ebiten.IsDrawingSkipped() {
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (g *Game) Draw(screen *ebiten.Image) {
|
||||||
screen.DrawImage(offscreen, nil)
|
screen.DrawImage(offscreen, nil)
|
||||||
ebitenutil.DebugPrint(screen, fmt.Sprintf("TPS: %0.2f\nFPS: %0.2f", ebiten.CurrentTPS(), ebiten.CurrentFPS()))
|
ebitenutil.DebugPrint(screen, fmt.Sprintf("TPS: %0.2f\nFPS: %0.2f", ebiten.CurrentTPS(), ebiten.CurrentFPS()))
|
||||||
return nil
|
}
|
||||||
|
|
||||||
|
func (g *Game) Layout(outsideWidth, outsideHeight int) (int, int) {
|
||||||
|
return screenWidth, screenHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Test"); err != nil {
|
ebiten.SetWindowSize(screenWidth*2, screenHeight*2)
|
||||||
|
ebiten.SetWindowTitle("Set (Ebiten Demo)")
|
||||||
|
if err := ebiten.RunGame(&Game{}); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,9 @@ func init() {
|
|||||||
emptyImage.Fill(color.White)
|
emptyImage.Fill(color.White)
|
||||||
}
|
}
|
||||||
|
|
||||||
var count = 0
|
type Game struct {
|
||||||
|
count int
|
||||||
|
}
|
||||||
|
|
||||||
func line(x0, y0, x1, y1 float32, clr color.RGBA) ([]ebiten.Vertex, []uint16) {
|
func line(x0, y0, x1, y1 float32, clr color.RGBA) ([]ebiten.Vertex, []uint16) {
|
||||||
const width = 1
|
const width = 1
|
||||||
@ -152,15 +154,14 @@ func rect(x, y, w, h float32, clr color.RGBA) ([]ebiten.Vertex, []uint16) {
|
|||||||
}, []uint16{0, 1, 2, 1, 2, 3}
|
}, []uint16{0, 1, 2, 1, 2, 3}
|
||||||
}
|
}
|
||||||
|
|
||||||
func update(screen *ebiten.Image) error {
|
func (g *Game) Update(screen *ebiten.Image) error {
|
||||||
count++
|
g.count++
|
||||||
count %= 240
|
g.count %= 240
|
||||||
|
|
||||||
if ebiten.IsDrawingSkipped() {
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
cf := float64(count)
|
func (g *Game) Draw(screen *ebiten.Image) {
|
||||||
|
cf := float64(g.count)
|
||||||
v, i := line(100, 100, 300, 100, color.RGBA{0xff, 0xff, 0xff, 0xff})
|
v, i := line(100, 100, 300, 100, color.RGBA{0xff, 0xff, 0xff, 0xff})
|
||||||
screen.DrawTriangles(v, i, emptyImage, nil)
|
screen.DrawTriangles(v, i, emptyImage, nil)
|
||||||
v, i = line(50, 150, 50, 350, color.RGBA{0xff, 0xff, 0x00, 0xff})
|
v, i = line(50, 150, 50, 350, color.RGBA{0xff, 0xff, 0x00, 0xff})
|
||||||
@ -174,11 +175,16 @@ func update(screen *ebiten.Image) error {
|
|||||||
screen.DrawTriangles(v, i, emptyImage, nil)
|
screen.DrawTriangles(v, i, emptyImage, nil)
|
||||||
|
|
||||||
ebitenutil.DebugPrint(screen, fmt.Sprintf("TPS: %0.2f", ebiten.CurrentTPS()))
|
ebitenutil.DebugPrint(screen, fmt.Sprintf("TPS: %0.2f", ebiten.CurrentTPS()))
|
||||||
return nil
|
}
|
||||||
|
|
||||||
|
func (g *Game) Layout(outsideWidth, outsideHeight int) (int, int) {
|
||||||
|
return screenWidth, screenHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if err := ebiten.Run(update, screenWidth, screenHeight, 1, "Shapes (Ebiten Demo)"); err != nil {
|
ebiten.SetWindowSize(screenWidth, screenHeight)
|
||||||
|
ebiten.SetWindowTitle("Shapes (Ebiten Demo)")
|
||||||
|
if err := ebiten.RunGame(&Game{}); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -93,29 +93,37 @@ func (s *stream) Close() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var player *audio.Player
|
type Game struct {
|
||||||
|
player *audio.Player
|
||||||
|
}
|
||||||
|
|
||||||
func update(screen *ebiten.Image) error {
|
func (g *Game) Update(screen *ebiten.Image) error {
|
||||||
if player == nil {
|
if g.player == nil {
|
||||||
// Pass the (infinite) stream to audio.NewPlayer.
|
// Pass the (infinite) stream to audio.NewPlayer.
|
||||||
// After calling Play, the stream never ends as long as the player object lives.
|
// After calling Play, the stream never ends as long as the player object lives.
|
||||||
var err error
|
var err error
|
||||||
player, err = audio.NewPlayer(audioContext, &stream{})
|
g.player, err = audio.NewPlayer(audioContext, &stream{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
player.Play()
|
g.player.Play()
|
||||||
}
|
}
|
||||||
if ebiten.IsDrawingSkipped() {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
msg := fmt.Sprintf("TPS: %0.2f\nThis is an example using infinite audio stream.", ebiten.CurrentTPS())
|
|
||||||
ebitenutil.DebugPrint(screen, msg)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (g *Game) Draw(screen *ebiten.Image) {
|
||||||
|
msg := fmt.Sprintf("TPS: %0.2f\nThis is an example using infinite audio stream.", ebiten.CurrentTPS())
|
||||||
|
ebitenutil.DebugPrint(screen, msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) Layout(outsideWidth, outsideHeight int) (int, int) {
|
||||||
|
return screenWidth, screenHeight
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Sine Wave (Ebiten Demo)"); err != nil {
|
ebiten.SetWindowSize(screenWidth*2, screenHeight*2)
|
||||||
|
ebiten.SetWindowTitle("Sine Wave (Ebiten Demo)")
|
||||||
|
if err := ebiten.RunGame(&Game{}); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user