cocos2dx3.2开发 RPG《Flighting》(十)为角色加上血量条

cocos2dx3.2开发 RPG《Flighting》(十)为角色加上血量条,第1张

概述一、前言 先说明一下,Role类其实是有很多属性的 protected: /*与战斗相关的数据*/ int m_id; //id Role* m_attackTarget; Role** m_attackTargetPtr;//攻击目标 Point m_desPoint;//目标位置 ROLE_STAT en_stat; //当前状态 FlightLayer* m_la

一、前言

先说明一下,Role类其实是有很多属性的

protected:	/*与战斗相关的数据*/	int m_ID;	//ID		Role* m_attackTarget;	Role** m_attackTargetPtr;//攻击目标	Point m_desPoint;//目标位置		RolE_STAT en_stat;	//当前状态		FlightLayer* m_layer;	//父控件	int m_speed;	//移动速度	int m_initSpeed;		int m_attackdistance;	//攻击距离	int m_initAttackdistance;	int m_hp;//生命值	int m_initHp;	int m_atk;//攻击力	int m_initAtk;	int m_defence;//防御力	int m_initDefence;	RolE_TYPE m_type;//角色类型:Monster Or Hero		int m_atkHateValue;//攻击附带仇恨	bool m_isNaima;//是不是奶妈		std::string m_bulletimg;//子d	int m_bulletSpeed;//子d速度	int m_initBulletSpeed;	double m_atkSpeed;//攻击速度	double m_initAtkSpeed;

每一个属性都有对应的get/set方法以后用到(例如攻击力,防御力,血量)的时候可能我不会提及,请大家原谅。


二、正文

血量条这个很基本,实现方法有很多种,我这里是调用ControlSlIDer这个控件

voID Role::initHpSlIDer(){	m_hpSlIDer = ControlSlIDer::create("bloodbg.png","blood.png","slIDerThumb.png");	m_hpSlIDer->settouchEnabled(false);	m_hpSlIDer->setMaximumValue(m_initHp);	m_hpSlIDer->setMinimumValue(0);	m_hpSlIDer->setValue(m_hp);	m_hpSlIDer->setposition(getHpSlIDerPos());	this->addChild(m_hpSlIDer);}Point Role::getHpSlIDerPos(){	return Point(0,0);}


在update函数里面检测HP的值,并且改变血量条

voID Role::update_hp(){	if(m_hpSlIDer){		m_hpSlIDer->setValue(m_hp);		m_hpSlIDer->setposition(getHpSlIDerPos());	}}

当我们的injured函数被触发的时候(被攻击),m_hp的值会改变,自然的,血量条也随之改变。

这里的getHpSlIDerPos函数的作用是被子类重写,并且设置血量条的位置,应为骨骼动画资源的大小不一(可能Boss体积就大一点),性质跟之前的offset_x,offset_y一样也是用于调整一下位置的。


我的csdn地址:http://blog.csdn.net/hezijian22

邮箱地址:[email protected]

如有问题或指教,欢迎与我交流,谢谢。

总结

以上是内存溢出为你收集整理的cocos2dx3.2开发 RPG《Flighting》(十)为角色加上血量条全部内容,希望文章能够帮你解决cocos2dx3.2开发 RPG《Flighting》(十)为角色加上血量条所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1031088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存