using OpenTK; using OpenTK.Input; using StgSharp_Entity; using StgSharp_Logic; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace StgSharp_Entity { internal class Player:LinkedTarget { private uint gameTick; private uint beginTick; private readonly float _velocityHigh; private readonly float _vHighCorner; public float VelocityHigh { get { return _velocityHigh; } } private readonly float _velocityLow; private readonly float _vLowCorner; public float VelocityLow { get { return _velocityLow; } } private float _xLocation; public float XLocation { get { return _xLocation; } set { _xLocation = value; } } public float _yLocation; public float YLocation { get { return _yLocation; } set { _yLocation = value; } } private KeyboardState _keyboardState; public KeyboardState KeyboardState { get { return _keyboardState; } set { _keyboardState = value; } } public Player(float velocityHigh,float velocityLow,KeyboardState keyboardState) { this._velocityHigh = velocityHigh; this._vHighCorner = velocityHigh / 1.4142136f; this._velocityLow = velocityLow; this._vLowCorner = velocityLow / 1.4142136f; this._keyboardState = keyboardState; } public void Action() { if (_keyboardState.IsAnyKeyDown) { Move(); } } /// /// 自机移动的简单方法 /// public void Move() { if (_keyboardState.IsKeyDown(Key.ShiftLeft)) { if (_keyboardState.IsKeyDown(Key.Up)) { if (_keyboardState.IsKeyDown(Key.Left)) { this._yLocation += _vLowCorner; this._xLocation -= _vLowCorner; } else if (_keyboardState.IsKeyDown(Key.Right)) { this._yLocation += _vLowCorner; this._xLocation += _vLowCorner; } else { this._yLocation += _velocityLow; } } else if (_keyboardState.IsKeyDown(Key.Down)) { if (_keyboardState.IsKeyDown(Key.Left)) { this._yLocation -= _vLowCorner; this._xLocation -= _vLowCorner; } else if (_keyboardState.IsKeyDown(Key.Right)) { this._yLocation -= _vLowCorner; this._xLocation += _vLowCorner; } else { this._yLocation -= _velocityLow; } } } else { if (_keyboardState.IsKeyDown(Key.Up)) { if (_keyboardState.IsKeyDown(Key.Left)) { this._yLocation += _vHighCorner; this._xLocation -= _vHighCorner; } else if (_keyboardState.IsKeyDown(Key.Right)) { this._yLocation += _vHighCorner; this._xLocation += _vHighCorner; } else { this._yLocation += _velocityHigh; } } else if (_keyboardState.IsKeyDown(Key.Down)) { if (_keyboardState.IsKeyDown(Key.Left)) { this._yLocation -= _vHighCorner; this._xLocation -= _vHighCorner; } else if (_keyboardState.IsKeyDown(Key.Right)) { this._yLocation -= _vHighCorner; this._xLocation += _vHighCorner; } else { this._yLocation -= _velocityHigh; } } } } public void UseSkill(KeyboardState key) { if (key.IsKeyDown(Key.X)) { } } public void LaunchBullet(KeyboardState key) { } public void Die() { } } }