예제 #1
0
        void Update()
        {
            if (_myWorld.Started)
            {
                Vector3 heading = _myWorld.GetNextHeading(this);
                this.transform.eulerAngles = heading;
                double xForward = _myWorld.MoveSpeed * Math.Cos(heading.z * Math.PI / 180);
                double yForward = _myWorld.MoveSpeed * Math.Sin(heading.z * Math.PI / 180);
                double currY    = (double)this.transform.position.y;
                double currX    = (double)this.transform.position.x;
                double nextX    = ((currX + xForward) % _myWorld.XDim + _myWorld.XDim) % _myWorld.XDim;
                double nextY    = ((currY + yForward) % _myWorld.YDim + _myWorld.YDim) % _myWorld.YDim;
                this.transform.position = new Vector3((float)nextX, (float)nextY);

                _myWorld.reportNewLocation(this);
            }
        }
예제 #2
0
        void Update()
        {
            if (_myWorld.Started)
            {
                Vector3 heading = _myWorld.GetNextHeading(this);
                this.transform.eulerAngles = heading;
                float xForward = _myWorld.GetSettingFloat("MoveSpeed") * BaseSpeed * (float)Math.Cos(heading.z * Math.PI / 180);
                float yForward = _myWorld.GetSettingFloat("MoveSpeed") * BaseSpeed * (float)Math.Sin(heading.z * Math.PI / 180);
                float currY    = this.transform.position.y;
                float currX    = this.transform.position.x;
                float nextX    = ((currX + xForward /* + _myWorld.xWind*/) % _myWorld.GetSettingFloat("XDim") + _myWorld.GetSettingFloat("XDim")) % _myWorld.GetSettingFloat("XDim");
                float nextY    = ((currY + yForward /* + _myWorld.yWind*/) % _myWorld.GetSettingFloat("YDim") + _myWorld.GetSettingFloat("YDim")) % _myWorld.GetSettingFloat("YDim");
                this.transform.position = new Vector3(nextX, nextY);

                _myWorld.reportNewLocation(this);
            }
        }