铁血丹心

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

[讨论] 关于网金武功贴图

[复制链接]
发表于 2010-9-18 15:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 tianguisu 于 2010-9-18 15:22 编辑

今天闲来无事网上看看金庸是否出了什么新的MOD,偶然发现终于有人制作网金的MOD,非常感动。
   
   我本人一直也在模仿网金的开发工作,但由于工作繁忙,再加上比较懒惰,没多少时间去动手写代码。非常佩服pzzgbz的能力和毅力,希望继续写下去。由于之前我也研究过网金的相关内容。在此我写一些我的建议,希望对pzzgbz的开发工作能有些帮助。

   今天首先来说一下网金武功贴图问题。pzzgbz的帖子文字和图片都提到了很多武功无法出去背景的问题。其实由于网金的背景不是单一的黑色素,所以做透明处理比较麻烦。我的做法是在载入图片时锁定图片表面,对整个图片像素的透明度进行平均处理,根据R、G、B相加后除以3得到像素的透明度。下面是很久以前写的代码,贴出来看看对pzzgbz是否有些帮助。
  1.         D3DLOCKED_RECT lockedRect;
  2.         if(D3D_OK!=targetSurface->LockRect(&lockedRect,NULL,D3DLOCK_DISCARD))
  3.         {
  4.                 MessageBox(NULL,"LockRect表面锁定错误!","TextureManager::SetSurfaceOrTexture() ERROR",MB_OK);
  5.                 return 0;
  6.         }
  7.         else
  8.         {
  9.                 DWORD* imageData = (DWORD*)lockedRect.pBits;
  10.                 for(int i = 0; i <(int)Info.Height; i++)
  11.                 {
  12.                          for(int j = 0; j <(int)Info.Width; j++)
  13.                         {
  14.                                 int index = i * lockedRect.Pitch / 4 + j;
  15.                                 DWORD b = (DWORD)((imageData[index])&0xFF);
  16.                         DWORD g = (DWORD)((imageData[index]>>8L)&0xFF);
  17.                         DWORD r = (DWORD)((imageData[index]>>16L)&0xFF);
  18.                         DWORD a = (DWORD)((b+g+r)/3);
  19.                         imageData[index] = ((a<<24L)+(r<<16L)+(g<<8L)+(b));
  20.                                        
  21.                           }
  22.                 }
  23.                 targetSurface->UnlockRect();
  24.         }
复制代码
后面我会把直接对源文件提取图像以及人物贴图及换装的一些心得贴出来供pzzgbz和大家一起研究。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-9-18 22:46 | 显示全部楼层
pzzgbz是我的论坛ID号,请叫我Panda,谢谢,非常高兴看到你贴出来的代码,我后来的思路也和你一样,对象素二次处理均匀化透明色,效果尚可,但还是没有原版的感觉,后来转移了发展方向,就没有深入研究了。你的R、G、B相加后除以3效果可以,我刚才试了。

[发帖际遇]: pzzgbz发现昆仑仙境,离开时落下悬崖,摔断双腿,医治用去银两21两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-9-19 00:02 | 显示全部楼层
恩,我也是觉得效果勉强可用,所以后来也没有具体研究原版的算法。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-9-19 00:53 | 显示全部楼层
希望有更多有技术的人能来支持作者,让这款游戏的正式版早日面世!万分期待啊!

[发帖际遇]: Winter01帮丘处机寻找杨家后人,被完颜洪烈发现海扁一顿,还被抢走银两12两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-9-20 08:44 | 显示全部楼层
已經可以玩網金單機了...只是想看看有沒有GM指令

[发帖际遇]: kissbaboy护送杨不悔至昆仑山坐忘峰,杨逍感激万分赠送银两17两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-9-20 11:23 | 显示全部楼层
已經可以玩網金單機了...只是想看看有沒有GM指令
kissbaboy 发表于 2010-9-20 08:44

你發這篇在這好像有點回錯文

[发帖际遇]: z74624偷看武当弟子练功,习得梯云纵,增加声望1。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-9 10:12 | 显示全部楼层
不知道为甚么要这么改,巨我所知的,完全没必要在乎黑色背景
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-12-19 17:47

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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