Project1

标题: 【悬】求个带入行走图坐标为战斗图坐标的脚本,不用大改... [打印本页]

作者: MeowSnow    时间: 2013-8-18 16:11
标题: 【悬】求个带入行走图坐标为战斗图坐标的脚本,不用大改...
本帖最后由 835494264 于 2013-8-18 18:23 编辑

也不用大改啊……配合已经有的截图地图当战斗背景脚本,
只是带入主角在地图上的坐标而已,
然后根据面向判断双方向后退一步,
和是否要播放翻转动画,
翻转动画也不用在脚本里翻转,播放本来动画的下一个就好了,我手动制作翻转好的……
感觉改动不大的说……
就要这样的效果。

比如行走图走到横第2格,竖第2格,战斗图的位置就在64,64,行走图走到横第四格,竖第四格,战斗图的位置就在128,128,
同时判断敌人在主角前面还是后面,使用主角向左或者向右的战斗图,并播放向左出招或者向右出招的动画
因为是横板游戏所以只考虑两个方向就行了。
(战斗图可以稍微编辑命名,我会做好对饮命名的战斗图)
(动画我也会做好翻转动画,放在对应动画下面,需要翻转的时候播放所需动画的下面那个就好了)

最后,因为主角和敌人触发战斗的一瞬间是贴在一起的,战斗效果不好,所以才要后退一些,那个在刷新出战斗指令等的瞬间一起完成就好了
不如说带入战斗图的时候坐标就已经判断面向并使主角和敌人的位置±100像素就好了。


而出现战斗坐标的那一刷新毕竟是进入战斗场景,可以带入渐变,我只需要带入一张从中间到两边的渐变就能把他们后退的过程掩饰过去
就是说瞬移过去就好了~

然后敌人还有可能是复数的情况,
比如三个敌人,那么敌人的战斗位置就先都生成在触发战斗事件的坐标上,
后退的时候,一个退100像素,一个退200像素,一个退300像素就好了~

最后,我只是想要在地图上遇敌就能开战的效果,
所以和截图地图当战斗背景,已经去逃跑/战斗脚本不能冲突。

还有工程里还用了8帧行走图啊……像素移动啊……漫画时对话框啊的脚本……应该都不冲突吧……

http://rpg.blue/thread-327382-1-1.html←因为已经求助过一次了,所以还想看更多解释(其实还没这里解释的清楚)看这个贴……

最后放些素材预览……大家可怜可怜就帮助一下吧……是我最后1V……可以的话我也想多给的……

作者: 落叶因风    时间: 2013-8-18 16:55
嘿,还没放弃,现在这里这么凋落哪有人解决这些问题……自己去学脚本吧……
作者: MeowSnow    时间: 2013-8-18 17:23
落叶因风 发表于 2013-8-18 16:55
嘿,还没放弃,现在这里这么凋落哪有人解决这些问题……自己去学脚本吧…… ...

虽然讲起来我也觉的麻烦但是貌似改动真的不大么……
作者: 876加几    时间: 2013-8-18 18:01
试试弗雷德出的横版战斗
作者: MeowSnow    时间: 2013-8-18 18:06
876加几 发表于 2013-8-18 18:01
试试弗雷德出的横版战斗。

不是要那个效果,是要那种在地图上遇敌就弹出战斗指令开战,人物和地图都不用变的效果,
已使用截图地图当战斗背景的脚本,
但是还需要解决人物的位置和面向问题。
作者: 芯☆淡茹水    时间: 2013-8-18 18:40
貌似很麻烦。地图有大有小,大地图的话屏幕也在不停卷动。比如某地图人物Y坐标为 200 ,那照LZ 的意思,战斗的Y值就应该是 200X32 = 6400 。貌似行不通。
作者: 你最珍贵    时间: 2013-8-19 01:35
原来不是想要ARPG战斗啊……
作者: Algalon    时间: 2013-8-19 07:13
直接调用角色的真实坐标。 x = $game_player.screen_x, y = $game_player.screen_y 就是角色真实坐标。具体的计算在Game_Character 1中
  def screen_x
    # 通过实际坐标和地图的显示位置来求得画面坐标
    return (@real_x - $game_map.display_x + 3) / 4 + 16
  end
  def screen_y
    # 通过实际坐标和地图的显示位置来求得画面坐标
    y = (@real_y - $game_map.display_y + 3) / 4 + 32
    # 取跳跃计数小的 Y 坐标
    if @jump_count >= @jump_peak
      n = @jump_count - @jump_peak
    else
      n = @jump_peak - @jump_count
    end
    return y - (@jump_peak * @jump_peak - n * n) / 2
  end
