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
## 0.2_beta
* code restructuring
* added system access functions (like GetSpriteRenderer())
## 0.1_beta
* 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 get github.com/go-gl/gl/v3.1-core/gl
go get github.com/go-gl/glfw/v3.1/glfw
go get github.com/go-gl/gl/v3.2-core/gl
go get github.com/go-gl/glfw/v3.2/glfw
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.Y = sprite.Size.Y / 4
g.sprite = sprite
renderer, ok := goga.GetSystemByName("spriteRenderer").(*goga.SpriteRenderer)
if !ok {
panic("Could not find renderer")
}
renderer := goga.GetSpriteRenderer()
renderer.Add(sprite.Actor, sprite.Pos2D, sprite.Tex)
culling, ok := goga.GetSystemByName("culling2d").(*goga.Culling2D)
if !ok {
panic("Could not find culling")
}
culling := goga.GetCulling2DSystem()
culling.Add(sprite.Actor, sprite.Pos2D)
// register input listeners

View File

@@ -39,12 +39,7 @@ func (g *Game) Setup() {
sprite.KeyframeAnimation = goga.NewKeyframeAnimation(0, 7, true, 20)
// add to renderer
renderer, ok := goga.GetSystemByName("keyframeRenderer").(*goga.KeyframeRenderer)
if !ok {
panic("Could not find renderer")
}
renderer := goga.GetKeyframeRenderer()
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)
model := goga.NewModel(mesh, tex)
renderer, ok := goga.GetSystemByName("modelRenderer").(*goga.ModelRenderer)
if !ok {
panic("Could not find renderer")
}
renderer := goga.GetModelRenderer()
renderer.Prepare(model)
renderer.Add(model.Actor, model.Pos3D, model.Tex, model.Mesh)
g.model = model

View File

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

View File

@@ -45,12 +45,7 @@ func (g *Game) Setup() {
}
// setup renderer
renderer, ok := goga.GetSystemByName("textRenderer").(*goga.TextRenderer)
if !ok {
panic("Could not find renderer")
}
renderer := goga.GetTextRenderer()
renderer.Font = font
// 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
}