1084678557 发表于 2019-7-5 11:55

LOL世界坐标转化屏幕坐标

我在研究LOL人物坐标转化到屏幕,已经找到人物的指针和坐标偏移,现在卡在如何转化的屏幕的坐标,右键查看访问人物X坐标的代码,太多了不知道哪条才是大佬们有什么好的思路和方法吗,1E0是X坐标的偏移

loos2233 发表于 2019-7-5 19:59

好像需要矩阵

风一般的沉默 发表于 2019-7-6 10:25

我怎么感觉.LOL像放大、缩小、移动这类.

风一般的沉默 发表于 2019-7-6 10:29

https://blog.csdn.net/yatsov/article/details/79808401
这个像不..地图里面就是一个平面没有高度.严格来说不像3D.

枫色~幻想 发表于 2019-7-6 11:57

你没矩阵怎么转换呢,矩阵找到然后转换 2D坐标就好了{:5_193:}

llkbkh1 发表于 2019-7-6 15:18

.版本 2

.子程序 WorldToScreen算法, 坐标2D
.参数 对象坐标, D3DXVECTOR3
.局部变量 View矩阵, 小数型, , "4,4"
.局部变量 Projection矩阵, 小数型, , "4,4"
.局部变量 游戏矩阵, 小数型, , "4,4"
.局部变量 屏幕坐标, 坐标3D
.局部变量 计算坐标, 坐标3D
.局部变量 返回坐标, 坐标2D
.局部变量 TMP, 整数型
.局部变量 屏幕大小, 坐标2D

读矩阵 (Get_pView (), View矩阵)
读矩阵 (Get_pProjection (), Projection矩阵)
矩阵相乘 (View矩阵, Projection矩阵, 游戏矩阵)
TMP = 读整数型 (D3D基址)
屏幕大小.x = 读整数型 (TMP + 24)
屏幕大小.y = 读整数型 (TMP + 28)
屏幕坐标.x = 对象坐标.x × 游戏矩阵 + 对象坐标.y × 游戏矩阵 + 对象坐标.z × 游戏矩阵 + 游戏矩阵
屏幕坐标.y = 对象坐标.x × 游戏矩阵 + 对象坐标.y × 游戏矩阵 + 对象坐标.z × 游戏矩阵 + 游戏矩阵
屏幕坐标.z = 对象坐标.x × 游戏矩阵 + 对象坐标.y × 游戏矩阵 + 对象坐标.z × 游戏矩阵 + 游戏矩阵
屏幕坐标.w = 对象坐标.x × 游戏矩阵 + 对象坐标.y × 游戏矩阵 + 对象坐标.z × 游戏矩阵 + 游戏矩阵
.如果真 (屏幕坐标.z < 0.01)
    返回 (返回坐标)
.如果真结束
计算坐标.x = 屏幕坐标.x ÷ 屏幕坐标.w
计算坐标.y = 屏幕坐标.y ÷ 屏幕坐标.w
计算坐标.z = 屏幕坐标.z ÷ 屏幕坐标.w
返回坐标.x = 屏幕大小.x ÷ 2 × 计算坐标.x + 计算坐标.x + 屏幕大小.x ÷ 2
返回坐标.y = -(屏幕大小.y ÷ 2 × 计算坐标.y) + 计算坐标.y + 屏幕大小.y ÷ 2
返回 (返回坐标)

1084678557 发表于 2019-7-7 12:41

枫色~幻想 发表于 2019-7-6 11:57
你没矩阵怎么转换呢,矩阵找到然后转换 2D坐标就好了

关键是不知道怎么找矩阵啊,大佬指点一二

1084678557 发表于 2019-7-7 13:03

llkbkh1 发表于 2019-7-6 15:18
.版本 2

.子程序 WorldToScreen算法, 坐标2D


大佬

读矩阵 (Get_pView (), View矩阵)
读矩阵 (Get_pProjection (), Projection矩阵)
矩阵相乘 (View矩阵, Projection矩阵, 游戏矩阵)
TMP = 读整数型 (D3D基址)

读矩阵这个是什么API命令,百度也没查到
get pview和getpprojection百度也没查到是什么
最后一个疑问D3D基址指的是D3D9模块在游戏内的首地址吗
页: [1]
查看完整版本: LOL世界坐标转化屏幕坐标