func NewAudioListener() *AudioListener { if Listener == nil { Listener = new(openal.Listener) Listener.SetOrientation(0, 0, -1, 0, 1, 0) } return &AudioListener{engine.NewComponent(), Listener} }
func NewShipController() *ShipController { misslesDirection := [][]engine.Vector{{{0, 1, 0}, {0, 1, 0}}, {{-0.2, 1, 0}, {0.2, 1, 0}, {0, 1, 0}}, {{-0.2, 1, 0}, {0.2, 1, 0}, {0, 1, 0}, {-0.2, 1, 0}, {0.2, 1, 0}}} misslePositions := []engine.Vector{{-28, 10, 0}, {28, 10, 0}, {0, 20, 0}, {-28, 40, 0}, {28, 40, 0}} return &ShipController{engine.NewComponent(), 500000, 250, nil, misslePositions, misslesDirection, 0, len(misslesDirection) - 1, time.Now(), nil, nil, true, nil, nil, nil, []engine.Vector{{-0.1, -0.51, 0}, {0.1, -0.51, 0}}, nil} }
func NewAudioSource(clip AudioClip) *AudioSource { as := &AudioSource{engine.NewComponent(), openal.NewSource(), false, InverseDistanceClamped, nil, nil, nil, true, false, 0} if clip != nil { c, e := clip.Clone() if e != nil { panic(e) } as.Clip = c } as.source.SetMinGain(0) as.source.SetMaxGain(1) if clip.AudioFormat() == Mono16 || clip.AudioFormat() == Mono8 { as.Set2D() } return as }
func NewUIText(font *engine.Font, text string) *UIText { if font == nil { return nil } uitext := &UIText{BaseComponent: engine.NewComponent(), Font: font, text: text, buffer: engine.GenBuffer(), align: engine.AlignCenter, writeable: false, tabSize: 4, Color: engine.Color_White} uitext.setString(text) input.AddCharCallback(func(rn rune) { uitext.charCallback(rn) }) return uitext }
func Connect(name string, errChan *chan error) { *errChan = make(chan error) /* addr, err := net.ResolveTCPAddr("tcp", ServerIP) if err != nil { *errChan <- err return } */ //con, err := net.DialTCP("tcp", nil, addr) con, err := net.DialTimeout("tcp", ServerIP, time.Second*4) if err != nil { con, err = net.DialTimeout("tcp", ServerLocalIP, time.Second*4) if err != nil { *errChan <- fmt.Errorf("Game Server is down :(.") return } } tcpCon := con.(*net.TCPConn) MyClient = &Client{BaseComponent: engine.NewComponent(), Socket: tcpCon, Name: name, Encoder: gob.NewEncoder(tcpCon), Decoder: gob.NewDecoder(tcpCon), Jobs: make(chan func(), 1000), GameJobs: make(chan func(), 1000)} go MyClient.Run() LoginErrChan = *errChan }
func NewMouseDebugger() *MouseDebugger { return &MouseDebugger{engine.NewComponent()} }
func NewDamageDealer(dmg float32) *DamageDealer { return &DamageDealer{BaseComponent: engine.NewComponent(), Damage: dmg} }
func NewResizeScript(minX, mediumX, maxX, minY, mediumY, maxY float32) *ResizeScript { return &ResizeScript{BaseComponent: engine.NewComponent(), MinX: minX, MediumX: mediumX, MaxX: maxX, MinY: minY, MediumY: mediumY, MaxY: maxY, Speed: 3} }
func NewSmoothFollow(target *engine.GameObject, speed float32, maxdis float32) *SmoothFollow { return &SmoothFollow{engine.NewComponent(), target, speed, maxdis} }
func NewCameraCtl(speed float64) *CameraController { return &CameraController{engine.NewComponent(), speed} }
func NewPowerUp(typ Power) *PowerUp { return &PowerUp{BaseComponent: engine.NewComponent(), Type: typ} }
func NewUIButton(ClickCallback func(), HoverCallback func(bool)) *UIButton { return &UIButton{engine.NewComponent(), ClickCallback, HoverCallback, false} }
func newTweens(t *Tween) *Tweens { ts := &Tweens{engine.NewComponent(), make([]*Tween, 0, 2)} ts.AddTween(t) return ts }
func NewPlayerController() *PlayerController { return &PlayerController{engine.NewComponent(), 10, 20000, nil, -1, nil, nil, make([]*engine.GameObject, 0)} }
func NewDestoyable(hp float32, team int) *Destoyable { return &Destoyable{BaseComponent: engine.NewComponent(), FullHP: hp, Alive: true, HP: hp, Team: team} }
func NewPlayer() *Player { return &Player{BaseComponent: engine.NewComponent()} }
func NewController() *Controller { return &Controller{engine.NewComponent(), 100} }
func NewCollider() *Collider { return &Collider{engine.NewComponent(), nil} }
func NewMissle(speed float32) *Missle { return &Missle{BaseComponent: engine.NewComponent(), Speed: speed} }
func NewRotator() *Rotator { return &Rotator{engine.NewComponent()} }
func NewMap(tex *engine.Texture, uv engine.AnimatedUV) *Map { return &Map{BaseComponent: engine.NewComponent(), Sprite: engine.NewSprite3(tex, uv)} }
func NewPlayerController(player *Player) *PlayerController { return &PlayerController{engine.NewComponent(), player, nil, nil, 200} }
func NewEnemeyAI(target *engine.GameObject, typ EnemeyType) *EnemeyAI { return &EnemeyAI{BaseComponent: engine.NewComponent(), Target: target, Type: typ} }
func NewBackground(sprite *engine.Sprite) *Background { return &Background{BaseComponent: engine.NewComponent(), sprite: sprite} }