查看: 986|回复: 3

请指教,角色待机动画问题

  [复制链接]
梦石
0
星屑
45
在线时间
0 小时
注册时间
2008-11-28
回帖
1
发表于 2008-11-30 16:22:45 | 显示全部楼层 |阅读模式

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

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

×
我在帖上看到一则技巧,作者是亿万星辰,他共修改了两个类,我分别把他增加的代码粘出来,然后再说出我的问题
==================================
■ Game_Character (分割定义 1)
attr_accessor :time                     # 增加的

# 角色动画待机时间 start <---- myself #
  alias old_ini initialize
  
  def initialize
    old_ini
    @time = 0 # 角色动画待机时间 <---- myself
  end
# 角色动画待机时间 end <---- myself #
==================================
■ Game_Player
TIME_LIMIT = 80
#--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    # 将现有图片替换为待机动画图 <---- myself
    @old_pic = @character_name
    @time = 0 # 初始待机动画时间为0 <---- myself
    # 初始化不透明度和合成方式子
    @opacity = 255
    @blend_type = 0
  end

  #--------------------------------------------------------------------------
  # ● 画面更新
  #--------------------------------------------------------------------------
  def update
     # 角色动画待机时间 start <---- myself #
     if @time == TIME_LIMIT
      @character_name = @character_name + "_W"
      @scratch = true
      @step_anime = true
      @time = TIME_LIMIT + 1
    elsif @time < TIME_LIMIT
      @scratch = false
      @step_anime = false
    end
    # 角色动画待机时间 end <---- myself #
  when 2
        move_down
        # ----待机动画 ---- #
        @time = 0
        @scratch = false
        @character_name = @old_pic
        # ----待机动画 ---- #
      when 4
        move_left
        # ----待机动画 ---- #
        @time = 0
        @scratch = false
        @character_name = @old_pic
        # ----待机动画 ---- #
      when 6
        move_right
        # ----待机动画 ---- #
        @time = 0
        @scratch = false
        @character_name = @old_pic
        # ----待机动画 ---- #
      when 8
        move_up
        # ----待机动画 ---- #
        @time = 0
        @scratch = false
        @character_name = @old_pic
        # ----待机动画 ---- #
      end
      unless moving?
      # 角色动画待机时间 start <---- myself #
       if @time < TIME_LIMIT
         @time += 1
       end
         #以上三行可替换为: @time += 1 if @time < TIME_LIMIT
      # 角色动画待机时间 end <---- myself #
      end
==================================
好了,以上就是他所增加的代码部分,我基本上是看懂了,但是有两点不明,请各位教我。
1.我将Game_Character (分割定义 1)中增加的time即使去掉,执行游戏也能达到待机动画功能,所以,他所增加的attr_accessor :time好像是没有用的,那他真的是没用的吗?
2.@scratch是什么意思?
3.在Ruby中,随意在代码中增加@***的变量就是全局变量吗?

在这里多谢大家了哦,在线等您回答

此贴于 2008-12-1 18:30:18 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:版主帮忙结贴~

綾川司の姫様<

梦石
0
星屑
50
在线时间
796 小时
注册时间
2007-12-20
回帖
4461

贵宾第3届短篇游戏大赛R剧及RMTV组亚军

发表于 2008-11-30 16:39:04 | 显示全部楼层
time应该是表示在等待了多久(在TIME_LIMIT设置等待帧数)之后,人物变为待机动作。去掉这个变量也能实现,只不过人物一停下来立刻就待机了。@scratch大概是个控制某个功能的变量吧= =在这段脚本里似乎没看到这个变量的实际用途。

全局变量是前面带$的,不是@。
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~

生命即是责任。自己即是世界。
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-26
回帖
519
发表于 2008-11-30 16:46:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-11-28
回帖
56
发表于 2008-11-30 17:07:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部