mirror of
https://github.com/Kugelschieber/go-game.git
synced 2026-01-18 06:40:28 +00:00
More code restructuring and system access functions.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
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