本帖最后由 金芒芒 于 2024-9-13 07:26 编辑 魔法丶小肉包 发表于 2024-9-12 19:38 RUBY 代码复制
|
金芒芒 发表于 2024-9-12 16:11 你这段可不可以放进去测试一下就知道了,这里详细说一下楼上我给你的思路 1.你在Game_Event里新写一个实例变量记录一个时间,初始值为nil RUBY 代码复制
2.在创建坑事件的时候给这个实例变量赋值(可以使用rand来赋予每个事件存在的时间随机化) 首先要找到该方法,假设是你7楼贴出的"召唤的函数"那个,这里只是假设,如果生成坑的方法不是这个,你需要找到对应的方法然后按照例子来做 并且假设要让每个坑存在的时间随机在一定范围内的话,假设设定60~120帧 RUBY 代码复制
3.在update相关的方法里进行所有事件每n秒该实例变量-1的操作,条件是if 该实例变量 找到Scene_Map的update方法,在里面写入 RUBY 代码复制
4.当该实例变量<=0的时候,把该事件erase掉然后在$game_map.events里删除该事件 同样还是Scene_Map的update方法,刚刚的循环中继续写下去,3里刚刚那段也包括在里面了 RUBY 代码复制
5.附加:1~4是为你提供例子,如果照做之后发现有细节上的问题是需要做小修改才能正常运行的 |
本帖最后由 金芒芒 于 2024-9-12 16:17 编辑 魔法丶小肉包 发表于 2024-9-11 16:25 先研究一下我对脚本不熟悉 下面的脚本可以吗 把血迹改成垃圾keng class Spriteset_Map @EFS_bloods = []#血迹 def dispose for b in @EFS_bloods b.dispose end DEFAULT_BLOOD_DISAPPEAR_TIME = 300
|
1.你在Game_Event里新写一个实例变量记录一个时间,初始值为nil 2.在创建坑事件的时候给这个实例变量赋值(可以使用rand来赋予每个事件存在的时间随机化) 3.在update相关的方法里进行所有事件每n秒该实例变量-1的操作,条件是if 该实例变量 4.当该实例变量<=0的时候,把该事件erase掉然后在$game_map.events里删除该事件(只要该实例变量的值不为nil的话就一定是坑事件,所以不用特别判断哪个是坑) |
金芒芒 发表于 2024-9-10 13:00 之后等大佬搞就行了 |
金芒芒 发表于 2024-9-10 10:21 看来只能从character_name着手 你的character_name是什么呢? |
soulsaga 发表于 2024-9-9 19:01 # 召唤的函数 def conjure_slg(x,y,name,character_name,d) # 生成实例 $game_map.events[$game_map.events.size+1] = Game_Event.new($game_map.map_id,produce_event_slg(x,y,name,character_name,d)) # 处理各项属性 $game_map.map.events[$game_map.events.size] = produce_event_slg(x,y,name,character_name,d) # 重置 @spriteset.dispose @spriteset = Spriteset_Map.new end # 开始生产召唤物 def produce_event_slg(x,y,name,character_name,d) e = RPG::Event.new(x,y) e.id = $game_map.events.size e.name = name e.pages = [RPG::Event::Page.new] e.pages[0].graphic = RPG::Event::Page::Graphic.new e.pages[0].graphic.character_name = character_name e.pages[0].graphic.direction = d e.pages[0].through = false return e end end |
你要除坑 先要知道怎么判断这个事件是坑 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-21 23:55
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.