简介
闲来无事写的一个C#控制台应用程序,本RPG游戏有多种角色属性供你选择,拥有技能,商店,丰富的战斗系统和升级功能。学习C#的朋友可以看一看,对面向对象很有帮助。使用了封装 继承和多态思想。
项目实例截图
部分项目源码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace RPG_Fairyland_MiracleTour
{
/// <summary>
/// 职业枚举变量 用于判断选择的职业
/// </summary>
enum Enum_GameRoles
{
Enum_Warrior,
Enum_Wizard
}
class Program
{
//生成一个玩家角色
public static PlayerRoles _PlayerRoles = new PlayerRoles();
//生成一个战士类变量
public static PlayerRoles _RolesWarrior = new PlayerRoles();
//生成一个法师类变量
public static PlayerRoles _RolesWizard = new PlayerRoles();
//生成一个玩家背包
public static GamePackage _PlayerPackage = new GamePackage();
//生成一个武器商店
public static WeaponStore _WeaponStore = new WeaponStore();
//生成一个技能
public static Skill _Skill = new Skill();
//声明一个用于保存玩家选择角色的枚举
public static Enum_GameRoles Enum_GamePlayerRoles;
//判断角色是否选择了使用技能的变量
public static bool Bskill;
//玩家的角色等级变量,用于判断是否解锁新场景
static int PGrade = 1;
//武士的Hp临时变量,用于在战斗前保存Hp,并在战斗后恢复
public static int HPTemp = 1000;
//法师的Hp临时变量,用于在战斗前保存Hp,并在战斗后恢复
public static int HPTempWizard = 800;
static void Main(string[] args)
{
Start();
Console.ReadKey();
}
/// <summary>
/// 开始游戏函数
/// </summary>
static void Start()
{
//更改控制台 抬头
Console.Title = "RPG-奇迹之城";
Console.WriteLine("\n\t**************欢迎进入游戏**************");
Thread.Sleep(1000);
Console.WriteLine("\n 是否开始游戏? Y.我已准备好了 N.我再想想看");
//判断玩家的按键,是否退出
ConsoleKeyInfo Downkey = Console.ReadKey(true);
//玩家如果选择了退出游戏,就返回这个函数,退出游戏
if (Downkey.Key.Equals(ConsoleKey.N))
{
Thread.Sleep(500);
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\t**************下次再见,谢谢(^_^)************");
return;
}
//玩家如果选择了继续游戏,调用加载延时函数,出现一个load加载画面
Load();
//等待延时,制作游戏加载的假象
Thread.Sleep(1000);
//提示玩家输入一个角色的姓名
Console.WriteLine("\n\n\t**************请输入角色姓名**************");
Console.Write("\n\t**************角色姓名为:");
//获取玩家输入的角色姓名,并且更改玩家角色类中的玩家角色姓名
_PlayerRoles.Name = Console.ReadLine();
//用于判断用户选择的职业,如果选择错误,将不退出这个死循环
while (true)
{
//等待延时,制作游戏加载的假象
Thread.Sleep(1000);
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("\n\t请选择职业:1.战士\t2.法师");
//判断玩家的按键,获得玩家选择职业
ConsoleKeyInfo Downkey1 = Console.ReadKey(true);
//如果选择1,生成战士
if (Downkey1.Key.Equals(ConsoleKey.D1)|| Downkey1.Key.Equals(ConsoleKey.NumPad1))
{
//进入战士函数,生成一个战士
GameWarrior();
break;
}
//如果选择2,生成法师
else if (Downkey1.Key.Equals(ConsoleKey.D2) || Downkey1.Key.Equals(ConsoleKey.NumPad2))
{
//进入法师函数,生成一个法师
GameWizard();
break;
}
//选择其他,提示输入错误,重新输入,直到输入正确退出这个死循环
else
{
Console.ForegroundColor = ConsoleColor.Red;
Thread.Sleep(500);
Console.WriteLine("\n\t很抱歉,您输入的有误,当前职业不存在");
}
}
}
/// <summary>
/// 游戏背景函数
/// </summary>
static void GameBackground()
{
Console.WriteLine("\n\t**************游戏马上开始**************");
//调用加载延时函数,出现一个load加载画面
Load();
//游戏背景对话
Thread.Sleep(1000);
Console.Write("\n\n\n\t\t好黑!!!");
Thread.Sleep(400);
Console.WriteLine("我这是在哪?∑(°Д°)");
Thread.Sleep(1000);
Console.WriteLine("\n\t\t嗷呜~~~嗷呜~~~");
Thread.Sleep(1000);
Console.WriteLine("\n\t\t啊!!!狼!!!!!!!!!");
Thread.Sleep(1000);
Console.WriteLine("\n\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
Console.ReadKey();
Thread.Sleep(1000);
Console.WriteLine("\n\n\n\t\t迷迷糊糊睁开眼······");
Thread.Sleep(1000);
Console.WriteLine("\n\t\t你醒了?");
Thread.Sleep(1000);
Console.WriteLine("\n\t\t我怎么了?我这是在哪???");
Thread.Sleep(1000);
Console.WriteLine("\n\t\t别害怕,这是我家,我在城外的森林里发现的你的时候你已经晕倒了。");
Thread.Sleep(1000);
Console.WriteLine("\n\t\t我怎么什么都不记得了???");
Thread.Sleep(1000);
Console.WriteLine("\n\n\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
Console.ReadKey();
Thread.Sleep(1000);
Console.WriteLine("\n\n\t\t* * * * * * * * * 一年之后* * * * * * * * *");
Thread.Sleep(500);
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\t\t* * * * * * * 解锁新场景小村村 * * * * * * * ");
Console.ForegroundColor = ConsoleColor.White;
//调用选择判断函数,引导玩家进行选择判断
GameChoice();
}
/// <summary>
/// 生成一个玩家 角色是战士
/// </summary>
static void GameWarrior()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\t**************选择成功,您选择的职业是战士");
Console.ForegroundColor = ConsoleColor.White;
//战士的血量
_RolesWarrior.Hp = 1000;
//战士的攻击力
_RolesWarrior.Attack =63;
//战士的防御力
_RolesWarrior.Defense = 65;
//战士的金钱
_RolesWarrior.Money = 30000;
//战士的经验
_RolesWarrior.Experience = 0;
//战士的等