Project1
标题:
关于事件接触判定问题
[打印本页]
作者:
猫猫~
时间:
2010-9-24 12:12
标题:
关于事件接触判定问题
本帖最后由 猫猫~ 于 2010-9-24 12:13 编辑
1.如何在并行处理事件中判定是否与主角接触?
比如条件分歧:与主角接触:怎么怎么地
└除此之外:怎么怎么地
2.如何判定事件是否接触事件?
3.如何制作悬崖?
比如某事件走到了那里就会播放个掉下去的动画,然后消失?
新手提问,请大虾们指点~
作者:
猫猫~
时间:
2010-9-24 12:18
本帖最后由 猫猫~ 于 2010-9-24 12:35 编辑
哇!看帖不回!不能这样对待新手啊T T
还有哦,是接触,X=X Y=Y那就重合了
用变量判定太麻烦了,有没有简单的?
献出你们的爱心吧
****** ******
********** **********
************* *************
*****************************
*****************************
*****************************
***************************
***********************
*******************
***************
***********
*******
***
*
作者:
ML4455739
时间:
2010-9-24 12:35
不麻烦,而且除了变量至少我想不出来其他招
作者:
猫猫~
时间:
2010-9-24 12:44
本帖最后由 猫猫~ 于 2010-9-24 12:46 编辑
会的'吱'一声,不会的'喵'一声嘛= =
看帖不回什么的最揪心啦~
作者:
zhli667
时间:
2010-9-24 12:57
本帖最后由 zhli667 于 2010-9-24 13:15 编辑
问题1、并行事件页1设自动~写怎么怎么地~~事件页2设开关X为开时~写怎么怎么地~~在事件周围放4个事件~如果接触则开关X为开~~
问题2、在事件周围放的4个事件可以判断了吧~~
问题3、这个设角色移动就可以解决吧![至于动画、惨叫可以随便加吧]
作者:
猫猫~
时间:
2010-9-24 13:03
回复
zhli667
的帖子
方丈,阿弥陀佛~
问题一和二:要是事件会移动捏?
问题三:事件也要顾及,我总不能X=X Y=Y的吧每个事件设进去吧?
作者:
认真的学
时间:
2010-9-24 13:04
本帖最后由 认真的学 于 2010-9-24 13:34 编辑
1、如果是【与主角接触的话】:
事件【脚本】输入以下脚本
$playerx = $game_player.x
$playery = $game_player.y
if Input.press?(Input::UP)
$playery = $game_player.y-1
end
if Input.press?(Input::DOWN)
$playery = $game_player.y+1
end
if Input.press?(Input::LEFT)
$playerx = $game_player.x-1
end
if Input.press?(Input::RIGHT)
$playerx = $game_player.x+1
end
复制代码
(当然不够输的话可以分成几部分,但是一个if一定要对一个同一脚本中的end)
然后条件分歧的脚本输入
$game_map.events[事件编号].x == $playerx&&$game_map.events[事件编号].y == $playery
复制代码
之后就可以写入与主角接触的内容了......
2、这个问题我的方法可能复杂了点,不知道其他的大大们有没有更好的方法......
脚本编辑器找到Game_Character 3,在25左右的increase_steps下插入
falseall
@movedown = true
复制代码
在46行左右的increase_steps下插入
falseall
@moveleft = true
复制代码
在70行左右的increase_steps下插入
falseall
@moveright = true
复制代码
在94行左右的increase_steps下插入
falseall
@movedown = true
复制代码
然后在倒数第二行的下面插入
def falseall
@movedown = false
@moveleft = false
@moveright = false
@moveup = false
end
def getmovedown
return @movedown
end
def getmoveleft
return @moveleft
end
def getmoveright
return @moveright
end
def getmoveup
return @moveup
end
复制代码
接着并行事件,条件分歧脚本插入
($game_map.events[1].x == $game_map.events[2].x+1&&$game_map.events[1].y == $game_map.events[2].y&&$game_map.events[2].getmoveright == true)||($game_map.events[1].x == $game_map.events[2].x-1&&$game_map.events[1].y == $game_map.events[2].y&&$game_map.events[2].getmoveleft == true)||($game_map.events[1].y == $game_map.events[2].y+1&&$game_map.events[1].x == $game_map.events[2].x&&$game_map.events[2].getmovedown == true)||($game_map.events[1].y == $game_map.events[2].y-1&&$game_map.events[1].x == $game_map.events[2].x&&$game_map.events[2].getmoveup == true)
复制代码
(上面的代码中,中括号的1,2可替换为其他的事件编号,但是替换要一致,不能第一个1替换为5后第二个替换为6)
然后就是事件对撞之后如何如何了......
3、将悬崖设为可以通行,然后设置地形标志(比如设置为5),然后变量代入角色的地形标志,之后条件分歧该变量是不是等于5,如果是,就播放动画,角色透明度修改什么的......
作者:
猫猫~
时间:
2010-9-24 13:16
回复
认真的学
的帖子
1.不知道是不是我的方法不对,我是这样用的
挨到我了.png
(45.64 KB, 下载次数: 17)
下载附件
保存到相册
2010-9-24 13:15 上传
结果主角走到哪都显示“挨到我了~~”
作者:
认真的学
时间:
2010-9-24 13:40
关于LZ又提出的事件掉入悬崖,这个实现起来就比较简单:
并行处理条件分歧脚本输入:
$game_map.terrain_tag($game_map.events[事件编号].x, $game_map.events[事件编号].y) == 悬崖的地形标志
复制代码
然后就是掉悬崖......
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1