Project1
标题:
请问一个事件需要占用多个格子该怎么办
[打印本页]
作者:
dongzi416
时间:
2013-10-11 20:43
标题:
请问一个事件需要占用多个格子该怎么办
如题,例如一个切换场景的路很宽,有3格这么宽,我现在需要做的是接触到3个格子中的任意一个就能切换场景,该如何做到?
还比如,一个人很高,占了10个格子,我只要对10个格子中任意一个格子按确定键就能和他对话,该怎么做最容易?
作者:
戴拿
时间:
2013-10-11 20:49
ctrl C+ctrl V
复制粘贴
我觉得路宽只有3不算多。。。
作者:
紫英晓狼1130
时间:
2013-10-11 20:53
多复制几个事件就可以了
作者:
E65
时间:
2013-10-19 13:40
这个我也非常想知道! 比如一只怪占两个...
作者:
天地有正气
时间:
2013-10-19 13:42
把人物放到图块里。
然后设置事件时一个一个拼出来、
作者:
chd114
时间:
2013-10-19 18:18
事件形状脚本···不过那个也有缺陷,必须是方形、菱形之类的形状
作者:
hys111111
时间:
2013-10-20 10:46
本帖最后由 hys111111 于 2013-10-20 17:27 编辑
我看错了,脚本重写一下。
class Game_Character
attr_accessor :fat_x #占格x
attr_accessor :fat_y #占格y
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
alias fat_initialize initialize
def initialize
fat_initialize
@fat_x = 0
@fat_y = 0
end
#--------------------------------------------------------------------------
# ● 可以通行判定
# x : X 坐标
# y : Y 坐标
# d : 方向 (0,2,4,6,8) ※ 0 = 全方向不能通行的情况判定 (跳跃用)
#--------------------------------------------------------------------------
def passable?(x, y, d)
fx = ((@fat_x - 1)/2).to_i
fy = ((@fat_y - 1)/2).to_i
for xx in x-fx..x+fx
for yy in y-fy..y+fy
# 求得新的坐标
new_x = xx + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = yy + (d == 2 ? 1 : d == 8 ? -1 : 0)
# 坐标在地图以外的情况
unless $game_map.valid?(new_x, new_y)
# 不能通行
return false
end
# 穿透是 ON 的情况下
if @through
# 可以通行
return true
end
# 移动者的元件无法来到指定方向的情况下
unless $game_map.passable?(x, y, d, self)
# 通行不可
return false
end
# 从指定方向不能进入到移动处的元件的情况下
unless $game_map.passable?(new_x, new_y, 10 - d)
# 不能通行
return false
end
# 循环全部事件
for event in $game_map.events.values
# 事件坐标于移动目标坐标一致的情况下
if event.x == new_x and event.y == new_y
# 穿透为 ON
unless event.through
# 自己就是事件的情况下
if self != $game_player
# 不能通行
return false
end
# 自己是主角、对方的图形是角色的情况下
if event.character_name != ""
# 不能通行
return false
end
end
end
end
# 主角的坐标与移动目标坐标一致的情况下
if $game_player.x == new_x and $game_player.y == new_y
# 穿透为 ON
unless $game_player.through
# 自己的图形是角色的情况下
if @character_name != ""
# 不能通行
return false
end
end
end
end
end
# 可以通行
return true
end
alias fat_update update
def update
@fat_x = (Bitmap.new("Graphics/Characters/"+self.character_name).width/128).to_i
@fat_y = (Bitmap.new("Graphics/Characters/"+self.character_name).height/128).to_i
fat_update
end
end
复制代码
可以用下肥婆脚本。
它是根据行走图的大小判断格数的。
作者:
imsy
时间:
2013-10-20 10:53
本帖最后由 imsy 于 2013-10-20 10:55 编辑
如果不需要移动的话,用空白的地形标志铺在第三层,然后判断之
仅适用于很宽的路切换场景
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1