protected override void OnRemove(AxiosGameObject gameObject) { base.OnRemove(gameObject); foreach (SimpleAxiosGameObject g in GameObjects) g.Remove(); }
protected virtual void OnRemove(AxiosGameObject gameObject) { RemoveObject(gameObject); }
public virtual void OnScaleChange(AxiosGameObject gameObject) { if (this.ScaleChanged != null) this.ScaleChanged(gameObject); }
public AxiosGameScreen() : base() { this._gameObjects = new List<AxiosGameObject>(); _timers = new List<AxiosTimer>(); prevobj = null; prevfocusobj = null; this._uiobjects = new List<AxiosUIObject>(); prevuiobj = null; prevuifocusobj = null; }
private void HandleMouseEvents(InputState input) { Vector2 position = this.Camera.ConvertScreenToWorld(input.Cursor); Fixture fix = this.World.TestPoint(position); AxiosGameObject gobj; if (fix != null && fix.UserData != null && fix.UserData is AxiosGameObject) { gobj = (AxiosGameObject)fix.UserData; if (gobj != null && gobj != prevobj) { gobj.OnMouseHover(this, input); if (prevobj != gobj && prevobj != null) prevobj.OnMouseLeave(this, input); } else if (gobj != null) { if (input.IsNewMouseButtonRelease(MouseButtons.LeftButton)) { if (prevobj != null) prevobj.OnFocusLeave(this, input); gobj.OnFocusEnter(this, input); gobj.OnMouseUp(this, input); prevfocusobj = gobj; //prevobj = gobj; } if (input.IsNewMouseButtonPress(MouseButtons.LeftButton)) gobj.OnMouseDown(this, input); } if (gobj != null) prevobj = gobj; } else { if (prevobj != null) prevobj.OnMouseLeave(this, input); if (input.IsNewMouseButtonPress(MouseButtons.LeftButton) && prevfocusobj != null) { prevfocusobj.OnFocusLeave(this, input); prevfocusobj = null; } prevobj = null; } Vector2 uiobjpos; //Rectangle uirect; AxiosRectangle uirect; bool foundobject = false; Vector2 mousepos = this.Camera.ConvertScreenToWorld(input.Cursor); //Vector2 objpos; //System.Diagnostics.Debugger.Break(); AxiosRectangle mousrect = new AxiosRectangle(mousepos.X, mousepos.Y, ConvertUnits.ToSimUnits(25), ConvertUnits.ToSimUnits(25)); foreach(AxiosUIObject uiobject in _uiobjects) { uiobjpos = uiobject.Position; //objpos = this.Camera.ConvertScreenToWorld(uiobjpos); uirect = new AxiosRectangle(ConvertUnits.ToSimUnits(uiobjpos.X), ConvertUnits.ToSimUnits(uiobjpos.Y), ConvertUnits.ToSimUnits(uiobject.Width), ConvertUnits.ToSimUnits(uiobject.Height)); if (uirect.Intersect(mousrect)) { if (input.IsNewMouseButtonPress(MouseButtons.LeftButton)) { uiobject.OnMouseDown(this, input); } if (input.IsNewMouseButtonRelease(MouseButtons.LeftButton)) { //System.Diagnostics.Debugger.Break(); if (prevuifocusobj != uiobject) { uiobject.OnFocusEnter(this, input); if (prevuifocusobj != null) prevuifocusobj.OnFocusLeave(this, input); prevuifocusobj = uiobject; } uiobject.OnMouseUp(this, input); } if (prevuiobj != uiobject) { //System.Diagnostics.Debugger.Break(); uiobject.OnMouseHover(this, input); if (prevuiobj != null) prevuiobj.OnMouseLeave(this, input); prevuiobj = uiobject; } foundobject = true; break; } } if (!foundobject && prevuiobj != null) { //mouse moved away from object prevuiobj.OnMouseLeave(this, input); prevuiobj = null; } if (input.IsNewMouseButtonRelease(MouseButtons.LeftButton)) { if (!foundobject && prevuifocusobj != null) { prevuifocusobj.OnFocusLeave(this, input); prevuifocusobj = null; } } }
public void RemoveGameObject(AxiosGameObject gameobject) { if (this._gameObjects.Contains(gameobject)) { try { gameobject.UnloadContent(this); this._gameObjects.Remove(gameobject); } catch (Exception) { } } else { AxiosLog.Instance.AddLine("[Axios Engine] - Adding objects too fast...remove " + gameobject.Name + " later", LoggingFlag.DEBUG); this._objectstoremove.Add(gameobject); } }
protected override void OnRemove(AxiosGameObject gameObject) { base.OnRemove(gameObject); if (BodyPart != null) BodyPart.Remove(); }