Daily update on 20221027 by Nitload Youmu
This commit is contained in:
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,5 @@
|
||||
using StgSharp;
|
||||
using StgSharp.Geometry;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
@@ -12,7 +13,7 @@ namespace Debug
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
|
||||
Console.WriteLine(typeof(PointOnLine).BaseType.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -10,7 +10,7 @@ namespace StgSharp.Control
|
||||
{
|
||||
public class Bind
|
||||
{
|
||||
public void Simple(Point p, GeometryI g)
|
||||
public void Simple(IPoint p, IGeometry g)
|
||||
{
|
||||
if (g!=null)
|
||||
{
|
||||
@@ -23,11 +23,11 @@ namespace StgSharp.Control
|
||||
/// </summary>
|
||||
/// <param name="p">绑定的点</param>
|
||||
/// <param name="c">被限定的圆</param>
|
||||
public void Complex(Point p, Circle c)
|
||||
public void Complex(IPoint p, Circle c)
|
||||
{
|
||||
c._bindPoint = p;
|
||||
}
|
||||
public void Complex(Point p, Line l)
|
||||
public void Complex(IPoint p, Line l)
|
||||
{
|
||||
l.EndingPoint = p;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using StgSharp.Geometry;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -8,6 +9,9 @@ namespace StgSharp.Control
|
||||
{
|
||||
public class Create
|
||||
{
|
||||
public void Geometry(IPoint center, float radius, float angle, int num)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
using StgSharp.Logic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.ExceptionServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Control
|
||||
{
|
||||
public abstract class Pool
|
||||
{
|
||||
private LinkedList _pool01;
|
||||
private LinkedList _pool02;
|
||||
private LinkedList _pool03;
|
||||
private LinkedList _pool04;
|
||||
|
||||
|
||||
public Pool()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Creat()
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using StgSharp.Logic;
|
||||
using StgSharp.Geometry;
|
||||
using StgSharp.Logic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -7,165 +8,39 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Entity
|
||||
{
|
||||
internal unsafe class Bullet : LinkedObject
|
||||
public class Bullet : LinkedObject
|
||||
{
|
||||
private IPoint _location;
|
||||
|
||||
//子弹的缩放比例
|
||||
private float _size;
|
||||
|
||||
public float Size
|
||||
public IPoint Location
|
||||
{
|
||||
get { return _size; }
|
||||
set
|
||||
{
|
||||
if (value > 0)
|
||||
{
|
||||
_size = value;
|
||||
this.Radius = DefualtRadius * Size;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("Size cannot be smaller than zero!");
|
||||
}
|
||||
}
|
||||
get { return _location; }
|
||||
set { _location = value; }
|
||||
}
|
||||
|
||||
//该种类子弹的默认大小
|
||||
private static float _defualtRadius;
|
||||
private float _x;
|
||||
private float _y;
|
||||
|
||||
public static float DefualtRadius
|
||||
{
|
||||
get { return _defualtRadius; }
|
||||
set { _defualtRadius = value; }
|
||||
}
|
||||
|
||||
//子弹的实际判定半径
|
||||
private float _radius;
|
||||
|
||||
public float Radius
|
||||
{
|
||||
get { return _radius; }
|
||||
set { _radius = value; }
|
||||
}
|
||||
|
||||
//子弹x轴运动的函数表达
|
||||
private float[] _xVelocity;
|
||||
|
||||
public float[] XVelocity
|
||||
{
|
||||
get { return _xVelocity; }
|
||||
set
|
||||
{
|
||||
if (value.Length == 10)
|
||||
{
|
||||
_xVelocity = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("Too many or too few parameters!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//子弹y轴运动的函数表达
|
||||
private float[] _yVelocity;
|
||||
|
||||
public float[] YVelocity
|
||||
{
|
||||
get { return _yVelocity; }
|
||||
set
|
||||
{
|
||||
if (value.Length == 10)
|
||||
{
|
||||
_yVelocity = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("Too many or too few parameters!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private float* _x;
|
||||
|
||||
//xy坐标
|
||||
public float* X
|
||||
public float X
|
||||
{
|
||||
get { return _x; }
|
||||
set { _x = value; }
|
||||
}
|
||||
|
||||
private float* _y;
|
||||
|
||||
public float* Y
|
||||
public float Y
|
||||
{
|
||||
get { return _y; }
|
||||
set { _y = value; }
|
||||
}
|
||||
|
||||
private uint _beginTick;
|
||||
|
||||
public uint BeginTick
|
||||
{
|
||||
get { return _beginTick; }
|
||||
set { _beginTick = value; }
|
||||
}
|
||||
|
||||
public Bullet()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//通过传入的时间刻计算位移并更新位置坐标
|
||||
public void move(uint tick)
|
||||
public void OnRender()
|
||||
{
|
||||
float deltaTick = tick - _beginTick;
|
||||
float deltaX = 0;
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
deltaX += _xVelocity[i];
|
||||
deltaX *= deltaTick;
|
||||
}
|
||||
deltaX += _xVelocity[10];
|
||||
*_x += deltaX;
|
||||
float deltaY = 0;
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
deltaY += _yVelocity[i];
|
||||
deltaY *= deltaTick;
|
||||
}
|
||||
deltaY += _yVelocity[10];
|
||||
*_y += deltaY;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 修改自身路径,修改条件由外部逻辑判断触发
|
||||
/// </summary>
|
||||
public void ChangeVelocity(float[] XSpeed, float[] YSpeed)
|
||||
{
|
||||
if (XSpeed != null)
|
||||
{
|
||||
if (XSpeed.Length == 10)
|
||||
{
|
||||
this._xVelocity = XSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("The amount of parameters should be 10!");
|
||||
}
|
||||
}
|
||||
if (YSpeed != null)
|
||||
{
|
||||
if (YSpeed.Length == 10)
|
||||
{
|
||||
this._yVelocity = YSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("The amount of parameters should be 10!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using StgSharp.Geometry;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -24,7 +25,24 @@ namespace StgSharp.Entity
|
||||
set { _y = value; }
|
||||
}
|
||||
|
||||
private IPoint _location;
|
||||
|
||||
public IPoint Location
|
||||
{
|
||||
get { return _location; }
|
||||
set { _location = value; }
|
||||
}
|
||||
|
||||
public Enemy()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void OnRender()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@ namespace StgSharp.Entity
|
||||
{
|
||||
internal unsafe class Launcher
|
||||
{
|
||||
private Point _location;
|
||||
private IPoint _location;
|
||||
|
||||
public Point Location
|
||||
public IPoint Location
|
||||
{
|
||||
get { return _location; }
|
||||
set { _location = value; }
|
||||
@@ -26,23 +26,33 @@ namespace StgSharp.Entity
|
||||
|
||||
private float _y;
|
||||
|
||||
public float YPosition
|
||||
public float Y
|
||||
{
|
||||
get { return _y; }
|
||||
set { _y = value; }
|
||||
}
|
||||
|
||||
private Bullet _launchType;
|
||||
|
||||
public Launcher()
|
||||
public Bullet LaunchType
|
||||
{
|
||||
get { return _launchType; }
|
||||
set { _launchType = value; }
|
||||
}
|
||||
|
||||
public Launcher(Bullet launchType, IPoint loc)
|
||||
{
|
||||
_launchType = launchType;
|
||||
_location = loc;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void Launch()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Bind(Point loc)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ namespace StgSharp.Entity
|
||||
{
|
||||
if (_keyboardState.IsKeyDown(Key.Z))
|
||||
{
|
||||
|
||||
_launcherAtLow.Launch();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Game
|
||||
{
|
||||
internal class Class1
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Game
|
||||
{
|
||||
public class CoreInfo
|
||||
{
|
||||
public static readonly string _coreSignature;
|
||||
public static readonly string _coreName;
|
||||
|
||||
internal string CoreEdition
|
||||
{
|
||||
get { return _coreName; }
|
||||
}
|
||||
|
||||
internal string CoreSignature
|
||||
{
|
||||
get { return _coreSignature; }
|
||||
}
|
||||
|
||||
|
||||
public void ShowVersion()
|
||||
{
|
||||
Console.WriteLine($"StgSharp core: {_coreName}");
|
||||
Console.WriteLine($"StgSharp core signature: {_coreSignature}");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -72,7 +72,13 @@ namespace StgSharp.Geometry
|
||||
readonly private Counter<uint> tickCounter;
|
||||
readonly private uint beginTick;
|
||||
|
||||
public ComplexOperationHandler complexOperationHandler;
|
||||
|
||||
public event ComplexOperationHandler ComplexOperation
|
||||
{
|
||||
add { complexOperationHandler += value; }
|
||||
remove { complexOperationHandler -= value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建一个圆的快速方法
|
||||
|
||||
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Geometry
|
||||
{
|
||||
internal interface IGeometry
|
||||
public interface IGeometry
|
||||
{
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Geometry
|
||||
{
|
||||
internal class PointCommon : LinkedObject, IPoint
|
||||
public class PointCommon : LinkedObject, IPoint
|
||||
{
|
||||
private readonly float x0;
|
||||
private readonly float y0;
|
||||
@@ -83,12 +83,15 @@ namespace StgSharp.Geometry
|
||||
}
|
||||
|
||||
|
||||
public PointCommon(float x,float y,Counter<uint> tickCounter)
|
||||
public PointCommon(float x,float y,float angle,Counter<uint> tickCounter)
|
||||
{
|
||||
_x = x;
|
||||
x0 = x;
|
||||
_y = y;
|
||||
y0 = y;
|
||||
|
||||
angle0 = angle;
|
||||
|
||||
_tickCounter = tickCounter;
|
||||
beginTick = _tickCounter.Value;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Geometry
|
||||
{
|
||||
public unsafe class PointOnCircle :LinkedObject, IPoint
|
||||
public class PointOnCircle :LinkedObject, IPoint
|
||||
{
|
||||
private Circle _bindedItem;
|
||||
|
||||
|
||||
@@ -49,8 +49,7 @@ namespace StgSharp.Geometry
|
||||
set { _angle = value; }
|
||||
}
|
||||
|
||||
|
||||
private float rate;
|
||||
private float _rate;
|
||||
|
||||
public PointOnLine(IPoint beginPoint, IPoint endPoint, float rate, int number)
|
||||
{
|
||||
@@ -59,7 +58,7 @@ namespace StgSharp.Geometry
|
||||
|
||||
_angle = (float)(Math.Atan2(endPoint.Y - beginPoint.Y, endPoint.X - beginPoint.Y));
|
||||
|
||||
rate = rate * number;
|
||||
_rate = rate * number;
|
||||
this._y = beginPoint.Y + rate * (endPoint.Y - beginPoint.Y);
|
||||
this._x = beginPoint.X + rate * (endPoint.X - beginPoint.X);
|
||||
}
|
||||
@@ -68,8 +67,8 @@ namespace StgSharp.Geometry
|
||||
{
|
||||
_angle = (float)(Math.Atan2(_endPoint.Y - _beginPoint.Y, _endPoint.X - _beginPoint.Y));
|
||||
|
||||
this._y = _beginPoint.Y + rate * (_endPoint.Y - _beginPoint.Y);
|
||||
this._x = _beginPoint.X + rate * (_endPoint.X - _beginPoint.X);
|
||||
this._y = _beginPoint.Y + _rate * (_endPoint.Y - _beginPoint.Y);
|
||||
this._x = _beginPoint.X + _rate * (_endPoint.X - _beginPoint.X);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,11 @@ namespace StgSharp.Logic
|
||||
private float _topBorder;
|
||||
private float _bottomBorder;
|
||||
|
||||
private EntityContainer left;
|
||||
private EntityContainer right;
|
||||
private EntityContainer top;
|
||||
private EntityContainer bottom;
|
||||
|
||||
public int Limit
|
||||
{
|
||||
get { return _limit; }
|
||||
@@ -45,13 +50,33 @@ namespace StgSharp.Logic
|
||||
{
|
||||
}
|
||||
|
||||
//Move an entity from one container to another one
|
||||
public void Move(LinkedObject target, EntityContainer targetContainer)
|
||||
|
||||
public void MoveLeft(LinkedObject target)
|
||||
{
|
||||
target.Previous = target.Next;
|
||||
target.Next = target.Previous;
|
||||
targetContainer.Add(target);
|
||||
left.Add(target);
|
||||
}
|
||||
|
||||
public void MoveRight(LinkedObject target)
|
||||
{
|
||||
target.Previous = target.Next;
|
||||
target.Next = target.Previous;
|
||||
right.Add(target);
|
||||
}
|
||||
|
||||
public void MoveUp(LinkedObject target)
|
||||
{
|
||||
target.Previous = target.Next;
|
||||
target.Next = target.Previous;
|
||||
top.Add(target);
|
||||
}
|
||||
|
||||
public void Movebottom(LinkedObject target)
|
||||
{
|
||||
target.Previous = target.Next;
|
||||
target.Next = target.Previous;
|
||||
bottom.Add(target);
|
||||
}
|
||||
|
||||
//What should a container do on each rendering frame
|
||||
|
||||
@@ -7,15 +7,9 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
{
|
||||
public class GeometryContainer
|
||||
public class GeometryContainer:LinkedList,IContainer
|
||||
{
|
||||
private LinkedList _container;
|
||||
|
||||
public LinkedList Container
|
||||
{
|
||||
get { return _container; }
|
||||
set { _container = value; }
|
||||
}
|
||||
|
||||
private float _leftBorder;
|
||||
|
||||
@@ -33,20 +27,28 @@ namespace StgSharp.Logic
|
||||
set { _rightBorder = value; }
|
||||
}
|
||||
|
||||
private float _upBorder;
|
||||
private float _topBorder;
|
||||
|
||||
public float UpBorder
|
||||
public float TopBorder
|
||||
{
|
||||
get { return _upBorder; }
|
||||
set { _upBorder = value; }
|
||||
get { return _topBorder; }
|
||||
set { _topBorder = value; }
|
||||
}
|
||||
|
||||
private float _downBorder;
|
||||
private float _bottomBorder;
|
||||
|
||||
public float DownBorder
|
||||
public float BottomBorder
|
||||
{
|
||||
get { return _downBorder; }
|
||||
set { _downBorder = value; }
|
||||
get { return _bottomBorder; }
|
||||
set { _bottomBorder = value; }
|
||||
}
|
||||
|
||||
private int _limit;
|
||||
|
||||
public int Limit
|
||||
{
|
||||
get { return _limit; }
|
||||
set { _limit = value; }
|
||||
}
|
||||
|
||||
public GeometryContainer()
|
||||
@@ -54,9 +56,9 @@ namespace StgSharp.Logic
|
||||
|
||||
}
|
||||
|
||||
public void Add(LinkedObject t)
|
||||
public void OnRender()
|
||||
{
|
||||
Container.Add(t);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace StgSharp.Logic
|
||||
protected LinkedObject _heading;
|
||||
protected LinkedObject _ending;
|
||||
private LinkedObject _cache;
|
||||
private Counter<int> _amountCounter;
|
||||
private Counter<uint> _amountCounter;
|
||||
|
||||
public LinkedObject Heading
|
||||
{
|
||||
@@ -29,7 +29,7 @@ namespace StgSharp.Logic
|
||||
get { return _cache; }
|
||||
set { _cache = value; }
|
||||
}
|
||||
public Counter<int> AmountCounter
|
||||
public Counter<uint> AmountCounter
|
||||
{
|
||||
get { return _amountCounter; }
|
||||
set { _amountCounter = value; }
|
||||
@@ -38,7 +38,7 @@ namespace StgSharp.Logic
|
||||
//构造器
|
||||
public LinkedList()
|
||||
{
|
||||
this._amountCounter = new Counter<int>();
|
||||
this._amountCounter = new Counter<uint>();
|
||||
_amountCounter.Value = 0;
|
||||
_ending = null;
|
||||
_heading = null;
|
||||
|
||||
@@ -7,14 +7,14 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
{
|
||||
internal class PointContainer : LinkedList<IPoint>
|
||||
internal class PointContainer : LinkedList, IContainer
|
||||
{
|
||||
private Counter<int> _limit;
|
||||
private float _leftBorder;
|
||||
private float _rightBorder;
|
||||
private float _topBorder;
|
||||
private float _bottomBorder;
|
||||
private LinkedList _container;
|
||||
|
||||
private int _limit;
|
||||
|
||||
public float LeftBorder
|
||||
{
|
||||
@@ -37,30 +37,11 @@ namespace StgSharp.Logic
|
||||
set { _bottomBorder = value; }
|
||||
}
|
||||
|
||||
public LinkedList Container
|
||||
public int Limit
|
||||
{
|
||||
get { return _container; }
|
||||
set { _container = value; }
|
||||
get { return _limit; }
|
||||
set { _limit = value; }
|
||||
}
|
||||
|
||||
|
||||
public void Add(LinkedObject t)
|
||||
{
|
||||
if (true) //对target类型进行判断,应当只是实体
|
||||
{
|
||||
_container.Add(t);
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveAt(int id)
|
||||
{
|
||||
_container.Remove(id);
|
||||
}
|
||||
|
||||
public PointContainer(Counter<int> counter)
|
||||
{
|
||||
this._limit = counter;
|
||||
this.Container = new LinkedList(_limit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,10 +46,11 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Control\Bind.cs" />
|
||||
<Compile Include="Control\Pool.cs" />
|
||||
<Compile Include="Control\Create.cs" />
|
||||
<Compile Include="Entity\Enemy.cs" />
|
||||
<Compile Include="Game\Class1.cs" />
|
||||
<Compile Include="Geometry\ComplexOperationHandler.cs" />
|
||||
<Compile Include="Game\CoreInfo.cs" />
|
||||
<Compile Include="Entity\ComplexOperationHandler.cs" />
|
||||
<Compile Include="Geometry\IGeometry.cs" />
|
||||
<Compile Include="Geometry\IPoint.cs" />
|
||||
<Compile Include="Geometry\PointCommon.cs" />
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
9cd073825ba9a2a4cf5ce2e7b5c36ea49b8f1483
|
||||
ad761ca55fb448d4a1c942b7a73d038bfb5ad3dc
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user