RotX = [cos(a),sin(a),0
-sin(a),cos(a),0
0, 0, 1]
RotY = [cos(a),0,-sin(a)
0,1,0
sin(a), 0, cos(a)]
RotZ = [1,0,0
0,cos(a),sin(a)
0,-sin(a),cos(a)]
RotX = [cos(a),sin(a),0
-sin(a),cos(a),0
0, 0, 1]
RotY = [cos(a),0,-sin(a)
0,1,0
sin(a), 0, cos(a)]
RotZ = [1,0,0
0,cos(a),sin(a)
0,-sin(a),cos(a)]
protected override void mapBindings(){}
新建一个脚本名为Demo1ContextView,用于启动contextView,该脚本继承ContextView,继承后使用系统补全命名空间,并且将该脚本挂载到场景的空游戏物体上
新建另一个脚本Demo1Context作为contextView,该脚本继承自MVCSContext,同上
在Demo1ContextView中的awake方法里创建
this.context=new Demo1Context(this);//该方法需要传入一个monobhvs,而ContextView则继承自monobhvs,所以直接用this
该方法创建时会自动启动MVCS框架
在Demo1Context中实例化框架,这是其中一种实例化方法
public Demo1Context(MonoBehaviour view):base(view){}
实例化框架后需要进行绑定,覆写父类的绑定方法
protected override void mapBindings(){}
被一个棋子攻击也是-delta*2,被两个棋子攻击,也是delta*2?
GetRelatedPos之前应该需要清空数组吧
foreach(Transform trans in transfrom)
trans是遍历transfrom所有的子物体,不包括自身
int i=5;
这里为什么不用aChessStep的x、y
JudgeIfCheckmate,这样判断的话,有可能再GetKingPosition时,jiangX,jiangY并没有变化
数组是不是还没有初始化?
AddChess的第一个参数,感觉没必要传递,悔棋类自己维护就好了
空格也包括再不是中吧
可以不管这么多,直接遍历横竖的所有格子,判断一下行走是否合法。
这样代码会简单一些
这里又用了gameManager.chessBoard
这样会不会出现不能走的棋,却显示出可以走的位置。
比如两个将之间只有一个棋子的时候,本来这个棋子是不可以走动的
关于DataUtility类中的各种getUV方法的作用解释(与图集有关):
https://blog.csdn.net/weixin_30826761/article/details/98998277
不应该是x相等吗
如果是吃子的话,需要清空格子中的棋子吧
上一节 最后的gridGO是什么
获取FromX、FromY的时候,lastChessOrGrid是格子还是棋子?如果是棋子,xIndex、yIndex应该没有值吧
1.黑将 2黑车 3.黑马 4.黑炮 5.黑士 6.黑象 7.黑卒
8.红帅 9.红车 10.红马 11.红炮 12.红仕 13.红相 14.红兵