查看: 2001|回复: 7

[已经过期] 新问题来了!不过记得这个问题好像有帖子说明过?

[复制链接]
梦石
0
星屑
50
在线时间
12 小时
注册时间
2016-7-19
回帖
7
发表于 2016-7-25 18:57:21 | 显示全部楼层 |阅读模式

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

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

×
请问怎么让战斗图有生命感? 就是能简单的动起来,像天之痕里面战斗人物和怪物那样会动的, 问题不涉及到横版战斗脚本。
梦石
0
星屑
1788
在线时间
1313 小时
注册时间
2012-8-4
回帖
724
发表于 2016-7-25 23:48:35 | 显示全部楼层
《重生学校》里面用的全动画脚本好像可以达到楼主要的效果,不过动画设置需要图片特殊命名,你可以下那个游戏研究一下
回复

使用道具 举报

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2016-7-26 09:57:42 | 显示全部楼层
请搜索全动画战斗脚本,不过貌似是个坑货
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

梦石
0
星屑
50
在线时间
12 小时
注册时间
2016-7-19
回帖
7
 楼主| 发表于 2016-7-27 00:38:36 | 显示全部楼层
夜狠简单 发表于 2016-7-25 23:48
《重生学校》里面用的全动画脚本好像可以达到楼主要的效果,不过动画设置需要图片特殊命名,你可以下那个游 ...

先谢谢了,不过我是不懂怎么用RMXP打开已经做好的游戏,不是得有Game.rxproj,才能打开看剧本研究吗?

点评

温馨提醒: 1. Game.rxproj可以从别的工程复制过来,通用的 2. 用编辑器打开别人的作品仅可以参考与学习,禁止抄袭与盗用  发表于 2016-7-27 02:06
回复

使用道具 举报

梦石
0
星屑
50
在线时间
12 小时
注册时间
2016-7-19
回帖
7
 楼主| 发表于 2016-7-27 00:45:06 | 显示全部楼层
英顺的马甲 发表于 2016-7-26 09:57
请搜索全动画战斗脚本,不过貌似是个坑货

好哒!我下来看看~

点评

你连贴了,请善用点评功能  发表于 2016-7-27 02:04
回复

使用道具 举报

梦石
0
星屑
96
在线时间
25 小时
注册时间
2016-8-12
回帖
20
发表于 2016-8-12 06:22:17 | 显示全部楼层
本帖最后由 z23567761 于 2016-8-13 03:09 编辑

人物待机动画?
[pre lang="ruby"]#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
#  战斗显示用活动块。Game_Battler 类的实例监视、
# 活动块的状态的监视。
#==============================================================================

class Sprite_Battler < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :battler                  # 战斗者
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     viewport : 显示端口
  #     battler  : 战斗者 (Game_Battler)
  #--------------------------------------------------------------------------
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
    @wait = 0
    @frame = 0
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super
    @wait += 1
    if @wait % 10 == 0
      @frame += 1
    end
    # 战斗者为 nil 的情况下
    if @battler == nil
      self.bitmap = nil
      loop_animation(nil)
      return
    end
    # 文件名和色相与当前情况有差异的情况下 (敌人)
    if @battler.is_a?(Game_Enemy)
      if @battler.battler_name != @battler_name or
         @battler.battler_hue != @battler_hue
        # 获取、设置位图
        @battler_name = @battler.battler_name
        @battler_hue = @battler.battler_hue        
        self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
        @width = bitmap.width
        @height = bitmap.height
        self.ox = @width / 2
        self.oy = @height
        # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
        if @battler.dead? or @battler.hidden
          self.opacity = 0
        end
      end
    end
    # 文件名和色相与当前情况有差异的情况下    (角色)
    if @battler.is_a?(Game_Actor)
      if @battler.battler_name != @battler_name or
         @battler.battler_hue != @battler_hue or
         @frame != @frame_old
        # 获取、设置位图
        @battler_name = @battler.battler_name
        @battler_hue = @battler.battler_hue
        @frame_old = @frame
        bmp = RPG::Cache.battler(@battler_name, @battler_hue)
        rc = Rect.new(@frame % 4 * bmp.width / 4,0,bmp.width / 4,bmp.height)
        if self.bitmap != nil
          self.bitmap.dispose
          self.bitmap = nil
        end
        self.bitmap = Bitmap.new(bmp.width / 4,bmp.height)
        self.bitmap.blt(0,0,bmp,rc)
        @width = bitmap.width
        @height = bitmap.height
        self.ox = @width / 2
        self.oy = @height
        # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
        if @battler.dead? or @battler.hidden
          self.opacity = 0
        end
      end
    end
    # 动画 ID 与当前的情况有差异的情况下
    if @battler.damage == nil and
       @battler.state_animation_id != @state_animation_id
      @state_animation_id = @battler.state_animation_id
      loop_animation($data_animations[@state_animation_id])
    end
    # 应该被显示的角色的情况下
    if @battler.is_a?(Game_Actor) and @battler_visible
      # 不是主状态的时候稍稍降低点透明度
      if $game_temp.battle_main_phase
        self.opacity += 3 if self.opacity < 255
      else
        self.opacity -= 3 if self.opacity > 207
      end
    end
    # 明灭
    if @battler.blink
      blink_on
    else
      blink_off
    end
    # 不可见的情况下
    unless @battler_visible
      # 出现
      if not @battler.hidden and not @battler.dead? and
         (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
      end
    end
    # 可见的情况下
    if @battler_visible
      # 逃跑
      if @battler.hidden
        $game_system.se_play($data_system.escape_se)
        escape
        @battler_visible = false
      end
      # 白色闪烁
      if @battler.white_flash
        whiten
        @battler.white_flash = false
      end
      # 动画
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end
      # 伤害
      if @battler.damage_pop
        damage(@battler.damage, @battler.critical)
        @battler.damage = nil
        @battler.critical = false
        @battler.damage_pop = false
      end
      # korapusu
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
        else
          $game_system.se_play($data_system.actor_collapse_se)
        end
        collapse
        @battler_visible = false
      end
    end
    # 设置活动块的坐标
    self.x = @battler.screen_x
    self.y = @battler.screen_y
    self.z = @battler.screen_z
  end
end
[/pre]
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部