More code restructuring and system access functions.

This commit is contained in:
Marvin Blum
2016-08-19 00:15:27 +02:00
parent bc624295be
commit e88c163725
8 changed files with 65 additions and 44 deletions

View File

@@ -1,5 +1,10 @@
# Changelog # Changelog
## 0.2_beta
* code restructuring
* added system access functions (like GetSpriteRenderer())
## 0.1_beta ## 0.1_beta
* beta release * beta release

View File

@@ -7,8 +7,8 @@ Game engine written in Go using OpenGL and GLFW. Mostly for 2D rendering, but al
go-game requires OpenGL and GLFW. The following three steps install everything you need: go-game requires OpenGL and GLFW. The following three steps install everything you need:
``` ```
go get github.com/go-gl/gl/v3.1-core/gl go get github.com/go-gl/gl/v3.2-core/gl
go get github.com/go-gl/glfw/v3.1/glfw go get github.com/go-gl/glfw/v3.2/glfw
go get github.com/DeKugelschieber/go-game go get github.com/DeKugelschieber/go-game
``` ```

View File

@@ -33,20 +33,10 @@ func (g *Game) Setup() {
sprite.Size.X = sprite.Size.X / 4 sprite.Size.X = sprite.Size.X / 4
sprite.Size.Y = sprite.Size.Y / 4 sprite.Size.Y = sprite.Size.Y / 4
g.sprite = sprite g.sprite = sprite
renderer, ok := goga.GetSystemByName("spriteRenderer").(*goga.SpriteRenderer) renderer := goga.GetSpriteRenderer()
if !ok {
panic("Could not find renderer")
}
renderer.Add(sprite.Actor, sprite.Pos2D, sprite.Tex) renderer.Add(sprite.Actor, sprite.Pos2D, sprite.Tex)
culling, ok := goga.GetSystemByName("culling2d").(*goga.Culling2D) culling := goga.GetCulling2DSystem()
if !ok {
panic("Could not find culling")
}
culling.Add(sprite.Actor, sprite.Pos2D) culling.Add(sprite.Actor, sprite.Pos2D)
// register input listeners // register input listeners

View File

@@ -39,12 +39,7 @@ func (g *Game) Setup() {
sprite.KeyframeAnimation = goga.NewKeyframeAnimation(0, 7, true, 20) sprite.KeyframeAnimation = goga.NewKeyframeAnimation(0, 7, true, 20)
// add to renderer // add to renderer
renderer, ok := goga.GetSystemByName("keyframeRenderer").(*goga.KeyframeRenderer) renderer := goga.GetKeyframeRenderer()
if !ok {
panic("Could not find renderer")
}
renderer.Add(sprite.Actor, sprite.Pos2D, sprite.Tex, sprite.KeyframeSet, sprite.KeyframeAnimation) renderer.Add(sprite.Actor, sprite.Pos2D, sprite.Tex, sprite.KeyframeSet, sprite.KeyframeAnimation)
} }

View File

@@ -36,12 +36,7 @@ func (g *Game) Setup() {
mesh := goga.NewMesh(ply.IndexBuffer, ply.VertexBuffer, ply.TexCoordBuffer) mesh := goga.NewMesh(ply.IndexBuffer, ply.VertexBuffer, ply.TexCoordBuffer)
model := goga.NewModel(mesh, tex) model := goga.NewModel(mesh, tex)
renderer, ok := goga.GetSystemByName("modelRenderer").(*goga.ModelRenderer) renderer := goga.GetModelRenderer()
if !ok {
panic("Could not find renderer")
}
renderer.Prepare(model) renderer.Prepare(model)
renderer.Add(model.Actor, model.Pos3D, model.Tex, model.Mesh) renderer.Add(model.Actor, model.Pos3D, model.Tex, model.Mesh)
g.model = model g.model = model

View File

@@ -26,20 +26,10 @@ func (g *Game) Setup() {
} }
sprite := goga.NewSprite(tex) sprite := goga.NewSprite(tex)
renderer, ok := goga.GetSystemByName("spriteRenderer").(*goga.SpriteRenderer) renderer := goga.GetSpriteRenderer()
if !ok {
panic("Could not find renderer")
}
renderer.Add(sprite.Actor, sprite.Pos2D, sprite.Tex) renderer.Add(sprite.Actor, sprite.Pos2D, sprite.Tex)
culling, ok := goga.GetSystemByName("culling2d").(*goga.Culling2D) culling := goga.GetCulling2DSystem()
if !ok {
panic("Could not find culling")
}
culling.Add(sprite.Actor, sprite.Pos2D) culling.Add(sprite.Actor, sprite.Pos2D)
} }

View File

@@ -45,12 +45,7 @@ func (g *Game) Setup() {
} }
// setup renderer // setup renderer
renderer, ok := goga.GetSystemByName("textRenderer").(*goga.TextRenderer) renderer := goga.GetTextRenderer()
if !ok {
panic("Could not find renderer")
}
renderer.Font = font renderer.Font = font
// create and add text // create and add text

51
system_util.go Normal file
View File

@@ -0,0 +1,51 @@
package goga
func GetSpriteRenderer() *SpriteRenderer {
renderer, ok := GetSystemByName(sprite_renderer_name).(*SpriteRenderer)
if !ok {
panic("Could not obtain sprite renderer")
}
return renderer
}
func GetModelRenderer() *ModelRenderer {
renderer, ok := GetSystemByName(model_renderer_name).(*ModelRenderer)
if !ok {
panic("Could not obtain model renderer")
}
return renderer
}
func GetCulling2DSystem() *Culling2D {
system, ok := GetSystemByName(culling_2d_name).(*Culling2D)
if !ok {
panic("Could not obtain culling system")
}
return system
}
func GetKeyframeRenderer() *KeyframeRenderer {
renderer, ok := GetSystemByName(keyframe_sprite_renderer_name).(*KeyframeRenderer)
if !ok {
panic("Could not obtain keyframe renderer")
}
return renderer
}
func GetTextRenderer() *TextRenderer {
renderer, ok := GetSystemByName(text_renderer_name).(*TextRenderer)
if !ok {
panic("Could not obtain text renderer")
}
return renderer
}