易语言编写cs.16 绘制 矩阵出现了点问题 不知道这个矩阵可不可以使用 好像不是4*4的 但感觉很像
下面是易语言写的矩阵算法,帮忙看看有没有问题
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 主角基址, 整数型
.程序集变量 主角坐标, 主角坐标
.程序集变量 敌人基址, 整数型
.程序集变量 敌人坐标, 敌人坐标
.程序集变量 进程句柄, 整数型
.程序集变量 窗口高度, 整数型
.程序集变量 窗口宽度, 整数型
.程序集变量 引擎类, 整数型
.程序集变量 矩阵基地址, 整数型
.程序集变量 视角宽, 整数型
.程序集变量 视角高, 整数型
.子程序 __启动窗口_创建完毕
.子程序 _按钮1_被单击
PID = 取进程ID (“hl.exe”)
窗口句柄 = 取句柄 (“hl.exe”)
窗口高度 = 取窗口高度 (窗口句柄)
窗口宽度 = 取窗口宽度 (窗口句柄)
进程句柄 = 进程_打开1 (PID)
' 输出调试文本 (进程句柄)
主角基址 = 读内存整数型 (PID, 十六到十 (“025069BC”))
服务类 = 取模块句柄ex (PID, “hl.exe”)
引擎类 = 取模块句柄ex (PID, “hl.exe”)
矩阵基地址 = 引擎类 + 十六到十 (“1820100”)
' 矩阵基地址 = 十六到十 (“02C20100”)
窗口创建 (窗口高度, 窗口宽度, &窗口回调, hwnd)
消息循环 ()
.子程序 窗口回调
世界坐标转换屏幕坐标 ()
刷新窗口 (窗口句柄, hwnd, 窗口高度, 窗口宽度)
.子程序 世界坐标转换屏幕坐标
.局部变量 ViewWorld, 小数型, , "4,4"
.局部变量 相机Z, 小数型
.局部变量 缩放比列, 小数型
.局部变量 相机X, 小数型
.局部变量 相机Y, 小数型
ReadProcessMemoryWorld (进程句柄, 矩阵基地址, ViewWorld [1] [1], 64, 0)
' 调试输出 (ViewWorld)
敌人基址 = 读内存整数型 (PID, 服务类 + 十六到十 (“0182C5C4”))
主角坐标.x = 读内存小数型 (PID, 主角基址 + 十六到十 (“90”) - 8)
主角坐标.y = 读内存小数型 (PID, 主角基址 + 十六到十 (“90”) - 4)
主角坐标.z = 读内存小数型 (PID, 主角基址 + 十六到十 (“90”))
敌人坐标.x = 读内存小数型 (PID, 敌人基址 + 十六到十 (“15A8”) - 8)
敌人坐标.y = 读内存小数型 (PID, 敌人基址 + 十六到十 (“15A8”) - 4)
敌人坐标.z = 读内存小数型 (PID, 敌人基址 + 十六到十 (“15A8”))
视角宽 = 窗口宽度 ÷ 2
视角高 = 窗口高度 ÷ 2
相机Z = ViewWorld [1] [3] × 敌人坐标.x + ViewWorld [2] [3] × 敌人坐标.y + ViewWorld [3] [3] × 敌人坐标.z + ViewWorld [4] [3]
缩放比列 = 1 ÷ 相机Z
相机X = 视角宽 + (ViewWorld [1] [1] × 敌人坐标.x + ViewWorld [2] [1] × 敌人坐标.y + ViewWorld [3] [1] × 敌人坐标.z + ViewWorld [4] [1]) × 缩放比列 × 视角宽
相机Y = 视角高 - (ViewWorld [1] [2] × 敌人坐标.x + ViewWorld [2] [2] × 敌人坐标.y + ViewWorld [3] [2] × 敌人坐标.z + ViewWorld [4] [2]) × 缩放比列 × 视角高
绘制矩形 (相机X, 相机Y, 50, 50, 1, 转换颜色 (#绿色))
' 绘制文本 (“测试”, 相机X, 相机Y, 转换颜色 (#绿色))
.子程序 _启动窗口_将被销毁
释放创建 (hwnd)
结束 ()
改了一下还是不行,矩阵读取到了但是,绘制出来的方框不固定视角动的时候方框浮动,而且绘制的不在敌人身上