简易格子地图(DNF/恶魔城式地图)
做剧情途中又摸鱼搞了个系统.... 感觉某个做恶魔城的貌似要这种地图吧XD@89444640除了特殊画面外, 这种地图也适合懒得画大地图的家伙偷懒用=.=....
冲突应该没有, 就一个窗口~
可以一个地图重复利用(SAVE房间)=.= 用变量来做区别
要设置大房间也可以哒~
RUBY 代码
#------------------------------------
# 简易格子地图by 灯笼菜刀酱
MAP_SWI_ID = 1#地图开关ID
MAP_COPY = 1 #重复地图区别变量ID
#====================================================================
$platmap = []
def 打开地图(number)
case number
#===============================================================
#地图设置,
when0
地图 = "map1"#地图图片名称
#地图每个格子坐标 => 对应的地图ID. ↓可以换行,逗号别忘
区号 = {=>1.00,=> 2,=>3,=>3,
=>3,=>1.01,=>4,=>4,=>4,=>4}
#需要不同的地图,就在下面添加
#when 1
#地图 = XXX
#区号 = XXX
#然后事件脚本写: 打开地图(1) 就可以打开新的地图,要关掉地图 事件脚本写 : 关闭地图
#===============================================================
else
地图 = nil
区号 = nil
end
$platmap.push(地图)
$platmap.push(区号)
$mapshow = Window_plat.new
end
def 关闭地图
if$mapshow != nil
$mapshow.dispose
$mapshow = nil
end
end
class Window_plat < Window_Base
def initialize
super(0, 0, 160, 120)
self.contents = Bitmap.new(width - 32, height - 32)
@mapid = 0
setup if$platmap != nil
end
def setup
self.contents = Bitmap.new("Graphics/gameovers/" + $platmap)
@mx = self.contents.width / 16
@my = self.contents.height / 16
refresh
end
def refresh
self.contents.clear
bitmap = RPG::Cache.gameover($platmap)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(0, 0, bitmap, src_rect)
x,y = 0,0
loopdo
铺块(x,y)
if x < @mx
x += 1
elsif y < @my
y += 1
x = 0
elsif x == @mxand y == @my
break
end
end
end
def 铺块(x,y)
returnif$platmap == nil
b = $game_map.map_id
if$platmap[].is_a?(Float)
f = $platmap[] * 100
ifInteger(f) / 100 == b andInteger(f) % 100 == $game_variables
self.ox = x*16 - 57
self.oy = y*16 - 36
return
end
elsif$platmap[] == b
self.ox = x*16 - 57
self.oy = y*16 - 36
return
end
bitmap = RPG::Cache.gameover("outsize")
src_rect = Rect.new(0, 0, 16, 16)
self.contents.blt(x*16, y*16, bitmap, src_rect,128)
end
def update
if@mapid != $game_map.map_idand$platmap != nil
setup
@mapid = $game_map.map_id
end
end
end
地图规格: 长宽无限制, 尽量做成16的倍数看起来比较好看=.=,放到GAME OVER文件夹里(至于为什么放这里? 一般这里就只放一张图片不是么?太浪费了....=v=)
区号坐标设置参考下图, 每小格是16X16
当然也可以这样画,认得这个地图的都是砖工
格式 => 1 #对应的地图ID, 要多次利用的地图后面加上两位小数, 对应 1号变量的值
范例一只~
---------------------
5.13 修复了超过10位数的地图宽度长度会导致计算错误的BUG....
本帖来自P1论坛作者灯笼菜刀王,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=408405若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]