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

version7

主要内容:站立动画的鼠标响应

所属部分:客户端

代码地址 https://github.com/changjixiong/MMO-RPGGame, 如何获得代码,请参考如何用SVN从github上检出代码的不同版本

邮件地址:changjixiong@gmail.com

本系列目录


站立的动作有8个方向(向下为正南),所以,首先,加载八个方向的位图和动画序列,代码见Sprite::Init 函数的修改。

在Sprite::Load_Frame里面,现在增加了人物位置的偏移,何谓偏移,先看图

如果,人物的坐标是 x, y(也就是图中的那个十字) 那么,如要将人物贴在地图上,站在坐标x,y 的位置,那么bitblt的起始坐标就应该是  x - b, y - a,所以MyBitMap 需要增加offset_x,offset_y并用和位图同名的txt文件里的数据初始化,这样,在version6里面人物每次动作完成以后的那个抖动,就没有了。不过,由于面向东北,东南,和正东方向的资源,是由西北,西南,正西方向的位图翻转过来的,而文本里面的偏移值还是按原来的保存,所以,对于东北,东南,和正东方向的位图,bitblt的起始位置是x - (width - b), y - a,不过其实,用面向左手方面的位图,翻转了,来用做面向右手方向(即用10点半方向的位图翻转做1点半方向),可以减少资源的需要,在人物和动物这一块,就减少了3/8,下一版可以修改一下。


Sprite::ChangeDir 根据给定的坐标,改变主角的方向。在屏幕上点击鼠标,将坐标存在GameWorld的一个字符串里面,用来模拟从服务器收到的消息,然后,在GameWorld::Main()里面,解析消息,用得到的坐标,改变主角的面对方向。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值