设为首页 收藏本站
登录 /立即注册 /找回密码

URPGs

快捷导航
  • 门户Portal
  • 论坛BBS
  • 群组Group
  • 导读Guide
  • 家园Space
  • 工具Tools
  • 广播Follow
  • 期刊Periodical
  • 排行榜Ranklist
  • 社区茶坊
  • pixlr图片编辑
  • 资源列表
  • photobucket
  • RMVA Lite [In English]
  • RM RTP
  • TryRUBY
  • RMXP+RMVX下载[VeryCD]
  • RMVA下载[66RPG]
搜索
  • 本版
  • 帖子
  • 用户
URPGs»论坛 › 技术讨论 › 技术讨论 › 月夜响荡曲的地图遮盖,有更新
返回列表 发新帖
查看: 4891|回复: 4

[RMVA 技术讨论] 月夜响荡曲的地图遮盖,有更新

[复制链接]
翎·仲秋
翎·仲秋 当前离线
积分
219
查看详细资料 窥视卡 雷达卡
发表于 2014-5-29 20:40:34 | 显示全部楼层 |阅读模式
借助两张原游戏的图说明效果
  1. #==============================================================================
  2. # 月夜响荡曲的地图遮盖
  3. # BY:仲秋      感谢:Sion,LBQ
  4. #==============================================================================
  5. # 使用方法:
  6. # 1、事件名称叫做“MapMask”
  7. # 2、注释中写入【"R, G, B"】颜色,注意空格,可以不写,默认0, 0, 0
  8. # 3、同行写入【(X1, Y1, X2, Y2)】的数字,1是地图中的开始位置,2是结束位置,注意空格
  9. #    这个是覆盖的方块效果
  10. # 4、同行写入【[X1, Y1, X2, Y2]】的数字,1是地图中的开始位置,2是结束位置,注意空格
  11. #    这是在哪个区域内遮盖层透明,可以显示被遮盖的地点
  12. # 5、同行写入【{X1, Y1, X2, Y2}】的数字,1是地图中的开始位置,2是结束位置,注意空格
  13. #    这是在4的设定之下在这个区域内遮盖层不透明,用做墙壁(?)
  14. #==============================================================================
  15. # 修改处:Spriteset_Map:initialize重新定义
  16. #                      update增加定义
  17. #        Scene_Map:perform_transfer重新定义
  18. #==============================================================================
  19. # ■ Spriteset_Map
  20. #==============================================================================
  21. class Spriteset_Map
  22.   #--------------------------------------------------------------------------
  23.   # ● 初始化对象
  24.   #--------------------------------------------------------------------------
  25.   def initialize
  26.     create_viewports
  27.     create_tilemap
  28.     create_parallax
  29.     create_characters
  30.     create_shadow
  31.     create_weather
  32.     create_pictures
  33.     create_timer
  34.     @mask_sprites = []
  35.     $game_map.events.values.each do |event|
  36.       if event.name==("MapMask")
  37.       for list in event.list
  38.       if list.code == 108
  39.        parameter = list.parameters[0]
  40.        if parameter != nil
  41.          if parameter[/"(\d+), (\d+), (\d+)"/]
  42.           color = Color.new($1.to_i, $2.to_i, $3.to_i)
  43.          else
  44.           color = Color.new(0, 0, 0)
  45.          end
  46.        sprite = Sprite.new(@viewport1)
  47.        parameter[/\((\d+), (\d+), (\d+), (\d+)\)/]
  48.        sprite.x = $1.to_i*32+16
  49.        sprite.y = $2.to_i*32+16
  50.        sprite.z = 2000
  51.        sprite.bitmap = Bitmap.new(($3.to_i - $1.to_i)*32, ($4.to_i - $2.to_i)*32)
  52.        sprite.bitmap.fill_rect(0, 0, sprite.bitmap.width,sprite.bitmap.height, color)
  53.        if parameter[/<(\d+), (\d+), (\d+), (\d+)>/]
  54.           sprite.bitmap.fill_rect($1.to_i * 32 - sprite.x + 16,
  55.           $2.to_i * 32 - sprite.y + 16, ($3.to_i - $1.to_i) * 32,
  56.           ($4.to_i - $2.to_i) * 32, Color.new(0, 0, 0, 0))
  57.        end
  58.        parameter[/\[(\d+), (\d+), (\d+), (\d+)\]/]
  59.        mask = [sprite, [$1.to_i, $2.to_i, $3.to_i, $4.to_i],[]]
  60.        if parameter[/{(\d+), (\d+), (\d+), (\d+)}/]
  61.           mask[2] = [$1.to_i, $2.to_i, $3.to_i, $4.to_i]
  62.        end
  63.        if (mask[1][0]..mask[1][2]) === $game_player.x and
  64.           (mask[1][1]..mask[1][3]) === $game_player.y and
  65.           (mask[2].empty? or
  66.           not ((mask[2][0]..mask[2][2]) === $game_player.x and
  67.           (mask[2][1]..mask[2][3]) === $game_player.y))
  68.           mask[0].opacity = 0
  69.        else
  70.           mask[0].opacity = 255
  71.        end
  72.      end
  73.      @mask_sprites.push(mask)
  74.      end;end;end
  75.     end
  76.     update
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 更新画面
  80.   #--------------------------------------------------------------------------
  81.   alias hehe_update update
  82.   def update
  83.     hehe_update
  84.     $game_map.events.values.each do |event|
  85.     if event.name==("MapMask")
  86.     for list in event.list
  87.     if list.code == 108
  88.     for mask in @mask_sprites
  89.       mask[0].ox = $game_map.display_x*32
  90.       mask[0].oy = $game_map.display_y*32
  91.       if (mask[1][0]..mask[1][2]) === $game_player.x and
  92.           (mask[1][1]..mask[1][3]) === $game_player.y and
  93.           (mask[2].empty? or
  94.           not ((mask[2][0]..mask[2][2]) === $game_player.x and
  95.           (mask[2][1]..mask[2][3]) === $game_player.y))
  96.          mask[0].opacity -= 16 if mask[0].opacity > 0
  97.       else
  98.          mask[0].opacity += 8 if mask[0].opacity < 255
  99.       end
  100.     end
  101.   end;end;end;end
  102. end
  103. end
  104. #==============================================================================
  105. # ■ Scene_Map
  106. #==============================================================================
  107. class Scene_Map < Scene_Base
  108.   #--------------------------------------------------------------------------
  109.   # ● 处理场所移动
  110.   #--------------------------------------------------------------------------
  111.   def perform_transfer
  112.     pre_transfer
  113.     @spriteset.dispose
  114.     $game_player.perform_transfer
  115.     @spriteset = Spriteset_Map.new
  116.     post_transfer
  117.   end
  118. end
