有点简陋,呵呵。
首先一个塔防游戏的主要大类肯定是塔类,怪物类以及地图类了。
塔类代码:
class Ta
{
public static List<Ta> haveta = new();
private int atk;
private int money = 0;
public byte level;
private byte level_numberof;
public string taappearance;
public void BulidTa()
{
Ta gunta = new();
Ta fireta = new();
Ta rpgta = new();
gunta.atk = 20;
rpgta.atk = 50;
fireta.atk = 15;
//定义塔的攻击力
fireta.money = 1000;
rpgta.money = 1200;
gunta.money = 500;
//定义塔的金额
gunta.taappearance = "G";
fireta.taappearance = "F";
rpgta.taappearance = "R";
//定义塔的基本属性
if (haveta.Count < 6)
{
WriteLine("请选择你要购买的塔");
WriteLine("1 机枪塔 2喷火塔 3火箭助推榴弹塔");
string a = ReadLine();
switch (a)//选择购买哪个塔
{
case "1":
if (Hero.usemoney >= gunta.money)//察看拥有的金额是否够买这座塔
{
Hero.usemoney -= gunta.money;// 减少钱数
haveta.Add(gunta);//把购买的塔加进haveta列表中
WriteLine($"购买成功,你购买了一座gunta,你还剩{Hero.usemoney}元");
}
break;
case "2":
if (Hero.usemoney >= fireta.money)
{
Hero.usemoney -= fireta.money;
haveta.Add(fireta);
WriteLine($"购买成功,你购买了一座fireta,你还剩{Hero.usemoney}元");
}
break;
case "3":
if (Hero.usemoney >= rpgta.money)
{
Hero.usemoney -= rpgta.money;
haveta.Add(rpgta);
WriteLine($"购买成功,你购买了一座rpgta,你还剩{Hero.usemoney}元");
}
break;
default://默认购买gunta
goto case "1";
}
}
else
{
WriteLine("六个位置已全部被占满");
}
}
public void Shengji()
{
WriteLine("选择你要升级的塔.1 2.3,4,5,6");
string a = ReadLine();
switch (a)
{
case "1":
if (Hero.usemoney > 2000 && haveta[0].level < 2)
{
Hero.usemoney -= 2000;
haveta[0].atk += 30;
haveta[0].level += 1;
WriteLine($"升级成功,你还剩{Hero.usemoney}元");
level_numberof++;
}
break;
case "2":
if (Hero.usemoney > 4000 && haveta[1].level < 2 && level_numberof == 1)
{
Hero.usemoney -= 4000;
haveta[1].atk += 40;
haveta[1].level += 1;
WriteLine($"升级成功,你还剩{Hero.usemoney}元");
level_numberof++;
}
break;
case "3":
if (Hero.usemoney > 5000 && haveta[2].level < 2 && level_numberof == 2)
{
Hero.usemoney -= 5000;
haveta[1].atk += 60;
haveta[1].level += 1;
WriteLine($"升级成功,你还剩{Hero.usemoney}元");
level_numberof++;
}
break;
case "4":
if (Hero.usemoney > 6000 && haveta[3].level < 2 && level_numberof == 3)
{
Hero.usemoney -= 6000;
haveta[1].atk += 80;
haveta[1].level += 1;
WriteLine($"升级成功,你还剩{Hero.usemoney}元");
level_numberof++;
}
break;
case "5":
if (Hero.usemoney > 7000 && haveta[4].level < 2 && level_numberof == 4)
{
Hero.usemoney -= 7000;
haveta[1].atk += 100;
haveta[1].level += 1;
WriteLine($"升级成功,你还剩{Hero.usemoney}元");
level_numberof++;
}
break;
case "6":
if (Hero.usemoney > 10000 && haveta[5].level < 2 && level_numberof == 5)
{
Hero.usemoney -= 10000;
haveta[1].atk += 200;
haveta[1].level += 1;
WriteLine($"升级成功,你还剩{Hero.usemoney}元");
level_numberof++;
}
break;
}
}
public void Atk()
{
switch (haveta.Count)
{
case 1:
if (Monster.brushumonster[0].x>0&& Monster.brushumonster[0].x < 30)
{
Monster.brushumonster[0].hp -= haveta[0].atk;
}
break;
case 2:
if (Monster.brushumonster[0].x > 0 && Monster.br