2011年8月20日

AS3多人游戏开发—同步人物移动2

摘要: 上次我们有探讨到鼠标点击的情况下,人物移动同步的问题(http://www.cnblogs.com/cnas3/archive/2011/05/28/2061028.html),今天我们看看使用方向键控制的人物移动如何实现同步。 键盘控制和鼠标控制不同的地方在于,鼠标点击我们知道我们的avatar移动的终点,在键盘控制中,我们并不知道终点,但我们可以知道一些其他有用的信息,比如运动方向,速度,当前位置,我们来看看如何利用这些信息。 假设avatar1是一个玩家1电脑上的人物,它在玩家2电脑上的表示是avatar2,玩家1按下方向键,avatar1开始运动,同时发送当前位置p1,方向,速... 阅读全文

posted @ 2011-08-20 18:55 Dongxue.xie 阅读(1647) 评论(0) 推荐(0) 编辑

2011年8月19日

Molehill初探

摘要: 关注flash的同学肯定都知道Adobe推出了新的基于硬件加速的API Molehill。它可以在60Hz左右的高分辨率显示器下全屏渲染近百万的Z缓冲三角形。就算你的显卡不兼容,也会通过一个叫SwiftShader软件来利用CPU进行渲染。 我们熟悉的2D显示列表位于Molehill的Stage3D上面,而Stage3D又位于StageVideo上面。实际上3D内容可以通过bitmapdata呈现在2D显示列表中。 下图表示了Molehill的基本架构 下面的代码在Stage3D中创建了一个三角形,从中我们可以略微熟悉一下这套API的用法package { import com.adobe.. 阅读全文

posted @ 2011-08-19 16:03 Dongxue.xie 阅读(1343) 评论(0) 推荐(0) 编辑

2011年8月16日

用Flash模拟小车

摘要: 最近学驾照,对倒桩总是很纠结。师傅让我死记住口诀,可是我却觉得倒车靠的的是对几何知识的掌握和对路线的不断修正。最后,弄了一个小游戏,来模拟小车,增加自己倒车的感觉。不过考试的时候还是根据师傅的口诀来保险点。 如Flash无法播放,请下载安装最新的FlashPlayer 键盘上的上下键分别表示前进和后退,左右键表示左右打方向,空格刹车。如果按键没有反应,请先用鼠标点击下Flash,使其具有焦点。 游戏中我们使用了MVC模式来控制小车,View就是我们屏幕上见到的小车,Model是小车的数据,比如位置,旋转度,速度等,而Controler用来改变Model,比如前进,后退,转向。我们小车的所有动. 阅读全文

posted @ 2011-08-16 11:11 Dongxue.xie 阅读(629) 评论(0) 推荐(0) 编辑

2011年8月14日

行为树

摘要: 行为树常被用来实现游戏中的AI。每次执行AI,都会从根节点遍历整个树,父节点执行子节点,子节点执行完后将结果返回父节点。下面是基本的四个节点:1 *顺序节点(Sequence):属于组合节点,顺序执行子节点,只要碰到一个子节点返回false,则返回false,否则返回true,类似于程序中的逻辑与。2 *选择节点(Selector):属于组合节点,顺序执行子节点,只要碰到一个子节点返回true,则返回true,否则返回false,类似于程序中的逻辑或。3 *条件节点(Condition):属于叶子节点,判断条件是否成立。4 *执行节点(Action):属于叶子节点,执行动作,一般返回true。 阅读全文

posted @ 2011-08-14 21:33 Dongxue.xie 阅读(12001) 评论(14) 推荐(3) 编辑

2011年8月12日

在Flex/Flash中自定义Metadata tag

摘要: 经常使用flex进行开发的朋友肯定对metadata tag不会陌生,比如大家常用的[Bindable],[Event]都是metadata,它的作用是为Flex编译器提供组件如何使用的信息。比如说你在组件中定义了一个事件,如果你想让flex编译器知道这个事件,从而在其他MXML中引用它,你就应该插入一个[Event]的metadatatag,代码应该像下面这样。[Event(name="myEvent", type="flash.events.Event")]我们已经习惯了官方提供的metadata,那我们能否自定义metadata呢,答案是肯定的,现 阅读全文

posted @ 2011-08-12 16:23 Dongxue.xie 阅读(1104) 评论(0) 推荐(0) 编辑

2011年8月11日

对PureMVC(AS3版本) 的一些想法

摘要: 在PureMVC中,为了实现更加彻底的解耦,View中使用了Mediator,model中使用了Proxy,Controler中使用了Command,他们的通信通过Notification进行。Notification会激发Command的执行,也会激发Mediator中的handleNotification方法。 观察其源代码,在内部实现上,Controler中注册Command,实际上是在Controler中调用了View的registerObserver方法来注册观察者,传入自己的executeCommand方法作为回调函数。然后所有的notification都是传入了View的n... 阅读全文

posted @ 2011-08-11 11:13 Dongxue.xie 阅读(1195) 评论(0) 推荐(1) 编辑

2011年7月27日

Flash的新用途 - Scaleform

摘要: AutoDeskt推出的ScaleForm是一套游戏界面解决方案,它使用Flash来创建UI,适用于个人电脑、游戏机以及iOS/Android驱动的移动设备。Scaleform4.0之前的版本仅支持AS2,但现在他们开始兼容AS3了。在Scaleform中,并非使用FlashPlayer来播放我们创建的SWF,而是使用了ScaleForm自己的播放器,这些播放器有对应不同DirectX版本。由于并非使用官方的播放器,一些在FlashPlayer中能正常运行的swf在Scaleform中可能会出现问题。ScaleForm提供了一个兼容性的文档,描述了支持AS2/AS3中的哪些功能。但是你不能全指 阅读全文

posted @ 2011-07-27 17:26 Dongxue.xie 阅读(3375) 评论(0) 推荐(0) 编辑

2011年5月28日

AS3多人游戏开发—同步人物移动1

摘要: 在实时性要求比较高的多人游戏中,我们将面临不同客户端间的同步问题,而其中人物移动的同步是最常需要考虑的。这篇文章将描述作者对这个问题的一些思考和解决方案(基于ActionScript3)。 大多数RPG游戏中,人物的移动是由鼠标点击激发的,本文将着重探讨这种移动方式,关于鼠标控制移动的同步,我们以后的文章将会涉及。 最简单的方式是你不断广播自己的当前位置,其他玩家收到数据的时候将对应的人物放到那个位置上去,然而这样却会造成其他玩家电脑上人物移动不平滑,因为他们总要等到位置数据后才能更新显示。你可以通过提高发送频率来减少这种不平滑的感觉,但这会增加了带宽的消耗。 现在说下我自己使用的方法,这也. 阅读全文

posted @ 2011-05-28 21:39 Dongxue.xie 阅读(3642) 评论(2) 推荐(1) 编辑

导航