复制代码

为防止看不懂使用方法,特意传一张使用方法图
  1. attr_reader   :name
复制代码
这句要加到Game_Event里,我忘放里了
然后
  1. @name = @event.name
复制代码
这句加在Game_Event里initialize的
  1. @event = event
复制代码
下面
游戏

本帖子中包含更多资源

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

×

评分

参与人数 1银币 +10 经验 +10 收起 理由
水终结者 + 10 + 10 支持一下,尽管不用VA

查看全部评分

相关帖子

  • • 在Steam版RM中如何关闭「在游戏进行时访问 Steam 社区。」提示
  • • 免DLL保存截图
  • • 求游戏剧情师
  • • 【神坑】 LBQ的游戏OST坑
  • • 【VX/VA】仲秋启明三合一美化工程
  • • 带坑的游戏,可以试试吧
  • • 精灵牧场 - 功能索引贴
  • • 看大家都在撸MC于是我来推荐个游戏好了(附福利
回复

使用道具 举报

  • 提升卡
  • 置顶卡
  • 沉默卡
  • 喧嚣卡
  • 变色卡
  • 抢沙发
  • 千斤顶
  • 显身卡
BS包仔
BS包仔 当前离线
积分
68
查看详细资料 窥视卡 雷达卡
发表于 2014-5-29 22:24:20 | 显示全部楼层
哇,特别炫酷

点评

翎·仲秋
有更新了,昨天忘加的东西加里了  发表于 2014-5-30 16:06
回复 Like Dislike

使用道具 举报

  • 显身卡
水终结者
水终结者 当前离线
积分
25
查看详细资料 窥视卡 雷达卡
发表于 2014-5-30 16:25:23 | 显示全部楼层
看截图像是XP的,但是事件页怎么会是VA的?

点评

翎·仲秋
原游戏《月夜响荡曲》是XP的,直接在游戏里截图了  发表于 2014-5-30 18:41
回复 Like Dislike

使用道具 举报

  • 显身卡
水终结者
水终结者 当前离线
积分
25
查看详细资料 窥视卡 雷达卡
发表于 2014-5-31 09:04:01 | 显示全部楼层
那有XP 的脚本么?
回复 Like Dislike

使用道具 举报

  • 显身卡
翎·仲秋
翎·仲秋 当前离线
积分
219
查看详细资料 窥视卡 雷达卡
 楼主| 发表于 2014-5-31 10:29:08 | 显示全部楼层
水终结者 发表于 2014-5-31 09:04
那有XP 的脚本么?

XP只要把和VA一样的地方改成XP的就行
回复 Like Dislike

使用道具 举报

  • 显身卡
返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|意见反馈[feedback]| URPGs RPG Maker 游戏制作讨论

GMT+8, 2025-5-9 14:31 , Processed in 0.033474 second(s), 14 queries .

Powered by Discuz! X3.5

© 2011-2019 URPGs (Discuz! X3.4 © 2001-2019 Comsenz Inc.)

积分 0, 距离下一级还需 积分
快速回复 返回顶部 返回列表