挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 出租内核驱动读写保护,价格亲民,高品质群:530544047 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 2438|回复: 0
打印 上一主题 下一主题

[图文教程] 转】RPG游戏自动打怪之朝向判断

[复制链接]
贡献
132
海币
156
交易币
0
跳转到指定楼层
楼主
发表于 2018-7-18 18:43:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


RPG游戏 想要做到自动打怪
获得到最近怪物信息以后 还需要面向怪物
否则背对怪物等等情况是没有办法攻击以及释放技能的
游戏设计的时候朝向是有很多种情况的
第一种
2D,2.5D老游戏,例如传奇
他的朝向一般是极为固定的4朝向或则8朝向
也就是不是自由朝向的,只能朝向 东南西北4个方位
或则 东北 西北 西 西南 东南 8个方位
那么朝向计算也极为简单
只要计算出怪物和人物坐标的关系即可
例如
X怪物>X人物 &&  Y怪物>Y人物
那么想面向怪物就把朝向值修改成面向东北方即可
一般 8个方位是0-7 8个数值表示
第二种
2D版自由朝向
说是2D版自由朝向,但实际上很多3D游戏都在运用
非常简单的理解就是游戏是3D的,但是人物转向只能2D平面转向,而头不可以上抬和俯瞰的
例如QQ西游
一般情况这种游戏的朝向值得是从0到一个数值均匀排列在坐标系上
我们只要计算出他的变化规律  即可轻松计算
例如QQ西游是从 X正轴为0  逆时针不断增加
一直增加到256然后和X轴重叠又变为0
那么知道了  其变化规律 我们就可以代码实现
如下
DWORD Call_朝向怪物角度(FLOAT x,FLOAT y)
{
T人物属性 A;
A.c初始化();
FLOAT X=A.fX;
FLOAT Y=A.fY;
DWORD B=0;
if (x>X&&y>Y)//第一象限
{
B=(DWORD)(atan2(y-Y,x-X)/3.1415926 *180);//真实角度
B=B*64/90 ;//同比例游戏角度
B=0+B;
}
if (x<X&&y>Y)//第二象限
{
B=(DWORD)(atan2(y-Y,X-x)/3.1415926 *180);
B=B*64/90 ;
B=128-B;
}
if (x<X&&y<Y)//第三象限
{
B=(DWORD)(atan2(Y-y,X-x)/3.1415926 *180);
B=B*64/90;
B=128+B;
}
if (x>X&&y<Y)//第四象限
{
B=(DWORD)(atan2(Y-y,x-X)/3.1415926 *180);
B=B*64/90;
B=256-B;
}
return B;
}
第三种
通过第一种和第二种
我们可以明显感觉到从8方位到多方位的升级
但是这还是不够的  无论你把坐标系分成多少份  还是不是绝对的自由
那怎么办呢?
游戏发明出更自由的朝向方式
例如 天涯明月刀
[color=#3898fe !important]
他是这样的设计理念
以人物为中心 花一个圆,一般半径为1(是多少无所谓,我们乘多少即可)
和怪物连线,于圆的交点就是我们的朝向
那么这样就变成了自由朝向了,想精确到多少都可以
计算起来也非常简单
以人物原点,圆交点,圆交点到X轴的垂线和X轴的交点  三点为一个三角形
人物原点,怪物坐标点,怪物坐标点到X轴的垂线和X轴的交点  三点为一个三角形
2个三角形为相似三角形
那么  小三角形h / 1 =  (Y怪物-Y人物)/距离
小三角形l / 1 =  (X怪物-X人物)/距离
得到的 h 和l  就是我们 圆交点的坐标了
还有进一步的升华的方式
就是3D版本的朝向
那么他将不再是一个圈了
是一个3D立体的球
但是算法依然没有变化
只是距离发生了变化
相似三角形依然还是相似三角形
h=(Y怪物-Y人物)/距离
l=(X怪物-X人物)/距离
z=(Z怪物-Z人物)/距离
其中距离=sqrt((人物.fX-fX)*(人物.fX-.fX)+(人物.fY-fY)*(人物.fY-fY)+(人物.fZ-fZ)*(人物.fZ-fZ));
第四种
一般是FPS类游戏喜欢用的
也和航天飞机等用的角度一样
就是俯冲角 摇摆角 和旋转角
其中旋转角代表着自身的旋转 ,在游戏里几乎无用
那么就是俯冲角  代表着枪支方向和水平面上下的角度
摇摆角 代表枪支方向和中线左右摇摆的角度
计算方法 参考第二种的反正切方式即可



联系我时,请说是在 挂海论坛 上看到的,谢谢!

免费评分

参与人数 1海币 +1 收起 理由
zjh0424 + 1 精彩文章希望继续努力



上一篇:rez无检测透视内存版搜索教程!
下一篇:C++实战教学
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-4-29 11:35 , Processed in 0.436391 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表