赞 | 3 |
VIP | 4 |
好人卡 | 4 |
积分 | 1 |
经验 | 8941 |
最后登录 | 2015-8-17 |
在线时间 | 182 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 182 小时
- 注册时间
- 2012-2-11
- 帖子
- 233
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 viktor 于 2012-6-2 01:44 编辑
第二步:Plane类重写 显示可以扩大分辨率的雾图形和全景图
http://rpg.blue/thread-234515-1-1.html
第1步: 在地图上显示通行性和地图标识 的调试用脚本
参考:(传送门已完成)
伪3D脚本(W3D)http://rpg.blue/thread-214379-1-1.html
Kissy的Tilemap http://rpg.blue/forum.php?mod=viewthread&tid=104661
另一种Tilemap http://rpg.blue/thread-234309-1-1.html
@yangff的测试: http://rpg.blue/forum.php?mod=viewthread&tid=177092
Plane类:http://rpg.blue/thread-208355-1-1.html
class Tilemap_Debug < Sprite def initialize(viewport, tilemap) super(viewport) @tilemap = tilemap self.bitmap= Bitmap.new(@tilemap.map_data.xsize * 32, @tilemap.map_data.ysize * 32) self.z=800 refresh end def dispose self.bitmap.dispose if self.bitmap!=nil super end def passable_color return Color.new(64, 192, 64, 64) # green end def non_passable_color return Color.new(255, 72, 0, 64) # red end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh # background mask self.bitmap.fill_rect(0, 0, self.bitmap.width, self.bitmap.height, Color.new(0, 0, 0, 32)) for x in [email]0...@tilemap.map_data.xsize[/email] for y in [email]0...@tilemap.map_data.ysize[/email] draw_mapinfo(x, y) end end end def draw_mapinfo(x, y) # 通行性 self.bitmap.fill_rect(Rect.new(x*32, y*32, 32, 32), $game_map.passable?(x, y, 0) ? passable_color : non_passable_color) # 地图标记。选最大的那个显示 self.bitmap.draw_text(Rect.new(x*32, y*32, 32, 32), $game_map.terrain_tag(x, y).to_s, 1) end end class Spriteset_Map alias viktor_td_update update def update if @td==nil @td=Tilemap_Debug.new(@viewport1, @tilemap) end @td.ox=$game_map.display_x / 4 @td.oy=$game_map.display_y / 4 @td.update viktor_td_update end alias viktor_td_dispose dispose def dispose @td.dispose viktor_td_dispose end end
class Tilemap_Debug < Sprite
def initialize(viewport, tilemap)
super(viewport)
@tilemap = tilemap
self.bitmap= Bitmap.new(@tilemap.map_data.xsize * 32,
@tilemap.map_data.ysize * 32)
self.z=800
refresh
end
def dispose
self.bitmap.dispose if self.bitmap!=nil
super
end
def passable_color
return Color.new(64, 192, 64, 64) # green
end
def non_passable_color
return Color.new(255, 72, 0, 64) # red
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
# background mask
self.bitmap.fill_rect(0, 0, self.bitmap.width, self.bitmap.height,
Color.new(0, 0, 0, 32))
for x in [email]0...@tilemap.map_data.xsize[/email]
for y in [email]0...@tilemap.map_data.ysize[/email]
draw_mapinfo(x, y)
end
end
end
def draw_mapinfo(x, y)
# 通行性
self.bitmap.fill_rect(Rect.new(x*32, y*32, 32, 32),
$game_map.passable?(x, y, 0) ? passable_color : non_passable_color)
# 地图标记。选最大的那个显示
self.bitmap.draw_text(Rect.new(x*32, y*32, 32, 32),
$game_map.terrain_tag(x, y).to_s, 1)
end
end
class Spriteset_Map
alias viktor_td_update update
def update
if @td==nil
@td=Tilemap_Debug.new(@viewport1, @tilemap)
end
@td.ox=$game_map.display_x / 4
@td.oy=$game_map.display_y / 4
@td.update
viktor_td_update
end
alias viktor_td_dispose dispose
def dispose
@td.dispose
viktor_td_dispose
end
end
|
|