在学习C/C 或者想学习C/C 可以加群:558502932,大家一起交流学习,下面我们就来聊聊关于程序员梦幻西游?接下来我们就一起去了解一下吧!
程序员梦幻西游
在学习C/C 或者想学习C/C 可以加群:558502932,大家一起交流学习。
前面已经给大家更新几章了,但是发现还是有很多,所以还是会持续更新,话不多说,代码献上:
//-----------------------------------【Message_Insert( )函数】----------------------------------
//描述:对战消息函数,用于插入文字消息
//---------------------------------------------------------------------------------------------------
void Message_Insert(wchar_t* str)
{
//如果未满8行消息,直接新开一条消息
if (g_iTxtNum < 8)
{
swprintf_s(text[g_iTxtNum], str);
g_iTxtNum ;
}
//如果满了8行消息,只有挤走最上面的一条消息
else
{
for (int i = 0; i<g_iTxtNum; i )
swprintf_s(text[i], text[i 1]);
swprintf_s(text[7], str);
}
}
//-----------------------------------【Die_Check( )函数】----------------------------------------
//描述:生命值判断函数,检查角色是否死亡,第一个参数填某角色当前生命值
//--------------------------------------------------------------------------------------------------
void Die_Check(int NowHp, bool isHero)
{
wchar_t str[100];
if (NowHp <= 0)//生命值小于等于0了
{
g_bGameOver = true;
if (isHero) //如果是英雄的生命值小于零,表示游戏失败
{
PlaySound(L"failure.wav", NULL, SND_FILENAME | SND_ASYNC); //播放失败音乐
swprintf_s(str, L": ( 胜败乃兵家常事,大侠请重新来过......"); //输出失败提示语
Message_Insert(str); //插入到文字消息中
}
else
{
PlaySound(L"victory.wav", NULL, SND_FILENAME | SND_ASYNC); //播放胜利音乐
swprintf_s(str, L"少年,你赢了,有两下子啊~~~~~!!!!"); //输出胜利提示语
Message_Insert(str); //插入到文字消息中
}
}
}
//-----------------------------------【HeroAction_Logic( )函数】------------------------------
//描述:玩家动作逻辑判断函数
//--------------------------------------------------------------------------------------------------
VOIDHeroAction_Logic()
{
int damage = 0;
wchar_t str[100];
switch (HeroActionType)
{
case ACTION_TYPE_NORMAL:
if (1 == rand() % 4) // 20%几率触发幻影刺客的大招,恩赐解脱,4倍暴击伤害
{
HeroActionType = ACTION_TYPE_CRITICAL;
damage = (int)(4.5f*(float)(3 * (rand() % Hero.Agility) Hero.Level*Hero.Strength 20));
Boss.NowHp -= (int)damage;
swprintf_s(str, L"嗜血成性触发,这下牛逼了,4.5倍暴击...对怪物造成了【%d】点伤害", damage);
}
else //没有触发”恩赐解脱“,还是用普通攻击”无敌斩“
{
damage = 3 * (rand() % Hero.Agility) Hero.Level*Hero.Strength 20;
Boss.NowHp -= (int)damage;
swprintf_s(str, L"神天兵使用了普通攻击“无敌斩”,伤害一般般...对大唐首席造成了【%d】点伤害", damage);
}
Message_Insert(str);
break;
case ACTION_TYPE_MAGIC: //释放烈火剑法
if (Hero.NowMp >= 30)
{
damage = 5 * (2 * (rand() % Hero.Agility) Hero.Level*Hero.Intelligence);
Boss.NowHp -= (int)damage;
Hero.NowMp -= 30;
swprintf_s(str, L"神天兵释放烈火剑法...对大唐首席造成了【%d】点伤害", damage);
}
else
{
HeroActionType = ACTION_TYPE_MISS;
swprintf_s(str, L"你傻啊~!,魔法值不足30点,施法失败,这回合白费了~!");
}
Message_Insert(str);
break;
case ACTION_TYPE_RECOVER: //使用气疗术
if (Hero.NowMp >= 40)
{
Hero.NowMp -= 40;
int HpRecover = 5 * (5 * (rand() % Hero.Intelligence) 40);
Hero.NowHp = HpRecover;
if (Hero.NowHp >= Hero.MaxHp)
{
Hero.NowHp = Hero.MaxHp;
}
swprintf_s(str, L"神天兵使用了气疗术,恢复了【%d】点生命值,感觉好多了。", HpRecover);
}
else
{
HeroActionType = ACTION_TYPE_MISS;
swprintf_s(str, L"你傻啊~!,魔法值不足40点,施法失败,这回合白费了~!");
}
Message_Insert(str);
break;
}
}
以上,就是今天分享的全部代码,希望能对你们有所帮助。
对这方面感兴趣或者想学习C/C 可以加群:558502932
,