幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 19092|回复: 31

[全新系统] [3.12怨念更新]RMXP播放AVI动画较完美解决方案

[复制链接]

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
发表于 2006-3-9 01:04:06 | 显示全部楼层 |阅读模式
修改了原先的10秒不调用Graphics.update就强制结束工程的设定.如果10秒以上没有调用Graphics.update,只是抛出一个Hangup异常,可以用rescue捕获,不必非要结束游戏了.

由此完善了视频播放功能,使用了一大套关于窗体的API.从此,RMXP的用户不用再羡慕RM2k或者2k3的视频播放功能了.

需要加入的脚本是范例游戏工程里面,main之前的MoviePlayer和SystemTimer,
两个必须配合使用,下面是脚本中的说明.

#===========================================
# ☆★☆ AVI播放器 ☆★☆
#------------------------------------------------------------------------------
# - FantasyDR
# - 2006.3.12
#------------------------------------------------------------------------------
# MSN: FantasyDR_SJL@hotmail.com
#------------------------------------------------------------------------------
# Note:
#  
#   1.在下方 PROJECT_NAME = 后面填写你的游戏工程名.
#
#   2.在游戏中,调用脚本事件播放你的视频文件,如果一行写不下可以在逗号后换行.
#
#   $MP.play(movie_name, movie_length,
#            skip, fullscr,
#            x, y, width, height, loop)
#
# 参数说明:
#
#     movie_name   : 视频文件名(*.avi),必须
#     movie_length : 电影时间,单位是秒,必须
#             skip : 是否可以按A键跳过,true/false,默认是true
#          fullscr : 是否强制为全屏幕播放,true/false,默认是false
#              x,y : 视频播放的左上角坐标,默认是0,0
#     width,height : 视频的宽度,可以任意.默认是640,480
#             loop : 循环播放,true/false,默认是true
#
# 例如播放logo.avi,时间13秒,禁止跳过,强制全屏,范围(是0,0)-(640,480),循环播放
#        $MP.play("logo.avi",13,false,true)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复

使用道具 举报

32

主题

1187

帖子

44万

积分

⑧专业

大象摇啊摇

积分
441584
QQ
发表于 2006-3-9 03:04:26 | 显示全部楼层
赞!原来如此啊.用了这种方法. [s:4]
真実を知らぬ者にとって、闇は安寧ではなく…… 恐怖や邪悪という負の存在を想起させるのであろうな。
回复 支持 反对

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
 楼主| 发表于 2006-3-9 10:44:11 | 显示全部楼层
顺手贴一下,这个脚本和以前的相比,解决了如下的问题:

1.以前的脚本播放AVI的时候,每隔一段时间会闪烁一下.Graphics.update被调用的原因.现在没有这个问题了.

2.动画播放不能全屏的问题.以前的脚本播放640*480大小的脚本在全屏状态下会弹出,现在播放全屏动画没有问题.

3.以前的脚本只能在左上角开始播放动画,而且不能控制播放窗口大小.现在这个脚本可以从任意位置开始,自定义播放窗口的大小.

4.工程名称可以使用中文。其实凡是调用API的,如果参数里面有中文的话,必须把Unicode转换成GBK编码,这样就不会出问题了。

[编辑,去掉RP的内容-v-]
实现机理比较麻烦,首先是捕获Hangup异常,所以免于调用Graphics.update防闪烁。第二是播放AVI的窗体并不是原来的,而是调用API建立的子窗体,所以十分好控制.呵呵.

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

91

主题

3188

帖子

83986万

积分

荣誉群

传说中的Bunny大神~!

积分
839861514
QQ
发表于 2006-3-9 13:08:15 | 显示全部楼层
您真是太强大了!!! [s:1]
其他所有的Bunny神都素我的部下XD~ 小教程范例收集 Orz感谢邪恶萝卜联盟!!!(原因自己去猜)
回复 支持 反对

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
 楼主| 发表于 2006-3-11 02:50:51 | 显示全部楼层
另外,发现了自己万分RP的一个地方。工程已经更换了……用原来的dll就可以。
原来不需要修改Dll就可以捕获这个异常,真是小题大做,晕。这个故事告诉我们,事情往往比想象的简单^_^

不过,若不是弄dll弄的兴起,也不会去做这个AVI播放的脚本-.-总归还是没有完全白费力气。

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

32

主题

1187

帖子

44万

积分

⑧专业

大象摇啊摇

积分
441584
QQ
发表于 2006-3-11 06:11:24 | 显示全部楼层
引用第4楼FantasyDR2006-03-11 02:50发表的“”:
另外,发现了自己万分RP的一个地方。工程已经更换了……用原来的dll就可以。
原来不需要修改Dll就可以捕获这个异常,真是小题大做,晕。这个故事告诉我们,事情往往比想象的简单^_^

不过,若不是弄dll弄的兴起,也不会去做这个AVI播放的脚本-.-总归还是没有完全白费力气。
呵呵,直接就可以捕获到.这个方法真的很好.播放AVI大概已经完美了... [s:7]
真実を知らぬ者にとって、闇は安寧ではなく…… 恐怖や邪悪という負の存在を想起させるのであろうな。
回复 支持 反对

使用道具 举报

1

主题

23

帖子

174

积分

③业余

积分
174
发表于 2006-3-11 11:43:19 | 显示全部楼层
谢谢FF分享 关于API方面  的确发展空间蛮大的 希望以后有更多更好的作品分享给大家
我就是herrera
回复 支持 反对

使用道具 举报

218

主题

1万

帖子

10万

积分

⑧专业

赋予你第五自由

积分
108021
发表于 2006-3-12 20:21:19 | 显示全部楼层
顶一下大叔的东西呀~`

第 五 自 由 -   5th  Freedom   -

回复 支持 反对

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
 楼主| 发表于 2006-3-12 20:46:44 | 显示全部楼层
[s:5]

……想看到地狱的景色么……

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

91

主题

3188

帖子

83986万

积分

荣誉群

传说中的Bunny大神~!

积分
839861514
QQ
发表于 2006-3-12 21:05:46 | 显示全部楼层
引用第8楼FantasyDR2006-03-12 20:46发表的“”:
[s:5]

……想看到地狱的景色么……

我好想啊!!!
[s:2]
其他所有的Bunny神都素我的部下XD~ 小教程范例收集 Orz感谢邪恶萝卜联盟!!!(原因自己去猜)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-28 19:36 , Processed in 0.034587 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表