monster.cpp

来自「MUD文字游戏开发」· C++ 代码 · 共 75 行

CPP
75
字号
#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 + =
减小字号Ctrl + -
显示快捷键?