cocos2dx3.2开发 RPG《Flighting》(十二)让怪物智能点——怪物仇恨值

本文介绍了如何使用cocos2dx为RPG游戏《Flighting》增加怪物智能行为,通过仇恨值系统让怪物自动寻找并攻击英雄。详细讲解了仇恨值map的初始化、更新以及相关函数的实现,揭示了仇恨值的来源是每次攻击时增加。通过这样的设计,怪物将优先攻击仇恨值高的目标,增加了游戏的策略性和趣味性。
摘要由CSDN通过智能技术生成

一、前言

人工智能,这是一个很深奥的话题。我们这里的怪物也要智能一点,至少会自动找英雄来打吧。

二、正文

现在我才开始看怪物的头文件

class Monster : public Role{
public:
	Monster();
	static Monster* create(const std::string& name,FlightLayer* layer);
	void initMonster();
	
	virtual Point getHpSliderPos();
	void addHateValue(Role* sender,int HateValue);

    void initWithMessage(const MonsterMessage& msg);
private:
	virtual void update(float dt);
	void updateMonsterAttackTarget();
	void initHateMap();
	void refreshHateMap();
	virtual void injured(int damage);
	Role** getHatest();
	bool cmpHate(const pair<Role_Ptr,int> &x,const pair<Role_Ptr,int> &y);
private:
	std::map<Role_Ptr,int> hateMap;
	
	bool debugMode;
};

同样,Monster也有一个initWithMessage方法来用MonsterMessage来初始化属性。


下面我们讲一讲如何实现关于怪物对英雄的仇恨值

在头文件里面&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值