package main import ( "fmt" "image/color" c "loading/character" "loading/objects" "log" "math/rand" "github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2/examples/resources/fonts" "github.com/hajimehoshi/ebiten/v2/text" "golang.org/x/image/font" "golang.org/x/image/font/opentype" ) func init() { //tt, err := opentype.Parse(fonts.MPlus1pRegular_ttf) tt, err := opentype.Parse(fonts.PressStart2P_ttf) if err != nil { log.Fatal(err) } const dpi = 72 mplusNormalFont, err = opentype.NewFace(tt, &opentype.FaceOptions{ Size: 24, DPI: dpi, Hinting: font.HintingVertical, }) if err != nil { log.Fatal(err) } mplusBigFont, err = opentype.NewFace(tt, &opentype.FaceOptions{ Size: 48, DPI: dpi, Hinting: font.HintingFull, // Use quantization to save glyph cache images. }) if err != nil { log.Fatal(err) } mplusTinyFont, err = opentype.NewFace(tt, &opentype.FaceOptions{ Size: 10, DPI: dpi, Hinting: font.HintingVertical, }) if err != nil { log.Fatal(err) } // Adjust the line height. mplusBigFont = text.FaceWithLineHeight(mplusBigFont, 54) } func loading() { game := &Game{} whiteImage.Fill(color.White) ebiten.SetWindowSize(screenWidth, screenHeight) ebiten.SetWindowTitle(bsofttext) fmt.Println(bsofttext) //loadCharacters(game) loadBobbles(game) // Call ebiten.RunGame to start your game loop. if err := ebiten.RunGame(game); err != nil { log.Fatal(err) } } func loadBobbles(game *Game) { // generate bobbles gridWidth := bubbleGridSpacing * bubbleGridCols gridHeight := bubbleGridSpacing * bubbleGridRows gridStartX := float32((screenWidth - gridWidth - bubbleGridSpacing) / 2) gridStartY := float32((screenHeight - gridHeight - bubbleGridSpacing) / 2) for i := 0; i < totalBobbles; i++ { game.bobbles = append(game.bobbles, objects.NewBobble()) ix := float32(i%bubbleGridRows*bubbleGridSpacing + i%bubbleGridRows*bubbleGridSpacing) iy := float32(i/bubbleGridCols*bubbleGridSpacing + i/bubbleGridCols*bubbleGridSpacing) game.bobbles[i].Color = color.RGBA{0xFF, 0x00, 0x00, 0xFF} game.bobbles[i].Bordercolor = color.RGBA{0x80, 0x00, 0x00, 0xFF} game.bobbles[i].SetPose(gridStartX+ix, gridStartY+iy) } } func loadCharacters(game *Game) { // generate player character game.player = c.NewCharacter() game.player.SetPose(float32(rand.Intn(screenWidth)), float32(rand.Intn(screenHeight))) // generate enemies for i := 0; i < enemyCount; i++ { //create new enemy, slip 'em in game.enemies = append(game.enemies, c.NewCharacter()) //set random position based on screen dimensions game.enemies[i].SetPose(float32(rand.Intn(screenWidth)), float32(rand.Intn(screenHeight))) //distinguish them from the player character game.enemies[i].Color = color.RGBA{0xFF, 0x00, 0x00, 0xFF} } }