⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monster.cpp

📁 MUD文字游戏开发
💻 CPP
字号:
#include "Monster.h"

CMonster::CMonster(void)
{
}

//初始化怪物的坐标和活动范围
CMonster::CMonster(string name,
				   int nHP,
				   int nMP,
				   int nCurrentHP,
				   int nCurrentMP,
				   int nAttack,
				   int nDefence,
				   int nMoney,
				   unsigned unExperience,
				   int nMinPosX,
				   int nMaxPosX,
				   int nMinPosY,
				   int nMaxPosY,
				   string strSkill):CRoleBase(name,nHP,nMP,nCurrentHP,
				   nCurrentMP,nAttack,nDefence,nMoney,unExperience)
{
	m_nMinPosX = nMinPosX;
	m_nMaxPosX = nMaxPosX;
	m_nMinPosY = nMinPosY;
	m_nMaxPosY = nMaxPosY;
	m_strSkill = strSkill;
	m_nMonsterLive = 1;//默认怪物是活的
	m_nCurPosX = (rand()%(nMaxPosX - nMinPosX + 1)) + nMinPosX;
	if (m_nCurPosX%2 != 0)//控制好怪物和人在同一垂直线上
	{
		m_nCurPosX -= 1;
	}
	m_nCurPosY = (rand()%(nMaxPosY - nMinPosY + 1)) + nMinPosY;
}

CMonster::~CMonster(void)
{
}

//怪物随机移动
void CMonster::MonsterMove()
{
	int nPosition;
	nPosition = rand()%4;//随机产生怪物的活动方向(0:上;1:下;2:左;3:右)
	switch (nPosition)
	{
	case 0:
		if (m_nCurPosY > m_nMinPosY)
		{
			this->m_nCurPosY -= 1;
		}
		break;
	case 1:
		if (m_nCurPosY < m_nMaxPosY)
		{
			this->m_nCurPosY += 1;
		}
		break;
	case 2:
		if ((m_nCurPosX-2) > m_nMinPosX)
		{
			this->m_nCurPosX -= 2;
		}
		break;
	case 3:
		if ((m_nCurPosX+2) < m_nMaxPosX)
		{
			this->m_nCurPosX += 2;
		}
		break;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -