注册会员 登录
Project1 返回首页

喵呜喵5的树洞 https://rpg.blue/?291206 [收藏] [复制] [分享] [RSS]

日志

【脚本】对话框光标

热度 10已有 4443 次阅读2014-3-5 14:34 |个人分类:脚本| 对话框

如果只是需要测试脚本的性能的话,可以使用下面这个素材图片,命名为Cursor放到Graphics\System文件夹下后直接载入脚本即可

(请注意:上面这个素材来自恋爱游戏制作大师2,根据EB官方协定,只有拥有Renai2的正版版权才能将这个素材用于RM游戏中)


=begin

===============================================================================

  对话框光标 By喵呜喵5

===============================================================================


【说明】


  允许使用任意图片作为对话框下一句提示的光标


=end

$m5script ||= {};$m5script[:M5MC20140305] = 20140305

module M5MC20140305

#==============================================================================

# 设定部分

#==============================================================================


  FILENAME = "Cursor"


  # 光标图片的文件名,放到Graphics\System文件夹下


  FRAME = 4


  # 光标图片的帧数,只有一张图片并且不需要动画效果这里填写1就好了


  DURA = 10


  # 光标播放动画效果时每张图片的持续时间


  MODE = 2


  # 光标显示模式,1表示固定位置,2表示跟随文字移动


  #当光标显示模式为[固定位置]时:


    POS1 = [491,387]


    # 对话框居下时光标的[X,Y]坐标


    POS2 = [491,239]


    # 对话框居中时光标的[X,Y]坐标


    POS3 = [491,91]


    # 对话框居上时光标的[X,Y]坐标


  #当光标显示模式为[随文字移动]时:


    POSX = 12


    # 光标在左右方向的偏移


    POSY = 12


    # 光标在上下方向的偏移



  Z = 201


  # 光标的Z坐标,当光标遮住某些窗口时请尝试修改这里


  SWI = 1


  # 对应ID的开关打开的时候,不显示光标


#==============================================================================

# 设定结束

#==============================================================================

class Sprite_MessageCursor < Sprite

  def initialize

    super(nil)

    self.z = Z

    self.bitmap = Cache.system(FILENAME)

    self.visible = false

    @duration = @frame = 0

    @width = self.bitmap.width / FRAME

    self.src_rect.set(@frame * @width, 0, @width, self.bitmap.height)

  end

  def update_placement(pos = 2)

    self.x,self.y = pos == 2 ? POS1 : (pos == 1 ? POS2 : POS3)

  end

  def update_placement_plus(orig,pos)

    self.x,self.y = orig

    self.x += pos[:x] + POSX

    self.y += pos[:y] + POSY

  end

  def update

    super

    return unless self.visible

    return @duration -= 1 if @duration > 0

    self.src_rect.set(@frame * @width, 0, @width, self.bitmap.height)

    @duration = DURA

    @frame = (@frame == FRAME - 1) ? 0 : @frame + 1

  end

end

end # M5MC20140305

class Window_Message

  alias m5_20140305_initialize initialize

  def initialize

    m5_20140305_initialize

    @m5_20140305_cursor = M5MC20140305::Sprite_MessageCursor.new

  end

  alias m5_20140305_dispose dispose

  def dispose

    m5_20140305_dispose

    @m5_20140305_cursor.dispose

  end

  alias m5_20140305_update update

  def update

    m5_20140305_update

    @m5_20140305_cursor.update

    return @m5_20140305_cursor.visible = false unless self.open?

    @m5_20140305_cursor.visible = self.pause

    @m5_20140305_cursor.visible = false if $game_switches[M5MC20140305::SWI]

  end

  if M5MC20140305::MODE == 1

    alias m5_20140305_update_placement update_placement

    def update_placement

      m5_20140305_update_placement

      @m5_20140305_cursor.update_placement(@position)

    end

  else # M5MC20140305::MODE != 1

    alias m5_20140416_new_page new_page

    def new_page(text, pos)

      m5_20140416_new_page(text, pos)

      @m5_20140305_cursor.update_placement_plus([self.x,self.y],pos)

    end

    alias m5_20140416_process_normal_character process_normal_character

    def process_normal_character(c, pos)

      m5_20140416_process_normal_character(c, pos)

      @m5_20140305_cursor.update_placement_plus([self.x,self.y],pos)

    end

    alias m5_20140416_process_draw_icon process_draw_icon

    def process_draw_icon(icon_index, pos)

      m5_20140416_process_draw_icon(icon_index, pos)

      @m5_20140305_cursor.update_placement_plus([self.x,self.y],pos)

    end

  end

end

2

鸡蛋

鲜花

刚表态过的朋友 (2 人)

发表评论 评论 (7 个评论)

回复 sashitian 2014-6-22 17:34
真的很感谢!每次来这边都能找到好东西!这个非常有用!
回复 kymcz79608 2016-9-2 20:02
要怎么改在右下角...我怕乱改会破坏脚本
回复 喵呜喵5 2016-9-2 20:06
kymcz79608: 要怎么改在右下角...我怕乱改会破坏脚本
修改脚本设置部分的 POS1 POS2 POS3
回复 冰冷水藍 2018-11-15 03:41
請問有無VX可用的版本?
回复 喵呜喵5 2018-11-15 09:55
冰冷水藍: 請問有無VX可用的版本?
并没有
回复 chanszeman1018 2020-2-12 00:14
請問我這邊測試時,那個白色小箭頭沒有消失喔,是要自行ps windowskin嗎?
回复 喵呜喵5 2020-2-12 10:50
chanszeman1018: 請問我這邊測試時,那個白色小箭頭沒有消失喔,是要自行ps windowskin嗎?
自己PS,或者搜索一下代码中的
@m5_20140305_cursor = M5MC20140305::Sprite_MessageCursor.new
在这下面插入这段代码
self.arrows_visible = false

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

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

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

GMT+8, 2024-5-8 01:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部