Ejemplo n.º 1
0
 private void _timerProc()
 {
     for (; ;)
     {
         Thread.Sleep(600 / _steps);
         if (Next())
         {
             Jumping?.Invoke(this, EventArgs.Empty);
         }
         else
         {
             break;
         }
     }
 }
Ejemplo n.º 2
0
 void DetectKeys()
 {
     if (Input.GetKeyDown(KeyCode.Space))
     {
         Jump?.Invoke();
     }
     if (Input.GetKey(KeyCode.Space))
     {
         Jumping?.Invoke();
     }
     if (Input.GetKeyDown(KeyCode.Escape))
     {
         EscapeKey?.Invoke();
     }
 }
Ejemplo n.º 3
0
        private void DoWillyFall()
        {
            //          cWILLYy = cWILLYy + 4
            _y += 4;
            //  blk1 = GetBlock(cWILLYx, cWILLYy + 16)
            var block1 = GetBlock(_x, _y + 16);
            //  blk2 = GetBlock(cWILLYx + 8, cWILLYy + 16)
            var block2 = GetBlock(_x + 8, _y + 16);

            //  If blk1<>0 Or blk2<>0
            if (block1 != 0 || block2 != 0)
            {
                //      cWILLYy = (cWILLYy And 248)
                _y &= 248;

                //cWILLYm = 0
                _state = 0;
                //      If cWILLYfall>= 32
                if (_willyFall >= 32)
                {
                    //          cWILLYm = 6
                    _state = 6;
                }
                else //      Else
                {
                    //          cWILLYfall = 0
                    _willyFall = 0;
                }
                //      End If
            }
            else
            {
                //  Else
                //      cWILLYfall = cWILLYfall + 4
                _willyFall += 4;
                //  End If
            }
            //  cWILLYjs = (cWILLYjs + 1) Mod 11
            _js = (_js + 1) % 11;

            //  SoundPitch SFXjump,16384 - (cWILLYjs * 1000)
            Position = new Vector2(_x & 248, _y);

            Jumping.Invoke(this, _js);
        }
Ejemplo n.º 4
0
        private void DoWillyJump()
        {
            _jp = ((_j & 254) - 8) / 2;
            _y  = _y + _jp;

            if (_j < 8)
            {
                var block1 = GetBlock(_x, _y);
                var block2 = GetBlock(_x + 8, _y);

                if (block1 == 3 || block2 == 3)
                {
                    _state = 4;
                    _js    = 0;
                    _y     = (_y + 8) & 248;
                }
            }

            if (_j > 11)
            {
                if ((_y & 7) == 0)
                {
                    var block1 = GetBlock(_x, _y + 16);
                    var block2 = GetBlock(_x + 8, _y + 16);

                    if (block1 != 0 || block2 != 0)
                    {
                        _state = 0;
                        _j     = 0;
                        _y     = _y & 248;
                    }
                }
            }
            _j++;

            if (_j == 18)
            {
                _state = 0;
                _j     = 0;
                CheckWillyFall();
            }

            if (_j < 11)
            {
                _js++;
            }
            else
            {
                if (_j > 10)
                {
                    _js--;
                }
            }


            if (_j > 12)
            {
                _willyFall = _willyFall + _jp;
            }

            if (_state != 0)
            {
                Jumping.Invoke(this, _js);
            }
        }
Ejemplo n.º 5
0
 public void Jump()
 {
     Jumping?.Invoke();
 }