C 遊戲《坦克大戰》 坦克

2021-10-08 05:38:17 字數 2136 閱讀 6515

這裡的各種型別,使用struct而不是enum,避免後面強制轉換。

//子彈資訊

public struct t_bulletinfo

}//坦克型別

public struct t_type

//坦克行動方向

public struct t_dir

//公共引數

public struct t_commpar

設計框架是,很糾結一點:碰撞檢測函式,應該寫在主程式類,還是寫在坦克類,作為坦克的成員函式?後來「方便」打敗其他一切,畢竟生成乙個坦克例項,也就生成對應成員函式,然後直接加到委託裡面,一次呼叫,太省事了,避免主程式乙個個輪詢。

車體:4個方向使用不同 的檢測函式

/// /// 檢測是否順通[分別4個方向]

///

/// false:阻礙;true:順通

bool cardetectup()}}

//檢測與地圖元素是否碰撞

int x1 = location.x + (t_commpar.pixmin * tankspeed) / 2 + c_map.offet;

int y1 = location.y - (t_commpar.pixmin * tankspeed) / 2 + c_map.offet;

int x2 = location.x + t_commpar.tanksizex - (t_commpar.pixmin * tankspeed) / 2 + c_map.offet;

int y2 = location.y - (t_commpar.pixmin * tankspeed) / 2 + c_map.offet;

if (x1 < 0 + c_map.offet || x1 >= t_commpar.mapsizex + c_map.offet || x2 < 0 + c_map.offet || x2 >= t_commpar.mapsizex + c_map.offet || y1 < 0 + c_map.offet || y1 >= t_commpar.mapsizey + c_map.offet || y2 < 0 + c_map.offet || y2 >= t_commpar.mapsizey + c_map.offet)

else

}

子彈:4個方向使用不同 的檢測函式

/// /// 子彈檢測

///

/// 子彈位置

/// 需要消滅的位置

/// 消滅方式(棄用)

/// 本子彈是否需要銷毀

bool bulletdetectup(point pt, ref rectangle xrt, ref byte fill)

}//檢測地圖元素

//獲取地圖元素號

byte t1 = map.mask[x1, y1];

byte t2 = map.mask[x2, y2];

if (t1 == 0 && t2 == 0) return true;

//獲取地圖元素生命值

int hp1 = map.maphps[pt.x / t_commpar.tanksizex, pt.y / t_commpar.tanksizey];

int hp2 = map.maphps[(pt.x + t_commpar.bulletsizex) / t_commpar.tanksizex, pt.y / t_commpar.tanksizey];

//獲取地圖元素型別

tlandformtype lft1 = map.tlandforms[t1];

tlandformtype lft2 = map.tlandforms[t2];

//處理不同地圖元素

坦克大戰 坦克類

坦克類 class tank public void setx int x public int gety public void sety int y y表示坦克的縱座標 int y 0 public tank int x,int y 定義坦克方向 0表示向上,1右,2下,3左 int direc...

java 坦克大戰

include include using namespace std void print int a void shellinsert int a,int n,int d 間隔d進行排序 a j x 插入 print a void shell int a,int n shell插入排序 void...

2019 04 19 坦克大戰

其實通過學期這種第三方,可以獲得的經驗是,他們都是一樣的,要學會看文件,只要你想到的 其實都有封裝好,方法,屬性之後的。利用這些都是可以實現一些簡單的功能了。快捷方便,看文件,呼叫 也可能是python的第三方庫確實比較多 1 引擎安裝 可以指定版本號 pip install pygame 版本 u...