设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2052|回复: 3
打印 上一主题 下一主题

[已经过期] 新人 求问XP怎样导入开场动画

[复制链接]

Lv1.梦旅人

梦石
0
星屑
240
在线时间
3 小时
注册时间
2013-2-23
帖子
3
跳转到指定楼层
1
发表于 2015-3-3 02:30:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

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

x
RT 插入视频 在选择新游戏后播放
求问视频格式和插入方法
如需脚本也请告诉我(
非常感谢!

Lv1.梦旅人

梦石
0
星屑
50
在线时间
206 小时
注册时间
2014-2-8
帖子
396
2
发表于 2015-3-3 12:42:50 | 只看该作者
动画。。。。XP不能吧
刚接触RPG的新人们裤艾来这里!在这里能够帮助你们提高自身的能力,让大家来帮助每个人实现自己的创意、构想!
也许你只是正在看RPG教程的新人,或者是正在努力学着制作自己的RPG的制作者,或者是狂热的RPG游戏喜爱者,
但都不重要!
加入我们,我们会帮助你实现梦想,或者帮助你更好的运用RPG并且创造个人的一片天地!周末我们会不定时间开放RM技术讨论活动或者RM经验交流课!
加入我们,我们愿意与你共同创造奇迹,共同进步!
QQ群号:329443038  
或者联系QQ:573932914
我们和你站在同一线!
要求只有:常能上线
我们会用十分的热情接纳你!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
240
在线时间
3 小时
注册时间
2013-2-23
帖子
3
3
 楼主| 发表于 2015-3-3 14:00:45 | 只看该作者
573932914 发表于 2015-3-3 12:42
动画。。。。XP不能吧

谢谢                                             
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
46 小时
注册时间
2015-1-22
帖子
24
4
发表于 2015-3-3 14:20:31 | 只看该作者
要導入影片的話,這裡有一個方法
http://forum.gamer.com.tw/C.php?bsn=04918&snA=20313
連結不知道看不看的到,所以我複製在下方

先放這個檔案到遊戲位置 http://www.mediafire.com/download.php?8cwdn15dax6e9bu
(當然是解壓出來)
腳本編輯器插入新腳本
名稱打 RMFlash (不確定是不是必要)
在右邊內容貼下面的資料

RUBY 代码复制
  1. class String
  2.  
  3. CP_ACP = 0
  4. CP_UTF8 = 65001
  5.  
  6. def u2s
  7. m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
  8. w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
  9.  
  10. len = m2w.call(CP_UTF8, 0, self, -1, nil, 0)
  11. buf = "\0" * (len*2)
  12. m2w.call(CP_UTF8, 0, self, -1, buf, buf.size/2)
  13.  
  14. len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
  15. ret = "\0" * len
  16. w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil)
  17.  
  18. return ret
  19. end
  20.  
  21. def s2u
  22. m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
  23. w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
  24.  
  25. len = m2w.call(CP_ACP, 0, self, -1, nil, 0);
  26. buf = "\0" * (len*2)
  27. m2w.call(CP_ACP, 0, self, -1, buf, buf.size/2);
  28.  
  29. len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
  30. ret = "\0" * len
  31. w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
  32.  
  33. return ret
  34. end
  35.  
  36. def s2u!
  37. self[0, length] = s2u
  38. end
  39.  
  40. def u2s!
  41. self[0, length] = u2s
  42. end
  43.  
  44. end
  45.  
  46. class Bitmap
  47.  
  48. RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  49. RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  50.  
  51. def address
  52. buffer, ad = "xxxx", object_id * 2 + 16
  53. RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 8
  54. RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 16
  55. RtlMoveMemory_pi.call(buffer, ad, 4); return buffer.unpack("L")[0]
  56. end
  57.  
  58. end
  59.  
  60. class RMFlash
  61.  
  62. API_NEW = Win32API.new("RMFlash", "_new", "piil", "l")
  63. API_UPDATE = Win32API.new("RMFlash", "_update", "l", "v")
  64. API_FREE = Win32API.new("RMFlash", "_free", "l", "v")
  65. API_PLAYING = Win32API.new("RMFlash", "_is_playing", "l", "i")
  66. API_PAUSE = Win32API.new("RMFlash", "_pause", "l", "v")
  67. API_RESUME = Win32API.new("RMFlash", "_resume", "l", "v")
  68. API_BACK = Win32API.new("RMFlash", "_back", "l", "v")
  69. API_REWIND = Win32API.new("RMFlash", "_rewind", "l", "v")
  70. API_FORWARD = Win32API.new("RMFlash", "_forward", "l", "v")
  71. API_CURFRAME = Win32API.new("RMFlash", "_cur_frame", "l", "i")
  72. API_TOTALFRAME = Win32API.new("RMFlash", "_total_frames", "l", "i")
  73. API_GOTOFRAME = Win32API.new("RMFlash", "_goto_frame", "li", "v")
  74. API_GETLOOP = Win32API.new("RMFlash", "_get_loop", "l", "i")
  75. API_SETLOOP = Win32API.new("RMFlash", "_set_loop", "li", "v")
  76. API_CLEARALL = Win32API.new("RMFlash", "_clear_all", "v", "v")
  77. API_VALID = Win32API.new("RMFlash", "_valid", "l", "i")
  78. API_SENDMSG = Win32API.new("RMFlash", "_send_message", "liii", "l")
  79.  
  80. CUR_PATH = Dir.pwd
  81.  
  82. def self.get_version
  83.  
  84. end
  85.  
  86. def self.clear_all
  87. API_CLEARALL.call
  88. end
  89.  
  90. def self.load(name, width, height, v = nil)
  91. new("#{CUR_PATH}/#{name}".u2s, width, height, v)
  92. end
  93.  
  94. attr_reader :valid
  95.  
  96. def initialize(flash_name, flash_width, flash_height, viewport = nil)
  97. @sprite = Sprite.new(viewport)
  98. @sprite.bitmap = Bitmap.new(flash_width, flash_height)
  99. @value = API_NEW.call(flash_name, flash_width, flash_height, @sprite.bitmap.address)
  100. @loop = API_GETLOOP.call(@value) > 0
  101. @valid = API_VALID.call(@value) > 0
  102. end
  103.  
  104. def viewport
  105. @sprite.viewport
  106. end
  107.  
  108. def update
  109. API_UPDATE.call(@value)
  110. end
  111.  
  112. def dispose
  113. API_FREE.call(@sprite.bitmap.address)
  114. end
  115.  
  116. def playing?
  117. API_PLAYING.call(@value) > 0
  118. end
  119.  
  120. def pause
  121. API_PAUSE.call(@value)
  122. end
  123.  
  124. def resume
  125. API_RESUME.call(@value)
  126. end
  127.  
  128. def back
  129. API_BACK.call(@value)
  130. end
  131.  
  132. def rewind
  133. API_REWIND.call(@value)
  134. end
  135.  
  136. def forward
  137. API_FORWARD.call(@value)
  138. end
  139.  
  140. def current_frame
  141. API_CURFRAME.call(@value)
  142. end
  143.  
  144. def total_frames
  145. API_TOTALFRAME.call(@value)
  146. end
  147.  
  148. def goto_frame(goal_frame)
  149. API_GOTOFRAME.call(@value, goal_frame)
  150. end
  151.  
  152. def x
  153. @sprite.x
  154. end
  155.  
  156. def x=(v)
  157. @sprite.x = v
  158. end
  159.  
  160. def y
  161. @sprite.y
  162. end
  163.  
  164. def y=(v)
  165. @sprite.y = v
  166. end
  167.  
  168. def z
  169. @sprite.z
  170. end
  171.  
  172. def z=(v)
  173. @sprite.z = v
  174. end
  175.  
  176. def width
  177. @sprite.bitmap.width
  178. end
  179.  
  180. def height
  181. @sprite.bitmap.height
  182. end
  183.  
  184. def loop?
  185. @loop
  186. end
  187.  
  188. def loop=(v)
  189. if @loop != v
  190. @loop = v
  191. API_SETLOOP.call(@value, v)
  192. end
  193. end
  194.  
  195. def msg_to_flash(msg, wParam, lParam)
  196. return API_SENDMSG.call(@value, msg, wParam, lParam)
  197. end
  198.  
  199. # 例
  200. WM_MOUSEMOVE = 0x0200
  201.  
  202. def make_long(a, b)
  203. return (a & 0xffff ) | (b & 0xffff) << 16
  204. end
  205.  
  206. def on_mouse_move(x, y)
  207. return msg_to_flash(WM_MOUSEMOVE, 0, make_long(x, y))
  208. end
  209.  
  210. end
  211.  
  212. module Kernel
  213.  
  214. alias origin_exit exit unless method_defined? :exit
  215.  
  216. def exit(*args)
  217. RMFlash.clear_all
  218. origin_exit(*args)
  219. end
  220.  
  221. end
  222.  
  223. #fls = RMFlash.load("2.swf", 640, 480)
  224.  
  225. #while true
  226. # Graphics.update
  227. # Input.update
  228. # fls.update
  229. # break if Input.trigger?(13)
  230. #end
  231. #fls.dispose
  232.  
  233. #exit
  234.  
  235. =begin
  236. class RMFlash
  237. API_NEW = Win32API.new("RMFlash", "_new", "piil", "l")
  238. API_UPDATE = Win32API.new("RMFlash", "_update", "l", "v")
  239. API_FREE = Win32API.new("RMFlash", "_free", "l", "v")
  240. #def self.new(*args)
  241. # obj = super(*args)
  242. # obj.send :initialize, *args
  243. # obj
  244. #end
  245.  
  246. def initialize(flashname, fw, fh)
  247.  
  248. end
  249.  
  250. end
  251.  
  252. RMFlash.new
  253. exit
  254. =end



