func (p *Player) Draw(game *Game) { if p.Exiled() { return } var t *texture.Data if p.Id() == 1 { t = texture.LoadFromPath(filepath.Join(base.GetDataDir(), "ships/ship.png")) } else if p.Id() == 2 { t = texture.LoadFromPath(filepath.Join(base.GetDataDir(), "ships/ship3.png")) } else { t = texture.LoadFromPath(filepath.Join(base.GetDataDir(), "ships/ship2.png")) } t.RenderAdvanced(p.X-float64(t.Dx())/2, p.Y-float64(t.Dy())/2, float64(t.Dx()), float64(t.Dy()), p.Angle, false) for _, proc := range p.Processes { proc.Draw(p.Id(), game) } }
func (p *PlayerEnt) Draw(game *Game, side int) { var t *texture.Data var alpha gl.Ubyte if side == p.Side() { alpha = gl.Ubyte(255.0 * (1.0 - p.Stats().Cloaking()/2)) } else { alpha = gl.Ubyte(255.0 * (1.0 - p.Stats().Cloaking())) } gl.Color4ub(255, 255, 255, alpha) // if p.Id() == 1 { t = texture.LoadFromPath(filepath.Join(base.GetDataDir(), "ships/ship.png")) // } else if p.Id() == 2 { // t = texture.LoadFromPath(filepath.Join(base.GetDataDir(), "ships/ship3.png")) // } else { // t = texture.LoadFromPath(filepath.Join(base.GetDataDir(), "ships/ship2.png")) // } t.RenderAdvanced( p.Position.X-float64(t.Dx())/2, p.Position.Y-float64(t.Dy())/2, float64(t.Dx()), float64(t.Dy()), p.Angle, false) for _, proc := range p.Processes { proc.Draw(p.Id(), game, side) } base.EnableShader("status_bar") base.SetUniformF("status_bar", "inner", 0.08) base.SetUniformF("status_bar", "outer", 0.09) base.SetUniformF("status_bar", "buffer", 0.01) base.SetUniformF("status_bar", "frac", 1.0) gl.Color4ub(125, 125, 125, alpha/2) texture.Render(p.Position.X-100, p.Position.Y-100, 200, 200) health_frac := float32(p.Stats().HealthCur() / p.Stats().HealthMax()) if health_frac > 0.5 { color_frac := 1.0 - (health_frac-0.5)*2.0 gl.Color4ub(gl.Ubyte(255.0*color_frac), 255, 0, alpha) } else { color_frac := health_frac * 2.0 gl.Color4ub(255, gl.Ubyte(255.0*color_frac), 0, alpha) } base.SetUniformF("status_bar", "frac", health_frac) texture.Render(p.Position.X-100, p.Position.Y-100, 200, 200) base.EnableShader("") }