赞 | 0 |
VIP | 47 |
好人卡 | 14 |
积分 | 1 |
经验 | 6342 |
最后登录 | 2015-10-31 |
在线时间 | 466 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 466 小时
- 注册时间
- 2006-2-25
- 帖子
- 1863
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
鉴于不少人误会此补丁为官方补丁.我重新写下说明{/gg}
VX有一BUG.就是在地图上播放动画
人物行走画面滚动时候..动画会跟著画面一起移动
详情请点击进入原帖查看
鄙人写了一个补丁.(主要参考RMXP)
修正此问题
但要注意的是.
此补丁里包含了VX_SP1官方补丁.
所以.你可以直接把官方的VX_SP1补丁删除掉.
再把此脚本插到main前..
或者..如果你觉得莫尼卡大姐翻译很辛苦.
想保留VX_SP1补丁.
那你就把此脚本插到VX_SP1脚本之后
以下贴出脚本
- #==============================================================================
- # ■ VX_非官方补丁 [地图上显示动画修正] —— By 诡异の猫
- #------------------------------------------------------------------------------
- # 此补丁修正:地图上播放动画人物行走画面滚动时,动画跟着画面移动
- #
- # 注意: 此补丁整合了 VX_SP1 官方补丁
- #==============================================================================
- class Sprite_Base < Sprite
- #--------------------------------------------------------------------------
- # ● 开始播放动画
- #--------------------------------------------------------------------------
- def start_animation(animation, mirror = false)
- dispose_animation
- @animation = animation
- return if @animation == nil
- @animation_mirror = mirror
- @animation_duration = @animation.frame_max * 4 + 1
- load_animation_bitmap
- @animation_sprites = []
- if @animation.position != 3 or not @@animations.include?(animation)
- if @use_sprite
- for i in 0..15
- sprite = ::Sprite.new(viewport)
- sprite.visible = false
- @animation_sprites.push(sprite)
- end
- unless @@animations.include?(animation)
- @@animations.push(animation)
- end
- end
- end
- update_animation
- end
- #--------------------------------------------------------------------------
- # ● 释放动画
- #--------------------------------------------------------------------------
- alias eb_sp1_dispose_animation dispose_animation
- def dispose_animation
- eb_sp1_dispose_animation
- @animation_bitmap1 = nil
- @animation_bitmap2 = nil
- end
- #--------------------------------------------------------------------------
- # ● 设置动画活动块
- # frame : 画面数据 (RPG::Animation::Frame)
- #--------------------------------------------------------------------------
- def animation_set_sprites(frame)
- cell_data = frame.cell_data
- for i in 0..15
- sprite = @animation_sprites[i]
- next if sprite == nil
- pattern = cell_data[i, 0]
- if pattern == nil or pattern == -1
- sprite.visible = false
- next
- end
- if pattern < 100
- sprite.bitmap = @animation_bitmap1
- else
- sprite.bitmap = @animation_bitmap2
- end
- sprite.visible = true
- sprite.src_rect.set(pattern % 5 * 192,
- pattern % 100 / 5 * 192, 192, 192)
- position = @animation.position
- if position == 3
- if self.viewport != nil
- sprite.x = self.viewport.rect.width / 2
- sprite.y = self.viewport.rect.height / 2
- else
- sprite.x = 272
- sprite.y = 208
- end
- else
- sprite.x = self.x - self.ox + self.src_rect.width / 2
- sprite.y = self.y - self.oy + self.src_rect.height / 2
- sprite.y -= self.src_rect.height / 2 if position == 0
- sprite.y += self.src_rect.height / 2 if position == 2
- end
- if @animation_mirror
- sprite.x -= cell_data[i, 1]
- sprite.y += cell_data[i, 2]
- sprite.angle = (360 - cell_data[i, 4])
- sprite.mirror = (cell_data[i, 5] == 0)
- else
- sprite.x += cell_data[i, 1]
- sprite.y += cell_data[i, 2]
- sprite.angle = cell_data[i, 4]
- sprite.mirror = (cell_data[i, 5] == 1)
- end
- sprite.z = self.z + 300 + i
- sprite.ox = 96
- sprite.oy = 96
- sprite.zoom_x = cell_data[i, 3] / 100.0
- sprite.zoom_y = cell_data[i, 3] / 100.0
- sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
- sprite.blend_type = cell_data[i, 7]
- end
- end
-
- def x=(x)
- sx = x - self.x
- if sx != 0
- if @animation_sprites != nil
- for i in 0..15
- @animation_sprites[i].x += sx
- end
- end
- end
- super
- end
-
- def y=(y)
- sy = y - self.y
- if sy != 0
- if @animation_sprites != nil
- for i in 0..15
- @animation_sprites[i].y += sy
- end
- end
- end
- super
- end
- end
复制代码
点我下载补丁(请适用迅雷或其他下载工具下载)
或者下载以上文件解压後覆盖RMVX的System文件即可
若发现什么BUG.
请跟帖或PM或+QQ通知我..
谢谢! |
|