new("#{CUR_PATH}/#{name}".u2s, width, height, v)

#{CUR_PATH}/  

#{name}
之間插入一個路徑
可以改變放影片檔的地方
例如
new("#{CUR_PATH}/move/#{name}".u2s, width, height, v)
就是遊戲資料夾的move資料夾
-----
使用方式是在遊戲中
於地圖上或是公用事件插入下面腳本 (2014/05/25)
RUBY 代码复制
  1. fls = RMFlash.load("goldom.swf",544,416)
  2. fls.x = 0
  3. fls.y = 0
  4. fls.loop = 0
  5. while true
  6. Graphics.update
  7. Input.update
  8. fls.update
  9. break if !fls.playing?
  10. break if Input.trigger?(Input::B)
  11. end
  12. fls.dispose

RUBY 代码复制
  1. $scene = Scene_Map.new

$scene = Scene_Map.new 加了是為了解決影片畫面會滯留的問題
而 (Input::A) 是說按下 A鍵 取消播放
可依照設計者的狀況做更改

AvB_2.swf 是影片檔名` 可改成自己要用的
但是副檔名一律要是swf
640,480 是解析度(顯示的大小)
fls.x = 0   fls.y = 0   是顯示時候的x軸y軸起點
如果要讓遊戲開頭放op
在腳本編輯器的main裡面加入這個腳本 或是 新建一個腳本
這個腳本只使用swf檔
可用格式工廠進行轉檔

來源: 66RPG
協助: 釣到一隻猴子

(猴子兄 都不知道在忙啥阿)
另外我想有些從xp開始玩的人應該會對vx只有544*416 有點不習慣
以下是66rpg看到的擴展方法

在main里加入Graphics.resize_screen(640,480)  ......... (放begin的上面就好)
Spriteset_Map 裡面修改 "viewport.new" 的数值(544,416修改为640,480)
Game_Map:
@margin_x = (width - 這邊改20
@margin_y = (height - 這邊改15
@display_y = [@display_y + distance, (height - 改15
@display_x = [@display_x + distance, (width - 改20

"-" 的後面一定要空一格

评分

参与人数 1星屑 +200 收起 理由
hys111111 + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-27 08:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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