玩传奇电脑需要什么配置需要注意什么

1189人阅读
NewMir2项目(7)
ZenGL 的颜色位序 为文档中说明为 TEX_RGBA 但实际在Delphi 为ABGR 这或许是因为Opengl 的端序和Delphi 下不太一致。
fx _setColor 这个函数却不是使用ABGR &而是实在的RGBA &导致我在将传奇客户端改为Zengl 迷糊了很久。但是其实可以将其颜色位序设置为GL_BGRA_EXT 这样可以做到兼容DIB位图。不过Zengl的OpenGLALL单元并没有提供常亮声明。最终我在GLScene的头文件内找到了&
// PixelFormat
GL_BGRA_EXT
将其声明 试了有效,
而且Zengl提供的混合模式是在是少的可怜。Src_ColorAdd的特效也没有内置 最后还是从HGE内抄过来用。
另外ZenGL并没有提供黑白效果。 作者说要么在加载纹理的时候将其设置为&TEX_GRAYSCALE &要么自己GetData SetData处理。
这可如何是好这样当玩家死了 那我灰白界面不是绘制不出来了么。。。
也罢 最终自己从网上扒到图片黑白化的原理 自己实现之 。因为GetData SetData 导致其效率明显低了很多。
procedure TTexture.GrayS
PPixel : PC
tex_GetData(Surface,PP);
PPixel := PCardinal(PP);
nLen := GetRealHeight * GetRealW
灰度处理一般有三种算法:
1 最大值法:即新的颜色值R=G=B=Max(R,G,B),这种方法处理后的图片看起来亮度值偏高。
2 平均值法:即新的颜色值R=G=B=(R+G+B)/3,这样处理的图片十分柔和
3 加权平均值法:即新的颜色值R=G=B=(R * Wr+G*Wg+B*Wb),一般由于人眼对不同颜色的敏感度不一样,
所以三种颜色值的权重不一样,一般来说绿色最高,红色其次,蓝色最低,最合理的取值分别为Wr = 30%,Wg = 59%,Wb = 11%
//这里使用的是第3总算法
for i := 0 to nLen - 1 do
Pixel := PPixel^;
R := Pixel and $FF;
G := (Pixel shr 8) and $FF;
B := (Pixel shr 16) and $FF;
R := Trunc(R * 0.3);
G := Trunc(G * 0.59);
B := Trunc(G * 0.11);
R:= (R + G + B);
PPixel^ := $FF000000 or (R) or (R shl 8) or (R shl 16);
Inc(PPixel);
tex_SetData(Surface,PP,0,0,GetRealWidth,Surface.Height);
FreeMem(PP);
另外关于黑夜效果的实现:
传奇原来的黑夜效果 我没太仔细看。是类似掩码的方式进行 对于不同的亮度有不同的掩码数据 对坐标的色彩进行运算。而且写的是汇编 比较高深。
这里我为了实现这种光效 参考的是HGE内DynamicLight 的例子 将其移至到Zengl并且工作。
1.需要一张和屏幕纹理一样大的 光效层。
2.将其Fill为 ARGB(Light,Light,Light,Light) 这个light 是Byte分量的亮度。
3.使用一张光效遮罩
4。使用Src_ColorAdd混合模式 &将其绘制在光效层上&
srcBlend := GL_DST_ALPHA;
dstBlend := GL_SRC_COLOR;
5.使用Multiply 混合模式将光效会在目标层上。
srcBlend := GL_ZERO;
dstBlend := GL_SRC_COLOR
最终效果是这样的:
最后对ZenGL做一些总结.
使用很方便 而且跨平台 效率也还不错 &但是功能并不是太完善。比如 我需要获得纹理某个像素点 的像素 这种功能并没有实现 智能获取渲染目标的某个点 并且这个函数在全屏下还有问题。 目前我使用的是GetData,但是GetData 一下要拷贝所有像素(效率低)。如果要优化只能自己去学习Opengl相关的API。封装的不算很好。
而且像素格式 Zengl源码内只实现了一种RGBA &虽然可以像我前面说的 &改为ARGB 以便兼容DIB 但是Zengl本身并没有提供。
对Png图片纹理载入未完善。 png的图片对透明通道的载入 只支持8bit的 其他的一律不行。
最后:在实际折腾了半个月后 真新感觉 &Opengl的优势就是跨平台,真心不如DX好用.
如果再让我在ZenGL和Hge中选择的话 &如果是改传奇绘图 我会用HGE &如果搞新项目 我会用ZenGL&
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:39431次
排名:千里之外
原创:20篇
(2)(1)(1)(1)(1)(7)(4)(4)(4)(2)合击怎么放才不会放空?怎么设置合击键?道战合击怎么对付移动中的怪物和角色?谢谢
没有不放空的合击,只能尽量避免啊!你可以把真气设为F7,把合击设为F8,这样一提真气,紧跟着就放合击,另外在处理跑动中的怪和玩家时,首先你的英雄要锁定攻击目标,然后你跟着移动的目标走。就可以避免放空合击了!!
其他答案(共7个回答)
2,按你习惯来设定就行了。
3、道战PK打怪都一样,锁定目标后,主号就毒+符就行了。其它工作交给战英雄,你看准时机放合击就是了。
现在传奇的大号大多60+49的标准等级,这个时候的道道和法道合击威力大,战战PK勇猛,所以大多数人喜欢这3种组合(法道合击威力比道道差点,但是练级打BOSS都是...
级别和装备影响很大。
但是不看好法法打道道,虽然法打道是克星,但是考虑到法血少,道道合击猛的因素,如果法主号在炸弹中心一下被合掉的话,那还打什么。
个人觉得...
法道合击也是要看装备的,如果你的英雄有62点以上道术,你自己有51一点以上魔法,一般情况打怪700-1200,个别时候有出现1800的,打人就只有400-600...
利:血多,平时PK的时候注意点不会经常挂,而且PK的时候冲在最前面,捡东西概率大.
弊:装备相对而言贵了点,承受的攻击最多,所以红药的消耗,气血石的消耗也最大...
我推荐1战站,PK厉害,但练级很慢!花费高些!9套最贵!
2道战,PK厉害,练级也很慢!缺点是越到后期,道主号生存能力越差,不能和战战比!但PK优...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区

我要回帖

更多关于 玩传奇电脑需要什么配置 的文章

 

随机推荐