mirror of
				https://github.com/yeslayla/golang-game-framework.git
				synced 2025-11-04 08:43:06 +01:00 
			
		
		
		
	Simple keyboard input & pause system
This commit is contained in:
		
							
								
								
									
										28
									
								
								game/game.go
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								game/game.go
									
									
									
									
									
								
							@ -3,15 +3,17 @@ package game
 | 
			
		||||
import (
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	"github.com/manleydev/golang-game-framework/input"
 | 
			
		||||
	"github.com/manleydev/golang-game-framework/node"
 | 
			
		||||
	"github.com/manleydev/golang-game-framework/rendering"
 | 
			
		||||
	"github.com/manleydev/golang-game-framework/sdl"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func Run(root *node.Node, renderer rendering.Renderer2D) {
 | 
			
		||||
func Run(root *node.Node, renderer rendering.Renderer2D, inputHandler input.InputHandler) {
 | 
			
		||||
	texture := sdl.NewSdlTexture2D(renderer, "gopher.bmp")
 | 
			
		||||
 | 
			
		||||
	g := node.NewSprite2D(texture)
 | 
			
		||||
	g.Name = "Gopher"
 | 
			
		||||
	defer root.AddChild(g)
 | 
			
		||||
 | 
			
		||||
	g.OnReady(func() error {
 | 
			
		||||
@ -19,12 +21,32 @@ func Run(root *node.Node, renderer rendering.Renderer2D) {
 | 
			
		||||
		return nil
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	speed := 0.01
 | 
			
		||||
	g.OnUpdate(func() error {
 | 
			
		||||
		g.Rotation += 0.01
 | 
			
		||||
 | 
			
		||||
		if inputHandler.IsKeyJustPressed(sdl.SCANCODE_SPACE) {
 | 
			
		||||
			speed = -speed
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		g.Rotation += speed
 | 
			
		||||
		return nil
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	g.Name = "Gopher"
 | 
			
		||||
	controller := node.NewNode()
 | 
			
		||||
	controller.Name = "Controller"
 | 
			
		||||
	defer root.AddChild(&controller)
 | 
			
		||||
 | 
			
		||||
	controller.OnUpdate(func() error {
 | 
			
		||||
		if inputHandler.IsKeyJustPressed(sdl.SCANCODE_ESCAPE) {
 | 
			
		||||
			if g.IsProcessing() {
 | 
			
		||||
				g.SetProcessMode(node.PausedProcessMode)
 | 
			
		||||
			} else {
 | 
			
		||||
				g.SetProcessMode(node.DefaultProcessMode)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return nil
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	camera := node.NewCamera2D(&renderer, rendering.NewStandardCamera())
 | 
			
		||||
	defer root.AddChild(camera)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user