扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 95|回复: 0

[转载发布] 搓了一个地图显示功能

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    2026-1-10 10:26
  • 签到天数: 171 天

    连续签到: 1 天

    [LV.7]常住居民III

    2554

    主题

    660

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    15994
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    19236

    灌水之王

    发表于 昨天 00:14 | 显示全部楼层 |阅读模式
    类似于地图名显示,但加了一些功能,字体修改之类的,还加了各种地图风格的外观修改(?)
    以下是代码RUBY 代码
    1. #传送到目的地时目的地名显示并维持一段时间再消失
    2. #另外内容:地图特有的风格显示(?)
    3. #示例:地图名显示:测试地图(主要的地图名显示),2(需要的图片名的号数),测试中.....(下面的小标题)
    4. module Show_Map_Set
    5.         Note=/地图名显示[::](\S+)/
    6.         Text_Font_Size=90
    7.         #地图名未设置不会显示
    8.         Text_Font_Name="kaiti"#地图名字体
    9.         Title_Font_Name=""#地图描述字体名
    10.         Title_Font_Size=20
    11.         Map_Border=90
    12.         Time_Set=125#保留的帧数
    13. end
    14. class Game_Map
    15.         def map_set_note
    16.                 @map.note=~ Show_Map_Set::Note ? note=$1 : note= nil
    17.                 returnnilunless !note.nil?
    18.                 note_l=note.split(/\s*,\s*/)
    19.         end
    20. end
    21. class Window_Base < Window
    22.   def draw_mapborder_set(name,index, x, y, enabled = true)
    23.     bitmap = Cache.system("map_border"+name)
    24.                 size=Show_Map_Set::Map_Border
    25.     rect = Rect.new(index % 2 * size, index / 2 * size, size, size)
    26.     contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
    27.   end
    28. end
    29. class Window_Mapset_Show < Window_Base
    30.   def initialize
    31.     super(0,80, Graphics.width, Graphics.height/2)
    32.     self.opacity = 0
    33.     self.contents_opacity = 0
    34.     @show_count = 0
    35.     refresh
    36.   end
    37.   def close
    38.     @show_count = 0
    39.     self
    40.   end
    41.   defopen
    42.     refresh
    43.     @show_count = Show_Map_Set::Time_Set
    44.     self.contents_opacity = 0
    45.     self
    46.   end
    47.   def update
    48.     super
    49.     if@show_count > 0 && $game_map.name_display
    50.       update_fadein
    51.       @show_count -= 1
    52.     else
    53.       update_fadeout
    54.     end
    55.   end
    56.   #--------------------------------------------------------------------------
    57.   # ● 更新淡入
    58.   #--------------------------------------------------------------------------
    59.   def update_fadein
    60.     self.contents_opacity += 16
    61.   end
    62.   #--------------------------------------------------------------------------
    63.   # ● 更新淡出
    64.   #--------------------------------------------------------------------------
    65.   def update_fadeout
    66.     self.contents_opacity -= 16
    67.   end
    68.         def map_text_font
    69.                 contents.font.name=Show_Map_Set::Text_Font_Name
    70.                 contents.font.size=Show_Map_Set::Text_Font_Size
    71.         end
    72.         def title_text_font
    73.                 contents.font.name=Show_Map_Set::Title_Font_Nameif !Show_Map_Set::Title_Font_Name.empty?
    74.                 contents.font.size=Show_Map_Set::Title_Font_Size
    75.         end
    76.   def refresh
    77.     contents.clear
    78.                 map_text_font
    79.                 note=$game_map.map_set_note
    80.     unless note[0].empty?
    81.                         if note.size>1
    82.                                 size=note[0].size
    83.                                 rect_1=text_size(note[0])
    84.                                 rect_2=contents.rect
    85.                                 draw_mapborder_set(note[1],0, rect_1.width-(note[0].size-1)*90, rect_1.height-30, enabled = true)
    86.                                 draw_mapborder_set(note[1],1, rect_1.width+90, rect_1.height-30, enabled = true)
    87.                                 if !note[2].nil? || !note[2].empty?
    88.                                         title_rect=Rect.new(rect_2.x,rect_2.y+50,rect_2.width,rect_2.height)
    89.                                         draw_text(rect_2, note[0], 1)
    90.                                         p rect_1
    91.                                         title_text_font
    92.                                         draw_text(title_rect, note[2], 1)
    93.                                 else
    94.                                         draw_text(rect, note[0], 1)
    95.                                 end
    96.                         else
    97.                                 draw_text(rect, note[0], 1)
    98.                         end
    99.     end
    100.   end
    101. end
    102. class Scene_Map < Scene_Base
    103.   alias create_all_windows_mapset create_all_windows
    104.         def create_all_windows
    105.                 create_all_windows_mapset
    106.                 create_mapset_show_window
    107.         end
    108.         def create_mapset_show_window
    109.     @mapset_show_window = Window_Mapset_Show.new
    110.         end
    111.         alias post_transfer_mapset post_transfer
    112.   def post_transfer
    113.     post_transfer_mapset
    114.                 @mapset_show_window.open
    115.   end
    116.         alias pre_transfer_mapset pre_transfer
    117.   def pre_transfer
    118.     @mapset_show_window.close
    119.     pre_transfer_mapset
    120.   end
    121. end
    复制代码

    然后用鼠标抽象的画了个图()
                本帖来自P1论坛作者chen12311,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=498520  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-1-27 09:56 , Processed in 0.134601 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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