mirror of
https://github.com/Kugelschieber/go-game.git
synced 2026-01-17 22:30:28 +00:00
More code restructuring and system access functions.
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## 0.2_beta
|
||||
|
||||
* code restructuring
|
||||
* added system access functions (like GetSpriteRenderer())
|
||||
|
||||
## 0.1_beta
|
||||
|
||||
* beta release
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
51
system_util.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user