关于flash游戏的“录像”功能

本文深入讨论了如何在Flash游戏中实现类似于星际争霸的录像功能,包括代码执行顺序、玩家操作独立化、解决随机问题等关键步骤。通过将操作记录、随机数记录并编码,实现了游戏录像和回放功能,便于技巧展示与交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 不知道大家考虑过怎样用flash做游戏录像的问题啊,我也是一时想起,就像星际争霸里面的录像功能那样,flash做的游戏能不能也实现录像功能呢??在玩过之后点击replay按钮即可把你刚才玩的重放一次,最好是能把录像另存一个文件,然后在另一台电脑上运行flash游戏后也能调入此录像。也许这对动作类型的游戏比较好,便于大家展示技巧和交流。大家有兴趣研究一下这个问题吗?
[1b]1 确定代码执行顺序。这一点是流程可再现的基础。[/1b]
系统能只有一个enterframe,或者一个Interval。而且enterframe和 Interval不能同时用。
把所有mc的enterframe变成一个一般的函数,由主enterframe循环调用。
[1b]2 把玩家操作独立出来。[/1b]
记录时,用一个Array(或者类似的东西)记录每帧的操作,并且压缩。
播放时,读取这个Array,替代玩家的输入。
我的做法是,把每帧的操作(上下左右AB) 按位编码到一个字节中。游戏结束后就把所有操作编码成一个可显示的字符串,在一个文本里面显示出来。
replay时,首先把字符串解析成Array。然后用于替代玩家的输入。
另外,若是fps很高,操作本身就会有冗余,可以进行压缩。
[1b]3 解决随机问题。
[/1b]解决方法是,把所有随机数记录下来。
所有要用到随机数的地方,一律使用自定义的接口,譬如叫做 getRandomNum()
该接口在正常游戏时产生随机数,并且丢入专门列表记录下来;输出时,该列表和操作列表一起产生replay字符串;而在replay时则顺序读取原来的表。
为了编码方便,限制随机数的精度。譬如精度为 1/100,这样就可以把一个随机数压缩到一个可显示字符中了。
若有兴趣可以自己试试看。
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/378.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值