铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2543|回复: 3

【求教】关于场景坐标和游戏窗口像素坐标的换算关系

[复制链接]
发表于 2011-12-7 07:32 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 南风一梦 于 2011-12-7 07:35 编辑

看源码的时候,在战斗函数部分,经常可以看见如下代码:
local x0=WAR.Person[WAR.CurID]["坐标X"]
local dx = WAR.Person[k]["坐标X"] - x0
local rx=CC.XScale*(dx - dy)+CC.ScreenW/2
Y坐标类似....
我的问题是:
1、WAR.Person[WAR.CurID]["坐标X"]和WAR.Person[k]["坐标X"] 取值是否为场景坐标(0~63,0~63)
2、rx是否取值是窗口像素坐标?
3、从rx的赋值公式看,我百思不得其解,这到底是代表一个什么参数?计算的原理是什么?
——————————————————————
希望各位大大能不吝赐教。


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-7 09:32 | 显示全部楼层
1. x0似乎是当前战斗人物坐标,dx似乎是某个别的人物的坐标,这两个坐标都在0~63内
2. 是
3. 就是取得对应该X坐标的像素坐标,因为mod的格子是菱形的嘛,所以就这么算了~

为什么我要说“似乎”呢?因为
1. 你贴的代码不全
2. 我对Lua的代码没什么印象,纯粹在逻辑理论回答你

呼叫027,蓝烟清等人~
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-12-7 11:30 | 显示全部楼层
谢谢Winson和蓝大,就是这个困了我大半天。早上才在网上找到与你们类似的解答:
    对于这种斜视角图像的坐标变换,就是按照游戏坐标X、Y轴的方向每移动一个单位,观察分别在屏幕X和Y方向位移的像素距离即是Xscale和Yscale。这其实也是为什么要把Xscale和Yscale规定为贴图宽高的一半的原因。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-7 10:28 | 显示全部楼层
完整的代码应该是这个
local x0 = WAR.Person[WAR.CurID]["坐标X"];
local y0 = WAR.Person[WAR.CurID]["坐标Y"];
local dx = WAR.Person[k]["坐标X"] - x0
local dy = WAR.Person[k]["坐标Y"] - y0
local rx = CC.XScale * (dx - dy) + CC.ScreenW / 2
local ry = CC.YScale * (dx + dy) + CC.ScreenH / 2

默认情况下当前操作人都是居中显示,也就是CC.ScreenW / 2,CC.ScreenH / 2(其实还有海拔高度不管)
由于贴图都是棱形显示,强强教我的规律
X坐标每增加1,绘图位置横向加CC.XScale纵向加CC.YScale.
Y坐标每增加1,绘图位置横向减CC.XScale纵向加CC.YScale.
上面的计算知道X坐标增加了dx,那么X = CC.XScale * dx; Y = CC.YScale * dx
同样的Y坐标增加了dy,那么X = -CC.XScale * dy; Y = CC.YScale * dy
两个式子一合并
X = CC.XScale * dx - CC.XScale * dy
Y = CC.YScale * dx + CC.YScale * dy

好了,再分别加上CC.ScreenW / 2和CC.ScreenH / 2 。 在后面的计算Y再加上海拔高度完工
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-5-16 14:48

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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