Tons of experimental updates.

This commit is contained in:
2023-10-27 09:59:01 -04:00
parent 8fd27c5df7
commit 1ffc593ebe
11 changed files with 625 additions and 0 deletions

64
game.go Normal file
View File

@@ -0,0 +1,64 @@
package main
import (
"image/color"
c "loading/character"
"loading/objects"
"github.com/hajimehoshi/ebiten/v2"
"github.com/hajimehoshi/ebiten/v2/text"
)
// Game implements ebiten.Game interface.
type Game struct {
counter int
player c.Character
enemies []c.Character
keys []ebiten.Key
bobbles []objects.Bobble
}
// Layout takes the outside size (e.g., the window size) and returns the (logical) screen size.
// If you don't have to adjust the screen size with the outside size, just return a fixed size.
func (g *Game) Layout(outsideWidth, outsideHeight int) (screenWidth, screenHeight int) {
return 800, 600
}
// Draw draws the game screen.
// Draw is called every frame (typically 1/60[s] for 60Hz display).
func (g *Game) Draw(screen *ebiten.Image) {
dst := screen
dst.Fill(color.RGBA{0x28, 0x28, 0x28, 0xff})
// render the info text
text.Draw(dst, bsofttext, mplusNormalFont, 20, 40, color.White)
//g.DrawChase(dst)
//g.DrawLoading(dst)
g.DrawBobbles(dst)
}
func (g *Game) DrawBobbles(image *ebiten.Image) {
//identifier
text.Draw(image, bobblesInfo, mplusTinyFont, 20, 60, color.White)
//light up the bobbles
for i := 0; i < len(g.bobbles); i++ {
DrawBobble(g.bobbles[i], image)
}
}
func (g *Game) DrawChase(image *ebiten.Image) {
//identifier
text.Draw(image, sceneInfo, mplusTinyFont, 20, 60, color.White)
//draw the enemies first
for i := 0; i < len(g.enemies); i++ {
DrawCharacter(g.enemies[i], image)
}
//followed by the player character
DrawCharacter(g.player, image)
}