把飞机架起来-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

把飞机架起来

简介: 基于前面2篇文章,我们已经可以让游戏在端到端上连动起来,那么这次我写了一个飞机的小游戏。 #效果 下面是截图: ![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/03756028b6c6ff0e7e42a88721acf762.png) 2边各控制一台飞机,在2端实时互动。 为了好看,我加入了简单的特效

基于前面2篇文章,我们已经可以让游戏在端到端上连动起来,那么这次我写了一个飞机的小游戏。

效果

下面是截图:
image.png

2边各控制一台飞机,在2端实时互动。
为了好看,我加入了简单的特效,背景光环与一个半月,我称之为月金轮。

如何架构

image.png

主体涉及到的动画逻辑是 坐标的概念与定时器。
其中子弹是靠定时器触发的,如下面代码所示,每0.8秒产生一次射击。

image.png

月金轮相对于飞机是二级旋转,对应坐标系如下
image.png

需要将这2个坐标系的旋转合成。实现如下:
将月金轮设为背景光环的子节点。

image.png

背景光环与月金轮同时旋转。

image.png

引申

和前面文章不同的是,现在似乎2端似乎不太同步了。
我们看下图

image.png

除了位置受对方控制外,我们对月金轮的特效都是两边各自渲染,由于2端的所分配的CPU状况不同,必然会
产生这些差异。
这就产生了2个分支:
完全同步与关键同步。
我把2端简化称为A,B端。
相对应的投影称之为A', B'。

image.png

完全同步:A'的所有动作绝对与A一致,终端2上的A'的每个旋转角度都有A同步过来,这样当终端1本身卡顿或者网络延迟时终端2上的A'表现会
很卡。
关键同步:各自按同一套机制渲染,终端1上的A将结果同步到A',终端2上的B将结果同步到B'。

王者荣耀与本例采用的是关键同步,2端的动作并不是绝对一致,也无法做到绝对一致。

最后放上我们的视频。
http://v.youku.com/v_show/id_XMzA5MDAwMDg2NA==.html?spm=a2hzp.8244740.0.0

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章