幻想森林

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

[入门教程] 比较基础的脚本哈。。。就是个VX动画在地图上的缩放

[复制链接]

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-1-30 23:12:51 | 显示全部楼层 |阅读模式
比较简单,一共就那么几行脚本,废话少说。

Game_Character 加一个动画缩放的比率
attr_accessor :ad_zoom                  # 动画缩放

初始化里添加  @ad_zoom = 1  这个是100%大小

Sprite_Base
def animation_set_sprites(frame)   改成下面这样,做手脚的地方我都做标记了
  1.   #--------------------------------------------------------------------------
  2.   # ● 设置动画活动块
  3.   #     frame : 画面数据 (RPG::Animation::Frame)
  4.   #--------------------------------------------------------------------------
  5.   def animation_set_sprites(frame)
  6.     cell_data = frame.cell_data
  7.     for i in 0..15
  8.       sprite = @animation_sprites[i]
  9.       next if sprite == nil
  10.       pattern = cell_data[i, 0]
  11.       if pattern == nil or pattern == -1
  12.         sprite.visible = false
  13.         next
  14.       end
  15.       if pattern < 100
  16.         sprite.bitmap = @animation_bitmap1
  17.       else
  18.         sprite.bitmap = @animation_bitmap2
  19.       end
  20.       sprite.visible = true
  21.       sprite.src_rect.set(pattern % 5 * 192,
  22.         pattern % 100 / 5 * 192, 192, 192)
  23.       if @animation_mirror
  24.       #------------------------------------------------------------------
  25.       if $game_temp.in_battle
  26.         sprite.x = @animation_ox - cell_data[i, 1]
  27.         sprite.y = @animation_oy - cell_data[i, 2]
  28.       else
  29.         sprite.x = @animation_ox - @character.ad_zoom * cell_data[i, 1]
  30.         sprite.y = @animation_oy - @character.ad_zoom * cell_data[i, 2]
  31.       end
  32.       #------------------------------------------------------------------
  33.         sprite.angle = (360 - cell_data[i, 4])
  34.         sprite.mirror = (cell_data[i, 5] == 0)
  35.       else
  36.       #------------------------------------------------------------------
  37.       if $game_temp.in_battle
  38.         sprite.x = @animation_ox + cell_data[i, 1]
  39.         sprite.y = @animation_oy + cell_data[i, 2]
  40.       else
  41.         sprite.x = @animation_ox + @character.ad_zoom * cell_data[i, 1]
  42.         sprite.y = @animation_oy + @character.ad_zoom * cell_data[i, 2]
  43.       end
  44.       #------------------------------------------------------------------
  45.         sprite.angle = cell_data[i, 4]
  46.         sprite.mirror = (cell_data[i, 5] == 1)
  47.       end
  48.       sprite.z = self.z + 300
  49.       sprite.ox = 96
  50.       sprite.oy = 96      
  51.       sprite.zoom_x = cell_data[i, 3] / 100.0
  52.       sprite.zoom_y = cell_data[i, 3] / 100.0
  53.       #---------------------------------------------------
  54.       if $game_temp.in_battle
  55.         sprite.zoom_x = sprite.zoom_x
  56.         sprite.zoom_y = sprite.zoom_y
  57.       else
  58.         sprite.zoom_x = @character.ad_zoom * sprite.zoom_x
  59.         sprite.zoom_y = @character.ad_zoom * sprite.zoom_y
  60.       end
  61.       #---------------------------------------------------
  62.       sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  63.       sprite.blend_type = cell_data[i, 7]
  64.     end
  65.   end
复制代码
      #---------------------------------------------------
      if $game_temp.in_battle
        sprite.zoom_x = sprite.zoom_x
        sprite.zoom_y = sprite.zoom_y
      else
        sprite.zoom_x = @character.ad_zoom * sprite.zoom_x
        sprite.zoom_y = @character.ad_zoom * sprite.zoom_y
      end
      #---------------------------------------------------
改成

      #---------------------------------------------------
      unless $game_temp.in_battle
        sprite.zoom_x = @character.ad_zoom * sprite.zoom_x
        sprite.zoom_y = @character.ad_zoom * sprite.zoom_y
      end
      #---------------------------------------------------
这样比较好

调用方法,动画还是用事件调用,在之前只要用脚本改变一下动画比率就可以了

$game_map.events[1].ad_zoom = 0.25
事件指令:显示动画 事件1 [毒]

对那句脚本说明一下
[1]  这个里面添的是地图中事件的编号,那个事件播放动画要缩放就添那个的编号
0.25是缩小为 25%,个人觉得 0.25比较适合事件的大小
这个自己改好了
2就是200%  类推一下就OK

PS:刚开始的作品在战斗是会有BUG而报错,现在已经没有问题了,这个脚本是不会影响战斗中动画的播放的

解说完毕,我闪人
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复

使用道具 举报

7

主题

111

帖子

908

积分

⑤进阶

积分
908
发表于 2009-3-1 16:01:42 | 显示全部楼层
    
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 15:59 , Processed in 0.019624 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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