public override void OnUpdate(double dt, BaseControllers controllers) { base.OnUpdate(dt, controllers); var followObj = controllers.GetRootScene().GetGameObject(m_followObj); if (followObj != null) { var tarTransformComp = followObj.GetComponents().GetComponent <Components.ComponentTransform>(); if (tarTransformComp != null) { var tarPos = tarTransformComp.GetPosition(); if (m_topLeftExtend != null) { tarPos.X = Math.Max(tarPos.X, m_topLeftExtend.Value.X); tarPos.Y = Math.Max(tarPos.Y, m_topLeftExtend.Value.Y); } if (m_botRightExtend != null) { tarPos.X = Math.Min(tarPos.X, m_botRightExtend.Value.X); tarPos.Y = Math.Min(tarPos.Y, m_botRightExtend.Value.Y); } var transformComp = GetComponents().GetComponent <Components.ComponentTransform>(); if (transformComp != null) { transformComp.SetPosition(tarPos); } } } }
public override void OnUpdate(double dt, BaseControllers controllers) { base.OnUpdate(dt, controllers); var transComp = GetComponents().GetComponent <ComponentTransform>(); m_visual.SetPosition(transComp.GetPosition()); m_visual.SetAngle(transComp.GetAngle()); }
public override void Tick(BaseControllers controllers, GameObject owner, double dt) { base.Tick(controllers, owner, dt); if (GetPeerType() != PeerType.PT_Remote) { return; } }
public override ReplicationData GetReplicationData(BaseControllers controllers, GameObject ownerEnt) { var transComp = ownerEnt.GetComponents().GetComponent <ComponentTransform>(); return(new CharacterReplicationData() { CharacterId = ownerEnt.GetId(), Position = MathHelpers.SytemVecToOpenTkVec(transComp.GetPosition()), Angle = transComp.GetAngle() }); }
public override void OnUpdate(double dt, BaseControllers controllers) { var clientControllers = controllers as ClientControllers; Vector2 dir = new Vector2(); var transform = GetComponents().GetComponent <ComponentTransform>(); if (!GetComponents().HasComponent <ComponentAiSystem>()) { if (clientControllers.GetkeyboardState().IsKeyDown(Key.A)) { dir.X = -1; } if (clientControllers.GetkeyboardState().IsKeyDown(Key.D)) { dir.X = 1; } if (clientControllers.GetkeyboardState().IsKeyDown(Key.W)) { dir.Y = 1; } if (clientControllers.GetkeyboardState().IsKeyDown(Key.S)) { dir.Y = -1; } if (dir.LengthSquared() > 0) { dir = Vector2.Normalize(dir); if (transform != null) { transform.SetPosition(transform.GetPosition() + dir * m_movementSpeed * (float)dt); } } if (transform != null) { var mousePos = clientControllers.GetMousePosInScreenSpace(); var lookDir = mousePos - transform.GetPosition(); lookDir = Vector2.Normalize(lookDir); var ang = (float)Math.Acos(Vector2.Dot(lookDir, new Vector2(1.0f, 0))); if (Vector2.Dot(lookDir, new Vector2(0, 1)) < 0) { ang = -ang; } transform.SetAngle(ang); } } if (i_isDirty(transform)) { var replicator = GetComponents().GetComponent <ComponentReplicator>(); clientControllers.GetNetClient().SendRPC(new Networking.ClientServer.NetPackets.CharacterUpdateClientPacket() { replicationData = replicator.GetReplicationData(controllers, this) }, ShootyShootyBangBangEngine.Network.NetWrapOrdering.Unreliable); m_lastAngle = transform.GetAngle(); m_lastPos = transform.GetPosition(); } base.OnUpdate(dt, controllers); }
public virtual void OnUpdate(double dt, BaseControllers controllers) { foreach (var gameObjectKv in m_gameObjects) { gameObjectKv.Value.OnUpdate(dt, controllers); } foreach (var kv in m_addQueue) { m_gameObjects[kv.Value.GetId()] = kv.Value; } }
public override void OnReplicate(BaseControllers controllers, GameObject ownerEnt, ComponentReplicator.ReplicationData replicationData) { if (GetPeerType() == PeerType.PT_Local) { return; } var characterReplicationData = replicationData as CharacterReplicationData; var transComp = ownerEnt.GetComponents().GetComponent <ComponentTransform>(); transComp.SetPosition(MathHelpers.OpenTkVecToSystemVec(characterReplicationData.Position)); transComp.SetAngle(characterReplicationData.Angle); }
public virtual void OnUpdate(double dt, BaseControllers controllers) { m_components.Update(controllers, this, dt); }
public Game(BaseControllers controllers) { m_controllers = controllers; }