Project1
标题:
范围判定不能,求解……
[打印本页]
作者:
fux2
时间:
2010-11-1 15:31
标题:
范围判定不能,求解……
本帖最后由 fux2 于 2010-11-1 21:19 编辑
我在游戏里调用skillattack(32,0,30,64)
定义如下:
def skillattack(zx,zy,zw,zh)
for ev in $game_map.events.values
if ev.name.include?("Mob")
if @direction == 6
zx = $game_player.x + zx
# zy = $game_player.y + zy
else
zx = $game_player.x - zx - zw + 32
# zy = $game_player.y - zy - zh + 32
end
if ev.x <= zx + zw and ev.x + 32 >= zx #and ev.y <= zy + zh and ev.y + 32 >= zy
ev.m = false
ev.pattern = ev.original_pattern
ev.zt = 3
ev.wait_count = 30
Audio.se_play("Audio/SE/9400112h", 100, 100)
if ev.m == false
ev.picname += "teng02001-0201"
end
end
end
end
end
复制代码
我想实现的是如果怪物在以zx,zy为原点,zw,zh为高宽的范围内,则执行后面的代码
但是,测试起来发现只要怪物在角色面朝的方向,就会执行后面的代码,求解~~~
作者:
bsyjfc
时间:
2010-11-1 16:26
提示:
作者被禁止或删除 内容自动屏蔽
作者:
fux2
时间:
2010-11-1 19:31
我擦一户口本儿的泪啊!我这个ID一共发过18个提问帖,只有3个没有沉....
作者:
orochi2k
时间:
2010-11-1 19:50
本帖最后由 orochi2k 于 2010-11-1 19:53 编辑
果断欺负一下那堆+32~~~+20~~~之类的东东……
偶咋记得EVENT.X和EVENT.Y都没那么大来着……
不过偶来玩距离计算的话貌似会直接邪恶地勾股定理……
作者:
wbsy8241
时间:
2010-11-1 19:52
本帖最后由 wbsy8241 于 2010-11-1 19:56 编辑
if @direction == 6
...
else
...
end
if ev.x <= zx + zw and ev.x + 20 >= zx
....
end
复制代码
下面IF的位置和上面的没关系的吧.
上面怎么判断下面的都会判断的.
还有啊 .x .y是坐标 1个屏幕最大也就x = 20 y =15
zh = 64 那就是攻击范围4个屏幕还要大的范围?
作者:
seasoneast
时间:
2010-11-1 20:52
回复
fux2
的帖子
有关zy的代码不是都被#注释掉了吗……?那样应该只是会判定横坐标吧,所以才朝向怪物就执行吧……?要不试试给zx定某一个值,然后再把怪放在这个值的横坐标外,如果不执行就应该是注释的缘故吧……?
作者:
fux2
时间:
2010-11-1 20:58
回复
seasoneast
的帖子
....zy我有意注释的,我只判断它是否在横坐标范围内,要zy暂时无用。据5楼提醒,是谢特的x与real_x的混淆吧。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1