Project1

标题: 请教两种坐标的区别 [打印本页]

作者: stella    时间: 2010-7-15 14:28
标题: 请教两种坐标的区别
$game_map.events[1].screen_x 和 $game_map.events[1].x 有什么区别?
作者: 紫苏    时间: 2010-7-15 15:01
一个是屏幕坐标,一个是世界坐标,屏幕坐标是屏幕空间中的向量,指定了人物在窗口客户区中的像素位置,可视范围是左上角 (0, 0) 到 右下角 (639, 479),在这个范围之外则人物或多或少有一部分不可见;世界坐标则是人物在地图空间中的逻辑坐标,指定人物当前在地图中的哪一格,(0, 0) 表示在地图左上角,(343, 284) 表示在第 343 行 284 列这一格上
作者: stella    时间: 2010-7-16 08:03
一个是屏幕坐标,一个是世界坐标,屏幕坐标是屏幕空间中的向量,指定了人物在窗口客户区中的像素位置,可视 ...
紫苏 发表于 2010-7-15 15:01


像素位置是不是不包括图片或者动画的透明部分?另外用screen_x 和 x  分别作坐标判断,哪一个对速度影响较大呢?

作者: 紫苏    时间: 2010-7-16 08:08
像素位置是不是不包括图片或者动画的透明部分?

为什么会这么想?像素坐标可以是任何位置,这个位置同时也是人物图像的原点所在,和透明不透明没关系
另外用screen_x 和 x  分别作坐标判断,哪一个对速度影响较大呢?

缺乏上下文,不知道你指什么。前者可以用来判断人物在屏幕上精确到像素的位置,而后者主要是用来判断人物在地图上的位置。“判断”操作本身速度没有差别
作者: stella    时间: 2010-7-16 08:18
本帖最后由 stella 于 2010-7-16 08:19 编辑

比如在刷新画面中用屏幕坐标或者世界坐标来作许多不同事件的重合判断,速度上没有差别吗?
作者: 紫苏    时间: 2010-7-16 08:46
回复 stella 的帖子

你是 ARPG 系统吧,如果地图不是按格子来算的话,为了精确检测碰撞可以用像素;如果仍然是格子,用普通的 x 就够了(人物不可能在两个格子之间,要么坐标相同,要么相差 1 以上)
至于速度,用像素来检测碰撞肯定是没有直接判断坐标大小快的
作者: 火ZHI意志    时间: 2010-7-16 08:58
我认为应该是屏幕的XY坐标来做判断,看起来比较真实一点,嗯
作者: stella    时间: 2010-7-16 09:08
回复

你是 ARPG 系统吧,如果地图不是按格子来算的话,为了精确检测碰撞可以用像素;如果仍然是格子,用 ...
紫苏 发表于 2010-7-16 08:46


阿,是 ARPG 系统,知道了谢谢






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1