我在大地图菜单脚本中使用过。只要在战斗地图脚本调用就行了。
作者: MeowSnow    时间: 2013-8-19 08:27
Algalon 发表于 2013-8-19 07:13
直接调用角色的真实坐标。 x = $game_player.screen_x, y = $game_player.screen_y 就是角色真实坐标。具 ...

求段粘贴过去就能用的脚本,LZ是彻底的脚本盲的说……即使你告诉我在哪里我也不会用啊……
作者: Algalon    时间: 2013-8-19 09:13
那比较麻烦,因为看你的系统好像大地图自己修改过,那我就算在默认的RTP写了你拿过去估计也不兼容。最好是在你的原系统上直接改。
作者: MeowSnow    时间: 2013-8-19 09:25
Algalon 发表于 2013-8-19 09:13
那比较麻烦,因为看你的系统好像大地图自己修改过,那我就算在默认的RTP写了你拿过去估计也不兼容。最好是 ...

帮我写一个吧,地图系统没改过,地图系统唯一的更改就是加入了像素移动的脚本,
横板效果是用图块上限制移动范围做出来的,就用默认改一下吧,
这个是我暂时的工程:
http://pan.baidu.com/share/link? ... 69&uk=956847943
还没插入截图战斗背景脚本和去逃跑/战斗脚本,
因为主要还在弄素材,
不过应该都不排斥吧?
作者: Algalon    时间: 2013-8-19 09:52
835494264 发表于 2013-8-19 09:25
帮我写一个吧,地图系统没改过,地图系统唯一的更改就是加入了像素移动的脚本,
横板效果是用图 ...

大概清楚了,有空就帮你写一个。
作者: MeowSnow    时间: 2013-8-19 09:56
Algalon 发表于 2013-8-19 09:52
大概清楚了,有空就帮你写一个。



其实仔细想想貌似不用带入触发战斗的事件的坐标,反正敌人出现的坐标比主角偏左或右一二百像素就行了~
重要的是判断面向和播放动画的动能哦~
先谢谢了~
作者: Algalon    时间: 2013-8-20 06:54
话说你所说的主角向左或向右。。难道主角还会倒着走遇到敌人么。。一般正常来说横版游戏敌人不都在前面的么
作者: MeowSnow    时间: 2013-8-20 09:00
Algalon 发表于 2013-8-20 06:54
话说你所说的主角向左或向右。。难道主角还会倒着走遇到敌人么。。一般正常来说横版游戏敌人不都在前面的么 ...

因为要的是不切换战斗场景,直接弹出指令条开战的效果,所以敌人可能在主角前面或者后面啊,而对于横板来说就是敌人在主角坐标或右边啊。
难道主角一直向右或向左走,敌人一个个冒出来……不是成塔防了……
作者: Algalon    时间: 2013-8-20 09:06
有点我还是没有搞懂,比如主角在走,这时候敌人怎么出现?是从屏幕两边跑进来咯?
作者: MeowSnow    时间: 2013-8-20 09:23
Algalon 发表于 2013-8-20 09:06
有点我还是没有搞懂,比如主角在走,这时候敌人怎么出现?是从屏幕两边跑进来咯? ...


是个非踩地雷的RPG游戏啊,虽然是横板……雨血烨城也是横板RPG啊~虽然那个是踩雷的……
敌人就是触发战斗的事件啊,在地图上跑来跑去或者追主角或者被主角追,
所以什么样的战斗位置都会出现,我就是想要这样的效果。
另外虽然事件会跑或者不会跑,
但是战斗场景里敌人的位置都计算主角面向后加减一定距离就可以啰~
毕竟触发战斗的时候主角和事件是贴在一起的嘛~
因为不是踩雷式的战斗所以敌人不用出现啊,
比如主角走到一条山路了,直接能看到漫山遍野的山贼啊~

然后撞上去一个个开战就行了~
作者: q374435503    时间: 2013-8-20 16:40
可以问问雨血的作者。
作者: MeowSnow    时间: 2013-8-21 09:22
q374435503 发表于 2013-8-20 16:40
可以问问雨血的作者。

但是……需要的效果和雨血不一样啊……
作者: Algalon    时间: 2013-8-22 12:24
在帮你写了,主要问题不是战斗画面而是
1.进入战斗的方式,即是战斗画面仍然是地图,从地图过度到战斗画面有个图片过度,也就是先变黑再刷新成战斗画面,如果要去掉这个的话可能比较麻烦。
2.战斗菜单,默认的上下战斗菜单覆盖住50%的战斗画面,我不清楚你想要用什么菜单,目前仍然给你留着就是背景色改成透明的了。
作者: MeowSnow    时间: 2013-8-22 13:09
本帖最后由 835494264 于 2013-8-23 08:23 编辑
Algalon 发表于 2013-8-22 12:24
在帮你写了,主要问题不是战斗画面而是
1.进入战斗的方式,即是战斗画面仍然是地图,从地图过度到战斗画面 ...



