Project1

标题: 在地图上作出射击怪物的效果 [打印本页]

作者: POPO70114    时间: 2013-12-9 16:38
标题: 在地图上作出射击怪物的效果


想做出在地图上开枪攻击怪物的效果

目前做出了按下A按键玩家就会举枪

之后想让右上角显示子弹道具的小图和旁边的残余数量

把枪收起来右上角的图案就会消失

另外还有开枪攻击时不会有子弹飞出来只会有点小特效而已

开枪后就判断玩家面向方面的前面五格内有无怪物

有的话就让怪物受到损伤

这效果也不知道该如何实现

请求指点 感激不尽! !
作者: 耀眼的毛玉    时间: 2013-12-9 20:11
这需要把整个地图定义成战斗场景配合SLG战斗剧本吧
作者: 未命名    时间: 2013-12-9 22:31
本帖最后由 未命名 于 2013-12-10 22:42 编辑

很容易的,对于纯事件(脚本)A·RPG来说。
首先,我码字先……

1.虽然可以代替,但最好需要这个(XP,要移植VA):
  1. 只需要一行脚本,就可以将独立开关变成我所需要的独立变量:

  2. Game_SelfSwitches第20行:
  3. 原文:    return @data[key] == true ? true : false
  4. 改为:    return @data[key] == nil ? false : @data[key]

  5. 即可。
  6. 之后可以用事件脚本的方式操作独立变量:
  7. $game_self_switches[[$game_map.map_id, @event_id, "E"]]=4
  8. $game_self_switches[[$game_map.map_id, @event_id, "E"]]+=5

  9. 条件分岐:脚本:$game_self_switches[[$game_map.map_id, @event_id, "E"]]==9
  10.       blabla
  11. 分歧结束

  12. 几点说明:
  13. 1. 在将开关当变量操作运算(包括作为条件分歧中的比较)前,需要先进行变量赋值,否则会有FalseClass的NoMethodError
  14. 2. 但如果是直接当开关操作则不用,比如
  15. $game_self_switches[[$game_map.map_id, @event_id, "E"]]=!$game_self_switches[[$game_map.map_id, @event_id, "E"]]
  16. 3. 原来的独立开关逻辑仍然保留,不受任何影响,不过还是建议用到独立变量时,编号从E开始设置比较好
  17. 4. 注意引用下标的写法,双层方括号,不要写漏了。
  18. 5. 引用其他事件的独立开关:$game_self_switches[[$game_map.map_id, 那个事件的ID, 开关编号]]
复制代码
2.   在事件中用的脚本:
  1. # 循环全部事件
  2. $game_map.events.values.each do |event|#VA
  3. #此处可获取事件各种事件的信息
  4. #例如event.x获得监测到的事件的地图X坐标。
  5. #例如 如果事件X=角色X,事件Y=角色Y
  6. if event.x == $game_player.x  and event.y == $game_player.y
  7.   # 如果那个事件的独立开关A打开,则……
  8.   if $game_self_switches[[$game_map.map_id, event.id, "A"]] == true
  9.     ……
  10.   end
  11. end
复制代码
3.运用独立开关可以判定事件哪个是怪物什么的。
然后赋予什么效果……

啊啊啊啊啊,好麻烦,我直接给范例算了!
VA射击范例(事件脚本).rar (1.42 MB, 下载次数: 169)
总之实现这个效果对新手是很麻烦的。

子弹显示啊,如果是以前的我,包括数字我都会用图片显示的,脚本的话,要先见窗口,有时间我再发范例吧。你先用图显示片解决吧。
作者: lanyaolove    时间: 2013-12-9 22:49
横版动作类游戏 推荐AGM 不推荐RM




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1