scenes

package
v0.0.0-...-c44a210 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2022 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GameScene *manager.Scene = &manager.Scene{

	Init: func(setReady func()) {
		var err error
		levels, err = ldtk.Load(
			"sample.ldtk",
			&ldtk.Options{
				Aseprite:    true,
				EmbedFolder: Context.AssetsFolder,
				Root:        "assets/maps",
				CollidesWith: map[int]bool{
					0: true,
				},
				OnCollisionAdd: Context.CollisionWorld.AddNewBox,
			},
		)
		if err != nil {
			log.Fatal(err)
		}

		entityOptions := entities.EntityOptions{
			EmbedFolder: Context.AssetsFolder,
			Root:        "assets/images",
			World:       Context.CollisionWorld,
		}

		keys := map[string][]ebiten.Key{
			"up":    {ebiten.KeyArrowUp, ebiten.KeyW},
			"down":  {ebiten.KeyArrowDown, ebiten.KeyS},
			"right": {ebiten.KeyArrowRight, ebiten.KeyD},
			"left":  {ebiten.KeyArrowLeft, ebiten.KeyA},
		}
		input.Init(keys)

		player = new(entities.Player)
		player.Init(levels, &entityOptions)

		setReady()
	},

	Update: func(setReady func()) error {
		player.Update()
		Context.Camera.Follow.W, Context.Camera.Follow.H = player.Sprite.CurrentFrame.Image.Size()
		Context.Camera.X, Context.Camera.Y = player.X, player.Y

		signals.Connect("collided", func(i []interface{}) {
			message = ""
			for _, part := range i {
				message += part.(string) + " "
			}
		})

		setReady()

		return nil
	},

	Draw: func(screen *ebiten.Image) {
		Context.World.Fill(color.RGBA{R: 10, G: 10, B: 30, A: 255})
		levels.Draw(Context.World)
		player.Draw(Context.World)
		if message != "" {
			ebitenutil.DebugPrint(Context.World, message)
		}
		Context.Camera.Draw(Context.World, screen)
	},
}
View Source
var MenuScene *manager.Scene = &manager.Scene{

	Init: func(setReady func()) {
		setReady()
	},

	Update: func(setReady func()) error {
		if inpututil.IsKeyJustPressed(ebiten.KeyEnter) {
			Context.Manager.SwitchTo("game")
		}

		setReady()
		return nil
	},

	Draw: func(screen *ebiten.Image) {
		ebitenutil.DebugPrint(screen, "Press ENTER to move to the game")
	},
}

Functions

This section is empty.

Types

type ContextType

type ContextType struct {
	Camera         *camera.Camera
	World          *ebiten.Image
	CollisionWorld *collisions.World
	AssetsFolder   *embed.FS
	Manager        *manager.Manager
}
var Context *ContextType

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL