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

Project1

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

[已经解决] 请问一个立绘显示的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2015-11-4
帖子
12
跳转到指定楼层
1
发表于 2015-11-21 20:16:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
因为想要立绘站在对话框前,就用了个大大的立绘脚本   对话时立绘会从左边移动过来    想要改成不移动,直接像显示图片一样出来请问可以吗?


#encoding:utf-8
#==============================================================================
# ■ 半身像对话框 by LBQ
#------------------------------------------------------------------------------
#  一个简单的半身像对话框罢了= =
#------------------------------------------------------------------------------
# ■ 用法一览
#     1:如何将半身像应用到游戏中?
#       ——如果想要把一个脸图替换成半身像,则需要找到这个脸图的编号,比如说拉尔
#           夫,就是Actor1的编号0,之后去在Graphics/Busts这个文件夹里面拷贝一个
#           叫做Actor1_0的图像,这个图像会被当做半身像替换原有图像。
#==============================================================================
# 2013.8.25 => 修复存档不能Bug (感谢小刀
#==============================================================================
$imported ||= {}
$imported[:LBQ_Bust]=true

module LBQ
  module Bust
    FOLDER="Busts"
    SUB1=[/【/,    "\\{\\c[6]-- "]
    SUB2=[/】/,    " --\\c[0]\\}"]

    TEXT_FOR_NEXT="[next]"
    TEXT_FOR_END ="[end]"

    INDENT=255 #半身像的缩进
  end
end

module Cache
  def self.busts(filename)
    load_bitmap("Graphics/#{LBQ::Bust::FOLDER}/", filename)
  end
end



class Sprite_Bust < Sprite_Base
  attr_accessor   :bust_graphics
  attr_accessor   :status

  def initialize(vp=nil)
    super(vp)
    @bust_graphics=nil
    @status=:nothing
  end

  def slide_in
    @status=:sliding_in
  end

  def slide_out
    @status=:sliding_out
    if $game_temp.do_not_slide_out
      @status=:slided_out
      set_pos
    end
  end




  def set_pos(slide_in=true)
    self.x=0 - self.bitmap.width
    self.y=Graphics.height-self.bitmap.height

    self.x=0 unless slide_in
  end


  def set_graphics(bust_graphics)
    self.bitmap=Cache.busts(bust_graphics)
  end



  def update
    super
    case @status
    when :nothing
      # Do Nothing
    when :sliding_in
      #Slide In
      self.x+=12
      if self.x>=0
        self.x=0
        @status=:slided_in
      end

    when :sliding_out
      self.x-=12
      if self.x<= -self.bitmap.width
        self.x= -self.bitmap.width
        @status=:slided_out
      end
      #Slide Out
    when :slided_in
      #Slided in
    when :slided_out
      #Sliede out
    end

  end


end



class Game_Temp
  attr_accessor   :bust_name
  attr_accessor   :bust
  attr_accessor   :have_bust
  attr_accessor   :do_not_slide_out

  alias lbq_bust_shot_game_message_init initialize
  def initialize
    lbq_bust_shot_game_message_init
    @bust_name=""
    @bust=nil
    @have_bust=false
    @do_not_slide_out=false
  end




end

class Game_Message
   #--------------------------------------------------------------------------
  # ● 添加内容
  #--------------------------------------------------------------------------
  def add(text)
    new_text=text.gsub(LBQ::Bust::SUB1[0],LBQ::Bust::SUB1[1])
    new_text2=new_text.gsub(LBQ::Bust::SUB2[0],LBQ::Bust::SUB2[1])
    if new_text2.include? LBQ::Bust::TEXT_FOR_NEXT
      new_text2.delete!(LBQ::Bust::TEXT_FOR_NEXT)
      $game_temp.do_not_slide_out=true
    end

    if new_text2.include? LBQ::Bust::TEXT_FOR_END
      new_text2.delete!(LBQ::Bust::TEXT_FOR_END)
      $game_temp.do_not_slide_out=false
    end
    @texts.push(new_text2)
  end
end


class Game_Interpreter
  alias lbq_bust_shot_command_101 command_101
  #--------------------------------------------------------------------------
  # ● 显示文字
  #--------------------------------------------------------------------------
  def command_101
    $game_temp.bust=nil
      unless @params[0].empty?
        if File.exist?("Graphics/#{LBQ::Bust::FOLDER}/#{@params[0]}_#{@params[1]}.png")
          $game_temp.have_bust=true
        else
          $game_temp.have_bust=false
          $game_temp.bust_name=""
        end
      end

    unless @params[3] == 2
      $game_temp.have_bust=false
    end

    if $game_temp.have_bust
      $game_temp.bust_name="#{@params[0]}_#{@params[1]}"
      $game_temp.bust=nil
      $game_temp.bust=Sprite_Bust.new
      $game_temp.bust.set_graphics($game_temp.bust_name)
      $game_temp.bust.z=99999
      unless $game_temp.do_not_slide_out
        $game_temp.bust.set_pos
        $game_temp.bust.slide_in
      else
        $game_temp.bust.set_pos(false)
        $game_temp.bust.slide_in
      end
    end

    lbq_bust_shot_command_101
    if $game_temp.have_bust
        $game_temp.bust.slide_out
        Fiber.yield until $game_temp.bust.status==:slided_out
    end
    $game_temp.have_bust=false
    $game_temp.bust_name=""

  end


  alias lbq_bust_int_update update
  def update
    lbq_bust_int_update
    $game_temp.bust.update unless $game_temp.bust.nil?
  end

end


class Window_Message
  #--------------------------------------------------------------------------
  # ● 获取换行位置
  #--------------------------------------------------------------------------
  def new_line_x
    # 如果有头像
    unless $game_message.face_name.empty?
      value=112
      value=LBQ::Bust::INDENT unless $game_temp.bust_name.empty?
    # 木有
    else
      value=0
    end
    return value
  end
end


class Window_Message
  #--------------------------------------------------------------------------
  # ● 翻页处理
  #--------------------------------------------------------------------------
  def new_page(text, pos)
    contents.clear
    draw_face($game_message.face_name, $game_message.face_index, 0, 0) if $game_temp.bust_name.empty?
    reset_font_settings
    pos[:x] = new_line_x
    pos[:y] = 0
    pos[:new_x] = new_line_x
    pos[:height] = calc_line_height(text)
    clear_flags
  end
end

Lv2.观梦者

梦石
0
星屑
254
在线时间
316 小时
注册时间
2015-7-2
帖子
1747

开拓者

2
发表于 2015-11-21 21:03:23 | 只看该作者
你的注释不全,完整版:
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 半身像对话框 by LBQ
  4. #------------------------------------------------------------------------------
  5. #  一个简单的半身像对话框罢了= =
  6. #------------------------------------------------------------------------------
  7. # ■ 用法一览
  8. #     1:如何将半身像应用到游戏中?
  9. #       ——如果想要把一个脸图替换成半身像,则需要找到这个脸图的编号,比如说拉尔
  10. #           夫,就是Actor1的编号0,之后去在Graphics/Busts这个文件夹里面拷贝一个
  11. #           叫做Actor1_0的图像,这个图像会被当做半身像替换原有图像。
  12. #==============================================================================
  13. $imported ||= {}
  14. $imported[:LBQ_Bust]=true

  15. module LBQ
  16.   module Bust
  17.     FOLDER="Busts"
  18.     SUB1=[/【/,    "\\{\\c[6]-- "]
  19.     SUB2=[/】/,    " --\\c[0]\\}"]

  20.     TEXT_FOR_NEXT="[next]"  #在对话语句末加[next]可以使半身像直接显示而不滚动
  21.     TEXT_FOR_END ="[end]"   #在对话语句末加[end]可以使半身像恢复滚动进入
  22.    
  23.     TEXT_FOR_OFF ="[off]"   #当前对话停用半身像显示
  24.   
  25.         INDENT=96 #半身像的缩进(半身像宽度300,头像宽度96)
  26.    
  27.   end
  28. end

  29. module Cache
  30.   def self.busts(filename)
  31.     load_bitmap("Graphics/#{LBQ::Bust::FOLDER}/", filename)
  32.   end
  33. end



  34. class Sprite_Bust < Sprite_Base
  35.   attr_accessor   :bust_graphics
  36.   attr_accessor   :status

  37.   def initialize(vp=nil)
  38.     super(vp)
  39.     @bust_graphics=nil
  40.     @status=:nothing
  41.   end

  42.   def slide_in
  43.     @status=:sliding_in
  44.   end

  45.   def slide_out
  46.     @status=:sliding_out
  47.     if $game_message.do_not_slide_out
  48.       @status=:slided_out
  49.       set_pos
  50.     end
  51.   end




  52.   def set_pos(slide_in=true)
  53.     self.x=0 - self.bitmap.width
  54.     self.y=Graphics.height-self.bitmap.height

  55.     self.x=0 unless slide_in
  56.   end


  57.   def set_graphics(bust_graphics)
  58.     self.bitmap=Cache.busts(bust_graphics)
  59.   end



  60.   def update
  61.     super
  62.     case @status
  63.     when :nothing
  64.       # Do Nothing
  65.     when :sliding_in
  66.       #Slide In
  67.       self.x+=18     #初始值12
  68.       if self.x>=0
  69.         self.x=0
  70.         @status=:slided_in
  71.     end

  72.     when :sliding_out
  73.       self.x-=18    #初始值12
  74.       if self.x<= -self.bitmap.width
  75.         self.x= -self.bitmap.width
  76.         @status=:slided_out
  77.       end
  78.       #Slide Out
  79.     when :slided_in
  80.       #Slided in
  81.     when :slided_out
  82.       #Sliede out
  83.     end

  84.   end


  85. end


  86. class Game_Message
  87.   attr_accessor   :bust_name
  88.   attr_accessor   :bust
  89.   attr_accessor   :have_bust
  90.   attr_accessor   :do_not_slide_out

  91.   alias lbq_bust_shot_game_message_init initialize
  92.   def initialize
  93.     lbq_bust_shot_game_message_init
  94.     @bust_name=""
  95.     @bust=nil
  96.     @have_bust=false
  97.     @do_not_slide_out=false
  98.   end



  99.   #--------------------------------------------------------------------------
  100.   # ● 添加内容
  101.   #--------------------------------------------------------------------------
  102.   def add(text)
  103.     new_text=text.gsub(LBQ::Bust::SUB1[0],LBQ::Bust::SUB1[1])
  104.     new_text2=new_text.gsub(LBQ::Bust::SUB2[0],LBQ::Bust::SUB2[1])
  105.     if new_text2.include? LBQ::Bust::TEXT_FOR_NEXT
  106.       new_text2.delete!(LBQ::Bust::TEXT_FOR_NEXT)
  107.       $game_message.do_not_slide_out=true
  108.     end
  109.      
  110.     if new_text2.include? LBQ::Bust::TEXT_FOR_END
  111.       new_text2.delete!(LBQ::Bust::TEXT_FOR_END)
  112.       $game_message.do_not_slide_out=false
  113.     end
  114.     #####个人修改
  115.      if new_text2.include? LBQ::Bust::TEXT_FOR_OFF
  116.       new_text2.delete!(LBQ::Bust::TEXT_FOR_OFF)
  117.           $game_message.bust.slide_out
  118.           $game_message.have_bust=false
  119.           $game_message.bust_name=""
  120.     end
  121.   #######个人修改
  122.     @texts.push(new_text2)
  123.   end
  124. end



  125. class Game_Interpreter
  126.   alias lbq_bust_shot_command_101 command_101
  127.   #--------------------------------------------------------------------------
  128.   # ● 显示文字
  129.   #--------------------------------------------------------------------------
  130.   def command_101
  131.     $game_message.bust=nil
  132.       unless @params[0].empty?
  133.         if File.exist?("Graphics/#{LBQ::Bust::FOLDER}/#{@params[0]}_#{@params[1]}.png")
  134.           $game_message.have_bust=true
  135.         else
  136.           $game_message.have_bust=false
  137.           $game_message.bust_name=""
  138.         end
  139.       end

  140.     unless @params[3] == 2
  141.       $game_message.have_bust=false
  142.     end

  143.     if $game_message.have_bust
  144.       $game_message.bust_name="#{@params[0]}_#{@params[1]}"
  145.       $game_message.bust=nil
  146.       $game_message.bust=Sprite_Bust.new
  147.       $game_message.bust.set_graphics($game_message.bust_name)
  148.       $game_message.bust.z=199
  149.       unless $game_message.do_not_slide_out
  150.         $game_message.bust.set_pos
  151.         $game_message.bust.slide_in
  152.       else
  153.         $game_message.bust.set_pos(false)
  154.         $game_message.bust.slide_in
  155.       end
  156.     end

  157.     lbq_bust_shot_command_101
  158.     if $game_message.have_bust
  159.         $game_message.bust.slide_out
  160.         Fiber.yield until $game_message.bust.status==:slided_out
  161.     end
  162.     $game_message.have_bust=false
  163.     $game_message.bust_name=""

  164.   end


  165.   alias lbq_bust_int_update update
  166.   def update
  167.     lbq_bust_int_update
  168.     $game_message.bust.update unless $game_message.bust.nil?
  169.   end

  170. end


  171. class Window_Message
  172.   #--------------------------------------------------------------------------
  173.   # ● 获取换行位置
  174.   #--------------------------------------------------------------------------
  175.   def new_line_x
  176.     value=0
  177.     value=112 unless $game_message.face_name.empty?
  178.     unless $game_message.face_name.empty? && $game_message.bust_name.empty?
  179.       value=LBQ::Bust::INDENT
  180.     end
  181.    
  182.     return value
  183.   end
  184. end


  185. class Window_Message
  186.   #--------------------------------------------------------------------------
  187.   # ● 翻页处理
  188.   #--------------------------------------------------------------------------
  189.   def new_page(text, pos)
  190.     contents.clear
  191.     draw_face($game_message.face_name, $game_message.face_index, 0, 0) if $game_message.bust_name.empty?
  192.     reset_font_settings
  193.     pos[:x] = new_line_x
  194.     pos[:y] = 0
  195.     pos[:new_x] = new_line_x
  196.     pos[:height] = calc_line_height(text)
  197.     clear_flags
  198.   end
  199. end
复制代码
详见第22行注释。
测试你的东方project认知程度?那就来玩[url=https://store.steampowered.com/app/930840/TouHouAsked/]《东方百问》[/url]吧!
东方风自作曲认知企划绝赞咕咕咕中
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2015-11-4
帖子
12
3
 楼主| 发表于 2015-11-21 22:46:33 | 只看该作者
落雪鸦杀 发表于 2015-11-21 21:03
你的注释不全,完整版:详见第22行注释。

谢谢!!

点评

对了,这个是被他人修改过的版本,其中在143行开始你还是找回原来脚本的部分吧。(顺带说一句他人是KB.Driver)  发表于 2015-11-21 22:48
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 00:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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