查看: 2067|回复: 3

[已经解决] 获取某个精灵在屏幕(x,y)处的色彩

[复制链接]
梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
回帖
76
发表于 2014-6-18 23:44:04 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 俄罗斯方块 于 2014-6-19 23:05 编辑

我知道如果要对某个精灵使用方法self.bitmap.get_pixel(x,y)的话 获取的是相对于其原点,(x,y)处的色彩

设:所要获取色彩的目标点为A(A在精灵a的范围内),
      (精灵a.x,精灵a.y)为B,
      (精灵a.ox,精灵a.oy)为C,
      目标点相对于精灵原点的坐标设为D

所以向量BA==向量CD不是吗?
所以D=A-B+C不是吗?

那为什么我照这样计算出的D和真实的D对不上号呢?

哪里错了?

(也不知道我描述清楚没,代码是这样的)
  1. x=tx-a.x+a.ox
  2. y=ty-a.y+a.oy #获取a精灵在屏幕上(tx,ty)处的色彩
  3. p a.bitmap.get_pixel(x,y)
复制代码

点评

精灵还有个属性是 src_rect  发表于 2014-6-19 10:40
菜鸟飞呀飞 该用户已被删除
发表于 2014-6-19 05:24:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45714
在线时间
7951 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-6-19 09:34:23 | 显示全部楼层
最方便的方法是给画面截图成bitmap之后直接get_pixels
,不然就在Object_Space里遍历所有Sprite取符合条件的sprite(优先级最高,viewport优先级最高)
然后取的坐标减去sprite的坐标加上oxoy的中心坐标。

点评

目测楼主的要求没有这么麻烦,直接用位图坐标就可以了=。=  发表于 2014-6-19 09:35
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
回帖
76
 楼主| 发表于 2014-6-19 23:04:44 | 显示全部楼层
谢谢各位。问题解决了。

点评

原来如此  发表于 2014-6-20 21:45
VA区没有认可贴  发表于 2014-6-20 06:23
或者放着不管,咱会来结贴的~  发表于 2014-6-20 06:23
moy
@版主之类,或者自己去认可帖回帖认可  发表于 2014-6-19 23:40
话说现在不能自己把主题分类改成“已经解决”了么?那我以后问题解决之后该@谁呢?  发表于 2014-6-19 23:06
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部