Exemple #1
0
    private void Move()
    {
        _currentDirectionTimeVal += Time.fixedDeltaTime;
        if (_currentDirectionTimeVal >= _changeDirectionTime)
        {
            int direction = Random.Range(0, 4);
            if (direction == 0)
            {
                _direction         = Const.Direction.TOP;
                transform.rotation = Quaternion.Euler(0, 0, 0);
            }
            else if (direction == 1)
            {
                _direction         = Const.Direction.RIGHT;
                transform.rotation = Quaternion.Euler(0, 0, -90);
            }
            else if (direction == 2)
            {
                _direction         = Const.Direction.DOWN;
                transform.rotation = Quaternion.Euler(0, 0, 180);
            }
            else if (direction == 3)
            {
                _direction         = Const.Direction.LEFT;
                transform.rotation = Quaternion.Euler(0, 0, 90);
            }
            _currentDirectionTimeVal = 0.0f;
        }

        transform.Translate(transform.up * moveSpeed * Time.fixedDeltaTime, Space.World);
    }
    private void Update()
    {
        foreach (KeyCode key in keyDirDictionary.Keys)
        {
            if (Input.GetKeyDown(key) && isMove)
            {
                Const.Direction direction = keyDirDictionary[key];
                Position        position  = prevStageObjs.GetComponent <Position>();
                GameObject      pathObj   = position.dirPathObjs[direction];
                if (!pathObj)
                {
                    return;
                }
                Path path = pathObj.GetComponent <Path>();
                if (!path)
                {
                    return;
                }

                isMove = false;
                transform.DOPath(path.GetPath(prevStageObjs.transform), 0.8f, PathType.CatmullRom)
                .SetEase(Ease.Linear).OnComplete(() => isMove = true);
                prevStageObjs = path.GetEndPosition(prevStageObjs.transform);
            }
        }
    }
Exemple #3
0
        public WisePin(string name,
                       WiseBoard brd,
                       DigitalPortType port,
                       int bit,
                       DigitalPortDirection dir,
                       bool inverse = false,
                       Const.Direction direction = Const.Direction.None,
                       bool controlled           = false)
        {
            this.WiseName = name +
                            "@Board" +
                            (brd.type == WiseBoard.BoardType.Hard ? brd.mccBoard.BoardNum : brd.boardNum) +
                            port.ToString() +
                            "[" + bit.ToString() + "]";

            if ((daq = brd.daqs.Find(x => x.porttype == port)) == null)
            {
                throw new WiseException(this.WiseName + ": Invalid Daq spec, no " + port + " on this board");
            }
            this.dir         = dir;
            this.bit         = bit;
            this.inverse     = inverse;
            this._direction  = direction;
            this._controlled = controlled;
            daq.setDir(dir);
            if (daq.owners != null && daq.owners[bit].owner == null)
            {
                daq.setOwner(name, bit);
            }
        }
Exemple #4
0
 public void startMoving(Const.Direction dir)
 {
     if (!Simulated)
     {
         return;
     }
     _simulatedDirection = dir;
     _simulationTimer.Change(10, 10);
 }
Exemple #5
0
 public void SetDirection(Const.Direction newDirection)
 {
     _direction = newDirection;
     if (_direction == Const.Direction.TOP)
     {
         this.spriteRender.sprite = this.bulletSprites[0];
     }
     else if (_direction == Const.Direction.RIGHT)
     {
         this.spriteRender.sprite = this.bulletSprites[1];
     }
     else if (_direction == Const.Direction.DOWN)
     {
         this.spriteRender.sprite = this.bulletSprites[2];
     }
     else if (_direction == Const.Direction.LEFT)
     {
         this.spriteRender.sprite = this.bulletSprites[3];
     }
 }
Exemple #6
0
 public void RotateScene(Const.Direction dir)
 {
     _resetingRotation = false;
     _rotationSpeed    = (dir == Const.Direction.Right ? 1 : -1) * rotationSpeed;
 }
Exemple #7
0
    private void Move()
    {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");

        //第一种方式
        //transform.Translate(new Vector3(h * Time.deltaTime * moveSpeedX, v * Time.deltaTime * moveSpeedY, 0));

        //第二种方式
        //transform.Translate(h * Time.deltaTime * moveSpeedX, v * Time.deltaTime * moveSpeedY, 0);

        //第三种方式
        //transform.Translate(h * Vector3.right * moveSpeedX * Time.deltaTime, Space.Self);
        //transform.Translate(v * Vector3.up * moveSpeedY * Time.deltaTime, Space.Self);

        //上面三种方式都是以自身为坐标系移动,当物体自身有旋转时,沿着自己局部坐标系下的xy轴运动//

        //第四种方式  当自己有旋转的时候,和上面三种方式就有很明显的区别.
        //transform.Translate(h * Vector3.right * moveSpeedX * Time.deltaTime, Space.World);
        //transform.Translate(v * Vector3.up * moveSpeedY * Time.deltaTime, Space.World);

        if (h != 0 || v != 0)
        {
            if (h >= 0.05f || v >= 0.05f)
            {
                audioSource.clip = moveAudioClip;
            }
            else
            {
                audioSource.clip = ildeAudioClip;
            }
            if (!audioSource.isPlaying)
            {
                audioSource.Play();
            }
        }

        if (h != 0)
        {
            transform.Translate(h * Vector3.right * moveSpeed * Time.fixedDeltaTime, Space.World);
            if (h > 0)
            {
                spriteRender.sprite = this.tankSprites[1];
                _direction          = Const.Direction.RIGHT;
            }
            else
            {
                spriteRender.sprite = tankSprites[3];
                _direction          = Const.Direction.LEFT;
            }
        }
        else if (v != 0)
        {
            transform.Translate(v * Vector3.up * moveSpeed * Time.fixedDeltaTime, Space.World);
            if (v > 0)
            {
                spriteRender.sprite = tankSprites[0];
                _direction          = Const.Direction.TOP;
            }
            else
            {
                spriteRender.sprite = tankSprites[2];
                _direction          = Const.Direction.DOWN;
            }
        }
    }