Project1
标题:
关于图块的覆盖模式!
[打印本页]
作者:
Hjdie
时间:
2011-1-11 22:25
标题:
关于图块的覆盖模式!
本帖最后由 Hjdie 于 2011-1-12 20:08 编辑
不好描述。就上图吧
未命名.jpg
(11.99 KB, 下载次数: 26)
下载附件
保存到相册
2011-1-11 22:25 上传
这个是画的时候。
未命名2.jpg
(7.18 KB, 下载次数: 28)
下载附件
保存到相册
2011-1-11 22:25 上传
进入游戏后。
嗯。在XP里我知道自动原件可以把那些柱子全部自动挡住。
那么VX里有没有这种功能呢?
作者:
诡异の猫
时间:
2011-1-11 22:34
回复
Hjdie
的帖子
不要画柱子下面那一块不就行了- -
作者:
px.凤翔九天
时间:
2011-1-11 22:50
我倒觉得是你的柱子的图层比自动原件的墙高...所以挡不住的...
作者:
塞巴斯特
时间:
2011-1-11 23:10
还不简单,如果想元件挡住建筑,就是先画建筑,后画元件,这样就可以挡住。
相反,想挡住元件,就是先画元件,再画建筑物。
作者:
qllmkaen
时间:
2011-1-11 23:20
#==============================================================================
# ■ VX图层无穷无尽
#------------------------------------------------------------------------------
# 原作BY:S. F. LaValle 翻译、修改BY:仲秋启明
# 使用方法:在子地图名的最后加上“LX”(X为第几添加层)
#==============================================================================
class Scene_Map < Scene_Base
alias start_2 start
alias update_2 update
attr_reader :map_layer_spritesets
def start
start_2
setup_map_layers
end
def update_transfer_player
return unless $game_player.transfer?
fade = (Graphics.brightness > 0)
fadeout(30) if fade
@spriteset.dispose
for i in 0...@map_layer_spritesets.size
@map_layer_spritesets[i].dispose
end
$game_player.perform_transfer
$game_map.autoplay
$game_map.update
Graphics.wait(15)
@spriteset = Spriteset_Map.new
setup_map_layers
fadein(30) if fade
Input.update
end
def setup_map_layers
maps = load_data("Data/MapInfos.rvdata")
game_map_name = maps[$game_map.map_id].name
@map_layers = []
@map_layer_spritesets = []
map_names = []
layer_map_names = []
layer_index = []
c = maps.keys
d = c.max
for i in 1..d
unless maps[i] == nil
a = nil
map_names.push(maps[i].name)
a = maps[i].name =~ /(l|L)\d+/
layer_map_names.push(maps[i].name) if a != nil
layer_index.push(maps.index(maps[i])) if a != nil
end
end
for string in layer_map_names
string.chop! until string == game_map_name or string == ""
end
if layer_map_names.include?(game_map_name)
for i in 0...layer_map_names.size
if layer_map_names[i] != ""
map = Game_Map.new
map.setup(layer_index[i])
@map_layer_spritesets.push(Spriteset_Map_2.new(map))
@map_layers.push(map)
end
end
end
end
def update
update_2
for i in 0...@map_layer_spritesets.size
@map_layers[i].update
@map_layer_spritesets[i].update
end
end
end
class Spriteset_Map_2 < Spriteset_Map
def initialize(layer)
@layer = layer
create_viewports
create_tilemap
update
end
def update
update_tilemap
update_viewports
end
def dispose
@tilemap.dispose
end
def create_tilemap(a1 = nil, a2 = nil, a3 = nil, a4 = nil, a5 = nil, b = nil, c = nil, d = nil, e = nil)
@tilemap = Tilemap.new(@viewport1)
@tilemap.bitmaps[0] = (a1 == nil ? Cache.system("TileA1") : a1)
@tilemap.bitmaps[1] = (a2 == nil ? Cache.system("TileA2") : a2)
@tilemap.bitmaps[2] = (a3 == nil ? Cache.system("TileA3") : a3)
@tilemap.bitmaps[3] = (a4 == nil ? Cache.system("TileA4") : a4)
@tilemap.bitmaps[4] = (a5 == nil ? Cache.system("TileA5") : a5)
@tilemap.bitmaps[5] = (b == nil ? Cache.system("TileB") : b)
@tilemap.bitmaps[6] = (c == nil ? Cache.system("TileC") : c)
@tilemap.bitmaps[7] = (d == nil ? Cache.system("TileD") : d)
@tilemap.bitmaps[8] = (e == nil ? Cache.system("TileE") : e)
@tilemap.map_data = @layer.data
@tilemap.passages = @layer.passages
end
def update_viewports
@viewport1.tone = @layer.screen.tone
@viewport1.ox = @layer.screen.shake
@viewport2.color = @layer.screen.flash_color
@viewport3.color.set(0, 0, 0, 255 - @layer.screen.brightness)
@viewport1.update
@viewport2.update
@viewport3.update
end
end
复制代码
把要覆盖的画在顶层的图层
作者:
木葬枫
时间:
2011-1-12 11:45
画的时候不画出来不就好了- -!
作者:
死伤殆尽
时间:
2011-1-12 12:02
画的时候就别画柱子下面那个图块啊笨蛋,居然还有人拿脚本出来,你们到底怎么想的啊
作者:
Hjdie
时间:
2011-1-12 20:05
本帖最后由 Hjdie 于 2011-1-12 20:06 编辑
首先我解释下为什么要把墙下面的画出来。
如果你不画墙下面的柱子。那么角色走过去。就可以畅通无阻的走过去。那么我们露出来的柱子是怎么一回事?是蛋痛吗?虽然说游戏是虚假的世界。但是也得有些常人可以接受的定理啊。难道你在游戏世界里。你发现自己走过去的一个地方上面有个柱子。你会怎么想。我一定会想。“这是那个XX美术的杰作啊。这么XX。”
然后感谢给出脚本的同学。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1