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

Project1

 找回密码
 注册会员
搜索
查看: 162|回复: 7

[有事请教] 如何隐藏特定地图块

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2073
在线时间
857 小时
注册时间
2013-3-28
帖子
343

开拓者

发表于 2020-2-1 15:40:41 | 显示全部楼层 |阅读模式

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

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

x
改变某个其他地图块的通行判定用

例如原本一面墙是不可通行的,但是在第3图层画上该特定地图块后变得可通行,在地图编辑器中该地图块可见,但是在游戏中不可见

Lv3.寻梦者

梦石
0
星屑
2715
在线时间
1509 小时
注册时间
2006-5-5
帖子
2733
发表于 2020-2-1 16:43:09 | 显示全部楼层
用事件来解决

点评

事件太麻烦了,想用脚本一次性解决  发表于 2020-2-1 16:59
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6992
在线时间
768 小时
注册时间
2016-9-20
帖子
557
发表于 2020-2-1 18:58:44 | 显示全部楼层
本帖最后由 ppspssss 于 2020-2-1 19:00 编辑

# 地图通行度显示 by @fux2 ,http://rpg.blue/?65553
RUBY 代码复制打印
  1. # XP,VX通用,游戏中按F5开启通行显示,可以自由修改
  2.  
  3. $showpass = false
  4. $fuxver = self
  5. module Fux2
  6.   BUTTON = "F5" # 快捷键,在游戏中按下开启本脚本功能
  7.   VER = $fuxver ? "VX" : "XP"
  8.   OPACITY = 150 # 显示通行度图层的透明度(0-255)
  9.  
  10.  
  11.   # 下面请勿随意修改
  12.   BLOCK = {"XP"=>{2=>["↓",8,8],4=>["←",0,0],6=>["→",16,0],8=>["↑",8,-8]},
  13.            "VX"=>{2=>["",0,0],4=>["",0,0],6=>["",0,0],0x08=>["",0,0]}}
  14.   SET = {"VX"=>[8,Color.new(255,0,0,OPACITY),[1]],"XP"=>[4,Color.new(100,0,100,OPACITY),[2,4,6,8]]}
  15. end
  16.  
  17. class Spriteset_Map
  18.  
  19.   include Fux2
  20.  
  21.   alias:ini:initialize
  22.   def initialize
  23.     @passble = Sprite.new
  24.     @passble.z = 99999999
  25.     @passble.x = -$game_map.display_x/4
  26.     @passble.y = -$game_map.display_y/4
  27.     @passble.bitmap = Bitmap.new($game_map.width*32,$game_map.height*32)
  28.     @passble.bitmap.font.size = 16
  29.     @passble.bitmap.font.color = Color.new(255,255,255,200)
  30.     for px in 0...$game_map.width
  31.       for py in 0...$game_map.height
  32.         temp = []
  33.         SET[VER][2].each do |i|
  34.           temp << i if $game_map.passable?(px,py,i)
  35.         end
  36.         if temp == SET[VER][2]
  37.           @passble.bitmap.fill_rect(px*32,py*32,32,32,Color.new(0,0,255,OPACITY))
  38.         elsif temp == []
  39.           @passble.bitmap.fill_rect(px*32,py*32,32,32,Color.new(255,0,0,OPACITY))
  40.         else
  41.           @passble.bitmap.fill_rect(px*32,py*32,32,32,SET[VER][1])
  42.           temp.each do |j|
  43.             @passble.bitmap.draw_text(px*32+BLOCK[VER][j][1],py*32+BLOCK[VER][j][2],32,32,BLOCK[VER][j][0])
  44.           end
  45.         end
  46.       end
  47.     end
  48.     ini
  49.   end
  50.  
  51.   alias:ud:update
  52.   def update
  53.     ud
  54.     @passble.visible = $showpass
  55.     @passble.x = -$game_map.display_x/SET[VER][0]
  56.     @passble.y = -$game_map.display_y/SET[VER][0]
  57.     @passble.update
  58.   end
  59.  
  60.   alias:dis:dispose
  61.   def dispose
  62.     dis
  63.     @passble.dispose
  64.   end
  65.  
  66. end
  67.  
  68. class Scene_Map
  69.  
  70.   alias:ud:update
  71.   def update
  72.     ud
  73.     eval("$showpass = !$showpass if Input.trigger?(Input::#{Fux2::BUTTON})")
  74.   end
  75.  
  76. end
  77.  
  78. # rpg.blue

点评

你可能理解错我的意思了~我想让该图块只有在地图编辑器中看见,在游戏中不可见  发表于 2020-2-2 00:02
这个放到现在来看实现其实挺差劲的,为了照顾全版本;实际上最优的方法是上面再叠一层tilemap可以解决效率问题  发表于 2020-2-1 19:13
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
23190
在线时间
2564 小时
注册时间
2006-11-10
帖子
5907
发表于 2020-2-2 13:08:53 | 显示全部楼层
用PS, 把你要的图块加上颜色, 然后地图画完后, 再把这个图块的颜色清除掉变成空白不就行了
祥瑞御免 ,家宅平安
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2397
在线时间
185 小时
注册时间
2019-9-16
帖子
223
发表于 2020-2-10 04:12:21 | 显示全部楼层
这还不简单吗?加个空事件就行了啊!

QQ图片20200210040945.png

如图1,角色图片不要选,然后游戏中就什么也看不见,但是过不去。

QQ截图20200210041019.png

第二张事件页弄上你想要改变的开关,然后下面选上允许穿透。这样满足特定条件人物就能过去了。

评分

参与人数 1+1 收起 理由
taeckle + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2020-3-31 04:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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