You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
698 B
44 lines
698 B
#include "monster.h"
|
|
#include "define.h"
|
|
|
|
void Monster::MonsterMove(const Map& wall, Player player, const Map& bean, const Map& goldBean)
|
|
{
|
|
int dir;
|
|
if (status < 0)
|
|
{
|
|
dir = WaitingBorn(wall);
|
|
}
|
|
else if (status > 0)
|
|
{
|
|
dir = Escape(wall, player);
|
|
status--;
|
|
}
|
|
else
|
|
{
|
|
dir = Chase(wall, player);
|
|
}
|
|
|
|
Move(dir);
|
|
|
|
// 恢复绘制走过的bean和goldBean
|
|
|
|
// ....
|
|
}
|
|
|
|
int Monster::Escape(const Map& wall, Player player)
|
|
{
|
|
int dir = Chase(wall, player);
|
|
|
|
// 反向逃避即可
|
|
switch (dir)
|
|
{
|
|
case DIR_UP: dir = DIR_DOWN; break;
|
|
case DIR_DOWN: dir = DIR_UP; break;
|
|
case DIR_LEFT: dir = DIR_RIGHT; break;
|
|
case DIR_RIGHT: dir = DIR_LEFT; break;
|
|
default: dir = DIR_LEFT; break;
|
|
}
|
|
|
|
return dir;
|
|
}
|