首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

网络游戏demo开发范例:多人在线RPG游戏(MMO RPG)demo的开发记录(第16篇)

2012-11-01 
网络游戏demo开发实例:多人在线RPG游戏(MMO RPG)demo的开发记录(第16篇)本篇地址 http://blog.csdn.net/ch

网络游戏demo开发实例:多人在线RPG游戏(MMO RPG)demo的开发记录(第16篇)
本篇地址 http://blog.csdn.net/changjixiong/article/details/8078614,转载请注明出处

version18  csdn下载地址请猛击这里

主要内容:增加了MessageOut类用来控制客户端文字输出的颜色和字体

所属部分:客户端 服务器端

代码地址 https://github.com/changjixiong/MMO-RPGGame/downloads, 如何获得代码,请参考


我想把字弄成别的颜色,比如,红色,我用SetTextColor设置hdcCanvas的前景色为红色,然后输出的文字是这样的

网络游戏demo开发范例:多人在线RPG游戏(MMO RPG)demo的开发记录(第16篇)

人也红了,嗯,或者可以用来做人物狂暴状态的效果,不过脚下的影子要是黑色才对。考虑到后面可能有很多的文字输出,比如人物名字正常是白色,杀人以后是红色,聊天框,被攻击掉血-100这样,还有不同的怪的名字颜色不同,比如普通怪是白色,掉宝多的怪是金色,所以,这个东西,需要分离出来控制,于是就有了类MessageOut。


MessageOut都有些啥,下面逐项的说明

每个MessageOut有下面的2个HDC,一个是要输出的内容,一个是用来打洞的掩膜

然后,将白色画刷选进hdcMask


用这2个HDC,就可以用透明背景贴图的方式输出蓝色文字了

将hdcMask用SRCAND模式贴上去,

再将hdcContent用SRCPAINT模式贴上去


在构造的时候,使用的字高是12,字粗是FW_THIN,创建的字体起了作用,最后就成了这个样子

网络游戏demo开发范例:多人在线RPG游戏(MMO RPG)demo的开发记录(第16篇)

然后,就是不停地用黑白画刷分别把HDC上的文字刷掉,再TextOut,再bitblt


如果不喜欢,可以在构造的时候,使用别的字体,用void MessageOut::SetTextColor(COLORREF color)函数来设置文本颜色


比如,主角的文字就是白色(也可以在杀人以后设置为红色,红名,hoho~)

网络游戏demo开发范例:多人在线RPG游戏(MMO RPG)demo的开发记录(第16篇)


最后,有没有人发现小地图上代表自己的那个点是白的,代表其他玩家的点是蓝的,具体请查看

void GameMap::DrawMini(HDC hdcDest, const vector<Sprite *> & vecPplayer)

网络游戏demo开发范例:多人在线RPG游戏(MMO RPG)demo的开发记录(第16篇)


热点排行