在学习C/C 或者想学习C/C 可以加群:558502932,大家一起交流学习,下面我们就来聊聊关于程序员梦幻西游?接下来我们就一起去了解一下吧!

程序员梦幻西游(CC游戏编程)

程序员梦幻西游

在学习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

,