设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1753|回复: 1
打印 上一主题 下一主题

[已经解决] 请问如何获取Sprite旋转后的图像

[复制链接]

Lv1.梦旅人

梦石
0
星屑
180
在线时间
509 小时
注册时间
2010-10-1
帖子
97
跳转到指定楼层
1
发表于 2014-12-21 18:20:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
Um..不知是不是本人又孤陋寡闻了 还望各位不吝赐教~
直接改Sprite的angle旋转的图片能用什么方法获取吗?或者blt到一张位图上?
..能否从内存中拉取旋转后的图片?(<==对了 请问怎么在内存中找到游戏里的东西?是该用RtlMoveMemory吗?)

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-12-21 18:30:23 | 只看该作者
本帖最后由 taroxd 于 2014-12-21 18:32 编辑

不常使用的话,一个一个 get_pixel 即可

想要直接操作内存的话,Bitmap 在内存中的位置如下(感谢远古的大神):
CPP 代码复制
  1. // 每个 pixel 都是 0xaarrggbb 格式的。这里偷懒都用 DWORD
  2. class Bitmap
  3. {
  4. public:
  5.  
  6.         Bitmap(const DWORD object_id)
  7.         {
  8.                 m_pixel = ((DWORD ****)(object_id * 2))[4][2][4];
  9.                 m_size = ((DWORD ****)(object_id * 2))[4][2][2];
  10.         }
  11.  
  12.         ~Bitmap()
  13.         {
  14.         }
  15.  
  16.         DWORD width()  const { return m_size[1]; }
  17.         DWORD height() const { return m_size[2]; }
  18.  
  19.         DWORD * pixel(const int x, const int y) const { return m_pixel + (height() - y - 1) * width() + x; }
  20.  
  21.         DWORD * begin() const { return m_pixel; }
  22.         DWORD * end() const { return m_pixel + width() * height(); }
  23.  
  24. private:
  25.         DWORD * m_size;
  26.         DWORD * m_pixel;
  27. };

点评

看你做像素图的技巧……  发表于 2014-12-22 12:33
唔..我竟然天真地以为 取小数大概是取几个点的平均值 = =那有办法让它变平滑一点吗?  发表于 2014-12-21 20:38
位图就是一个像素一个像素的,当然不能取小数位置啦……  发表于 2014-12-21 20:33
我试了下 在两个像素间get_pixel貌似会被floor省掉小数 这么操作不会让图片变得很有锯齿感?UM..我对内存的操作还是不太会 总之代码先收藏了~Thanks...  发表于 2014-12-21 20:31

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 21:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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