谢谢大师~
第一个问题没关系~不用去掉啊~人物和敌人的位置还要稍微远离点呢,也没打算做动画什么的,出现战斗指令的那一刷新一起刷新出来就好了啊~或者就用默认的渐变效果刷新一下~
第二的话,还真忘了提了,因为只有一个可操作战斗的主角,所以打算把血条什么菜单做成小方形放在右下角~不知道自动截图的脚本显示那部分么,不会变成黑的吧?

好棒~用了截图当战斗的脚本和状态栏的位置不冲突~
作者: Algalon    时间: 2013-8-24 09:23
写得差不多了,你测试一下是不是你要的效果吧。我用了新建工程,开始画面没有去掉,你自己去吧。

战斗测试脚本.rar

469.12 KB, 下载次数: 39


作者: MeowSnow    时间: 2013-8-26 08:40
Algalon 发表于 2013-8-24 09:23
写得差不多了,你测试一下是不是你要的效果吧。我用了新建工程,开始画面没有去掉,你自己去吧。 ...

果然好棒~就差判断面向播放翻转动画的效果了~
还有战斗选择敌人的箭头位置~
话说能不能做多人战斗呢?比如第一个敌人离主角200像素,第二个离300,第三个离400什么的,要是麻烦的话只能单挑也行~
话说能不能把有改动的脚本的名字弄点※之类的后缀标注一下~我以后还要乱插什么脚本的时候就把那些避免了~
作者: Algalon    时间: 2013-8-26 11:05
多人战斗并不是不可以,主要看你怎么判定战斗开始,打个比方是看到敌人出现在屏幕中开始战斗,还是敌人距离你多少远开始,还是接触第一个遇到的敌人进入战斗
作者: MeowSnow    时间: 2013-8-26 12:05
本帖最后由 835494264 于 2013-8-26 12:16 编辑
Algalon 发表于 2013-8-26 11:05
多人战斗并不是不可以,主要看你怎么判定战斗开始,打个比方是看到敌人出现在屏幕中开始战斗,还是敌人距离 ...


不用那么麻烦~现在应该怎样的触发战斗都判定主角面向和坐标嘛~应该剧情自动触发战斗也行吧?
多人战斗的话还是一个敌人事件~触发战斗以后是个队伍就行了~

把主角位置修改到右边,

开战以后还是在左边的说~动画也没改变~

把主角的攻击动画换为魔法,魔法的下一个动画是使用物品,
但是无论怎么触发战斗,主角的攻击动画都是释放魔法的说~
作者: MeowSnow    时间: 2013-8-26 12:22
本帖最后由 835494264 于 2013-8-26 12:27 编辑

哎…… 不知道为什么面向又正常了……

选择敌人的箭头果然很奇怪~

难道和Y坐标有关系……高的时候就好了?

数字也很奇怪,还有播放动画还是没变。


不知道发生了什么……面向问题就解决了……

战斗状态窗口要不一直固定在左下角吧,指令窗口孤零零的貌似也有点怪,
窗口还有铺上色吧~没有透明度也怪怪的~
作者: MeowSnow    时间: 2013-8-26 12:40
@Algalon
倒是插入跳过标题和去逃跑的脚本后都不冲突好棒,
还有些问题是,有些诡异的情况面向判定会无效,也不知道什么情况有效无效,
动画从来都无效,设置攻击动画和挨打动画以后一直播放那个。
还有希望设置为齐时动画~攻击动画和挨打动画一起播放~
状态界面还是有个半透明的底色吧~位置一直位于左下角好了~

092241vxnk7jlp8y6pikli.rar

467.61 KB, 下载次数: 54


作者: Algalon    时间: 2013-8-26 22:32
恩指令箭头和战斗动画还没有修复确实是bug,面向问题我会再检查的。另外如果多人战斗只是将敌群中的敌人平铺的话很好实现。
作者: MeowSnow    时间: 2013-8-27 10:01
Algalon 发表于 2013-8-26 22:32
恩指令箭头和战斗动画还没有修复确实是bug,面向问题我会再检查的。另外如果多人战斗只是将敌群中的敌人平 ...

谢谢呢~
还有战斗指令框的底色~状态栏感觉固定在左下角指令框下面比较好~
作者: MeowSnow    时间: 2013-8-29 10:57
@弗雷德
后来决定拿仅存的V发布悬赏所以又发帖了~
有个大触弄了个半成品然后好几天不见人儿,
工程就是27楼那个了~
还有原谅我连贴了……




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