自學(xué)wordpress廈門(mén)seo公司
我們要知道,人機(jī)的移動(dòng)和玩家的移動(dòng)方式是一樣的,所以我們可以將玩家移動(dòng)代碼以及檢測(cè)碰撞代碼移過(guò)來(lái),唯一不同的就是人機(jī)檢測(cè)到碰撞后會(huì)改變方向繼續(xù)移動(dòng)而不是停止
所以我們需要一個(gè)隨機(jī)數(shù)使人機(jī)檢測(cè)到碰撞后隨機(jī)修改方向
?Random rd = new Random();
然后將方向的meiju類型給一個(gè)int類型
?enum fangxiang
?{
? ? ?Up=1,
? ? ?Down=2,?
? ? ?Left=3,?
? ? ?Right=4//方便隨機(jī)數(shù)設(shè)置方向
?}
這樣隨機(jī)數(shù)是int類型方便強(qiáng)制類型轉(zhuǎn)換為枚舉類型
設(shè)置一個(gè)方向轉(zhuǎn)換方法
private void gaibianfangxiang()//發(fā)生碰撞改變方向
{
??
? ?fangxiang fx=(fangxiang)rd.Next(1, 5);
? ? if (fx == Fangxiang)
? ? {
? ? ? ? fx = (fangxiang)rd.Next(1, 5);//強(qiáng)制類型轉(zhuǎn)換
? ? }
? ? Fangxiang = fx;
}
在方法中首先我們定義一個(gè)新的方向變量用來(lái)存儲(chǔ)改變后的方向
? ?fangxiang fx=(fangxiang)rd.Next(1, 5);//強(qiáng)制類型轉(zhuǎn)換隨機(jī)數(shù)1到5(不包含5)
然后檢測(cè)轉(zhuǎn)換后的方向與原方向是否相等
? if (fx == Fangxiang)
? ? {
? ? ? ? fx = (fangxiang)rd.Next(1, 5);//強(qiáng)制類型轉(zhuǎn)換
? ? }
? ? Fangxiang = fx;
如果相等就再次調(diào)用隨機(jī)數(shù),反之就將人機(jī)方向轉(zhuǎn)換為轉(zhuǎn)換后的方向
將移動(dòng)固定為true