Project1

标题: 画面闪烁能设置区域吗?不要全屏闪烁 [打印本页]

作者: miantouchi    时间: 2020-3-9 16:30
标题: 画面闪烁能设置区域吗?不要全屏闪烁
画面闪烁能设置区域吗?不要全屏闪烁。
动画编辑器貌似只能全屏闪烁,而我需要的是屏幕如图分两部分闪烁。

1.png (69.98 KB, 下载次数: 20)

1.png

2.png (69.66 KB, 下载次数: 16)

2.png

作者: 灯笼菜刀王    时间: 2020-3-9 17:14
本帖最后由 灯笼菜刀王 于 2020-3-9 17:15 编辑

以"画面"为对象的闪烁, 是等于以"该动画的视口"为对象,  所以,只要改视口矩形的大小就可以改画面的闪烁范围

至于视口在哪里, 以前有和你说过, 自己找找

注意, 如果你用真位移的话, 就要注意位移坐标不要超过视口范围, 否则角色会跑到异空间去让你看不到他
作者: miantouchi    时间: 2020-3-9 19:10
本帖最后由 miantouchi 于 2020-3-9 19:12 编辑
灯笼菜刀王 发表于 2020-3-9 17:14
以"画面"为对象的闪烁, 是等于以"该动画的视口"为对象,  所以,只要改视口矩形的大小就可以改画面 ...


位置找到了,应该是 @viewport4 = Viewport.new(0, 0, 640, 480)这个吧
但是闪屏是上下画面的反复切换。
若是反复编辑视口位置就不知道怎么弄了。

1.png (13.36 KB, 下载次数: 17)

1.png

1.gif (150.69 KB, 下载次数: 21)

1.gif

作者: 灯笼菜刀王    时间: 2020-3-9 19:27
本帖最后由 灯笼菜刀王 于 2020-3-9 19:44 编辑
miantouchi 发表于 2020-3-9 19:10
位置找到了,应该是 @viewport4 = Viewport.new(0, 0, 640, 480)这个吧
但是闪屏是上下画面的反复切换。
...


错了, 这个是"整体画面色调视口", 动画的视口不是它


这段就是动画的闪烁和SE处理, 箭头处就是"画面闪烁", 它指向 对象本身的 viewport, 也就是"战斗图的视口"

XP的默认战斗场景, 是把敌人和角色塞到不同的视口里的, 所以你只要分别改它们的视口大小, 就可以做到各自播放的动画闪烁在各自的视口范围内了, 也就是你说的, 上(敌人)下(角色)分别闪烁

而如果需要"全屏", 那可以在上面那段脚本里加个判断, 让"第三者"去闪就行了

比如"闪烁SE名字为"菜刀之爱"时, 把闪烁设置赋予某个变量,

if se.name == "菜刀之爱"
   a = [timing.flash_color,timing.flash_duration * 2]
end

然后到Spriteset_battle的updata里去加一句

if a != nil
  @viewport4.flash(a[0],a[1])
  a = nil
end

最后,记得屏蔽掉默认的闪烁, 否则它的视口就会和"小三"一起闪了

作者: miantouchi    时间: 2020-3-10 17:38
本帖最后由 miantouchi 于 2020-3-10 17:42 编辑
灯笼菜刀王 发表于 2020-3-9 19:27
错了, 这个是"整体画面色调视口", 动画的视口不是它。


视口1、视口2确实是分开显示的,我用十字斩和加血技能测试了,但是,我把视口改了,人物没了,并且出现黑边了。
应该是人物被移飞了。
再一个我不能灵活的设置动画闪烁。

1.png (72.98 KB, 下载次数: 13)

1.png

2.png (84.55 KB, 下载次数: 18)

2.png

3.png (84.89 KB, 下载次数: 15)

3.png

4.png (452.28 KB, 下载次数: 15)

4.png

作者: 灯笼菜刀王    时间: 2020-3-10 18:12
miantouchi 发表于 2020-3-10 17:38
视口1、视口2确实是分开显示的,我用十字斩和加血技能测试了,但是,我把视口改了,人物没了,并且出现黑 ...


1,因为你没改坐标咯, 视口高度变了坐标位置自然变了
2,因为你没有设置"菜刀之爱" 这个名字的SE

全屏闪是通过带有这个名字的SE的帧作为判断的, 当然你也可以改成其他判断条件
作者: miantouchi    时间: 2020-3-10 22:15
本帖最后由 miantouchi 于 2020-3-10 22:17 编辑
灯笼菜刀王 发表于 2020-3-10 18:12
1,因为你没改坐标咯, 视口高度变了坐标位置自然变了
2,因为你没有设置"菜刀之爱" 这个名字的SE


视口人物显示是出来了,
但是我也加了SE名字了,但是还是闪烁的敌方视口上半部闪烁。
我用的是十字斩、作用敌方身上,闪烁上半部分屏幕
治疗技能,作用我方,闪烁下半部分屏幕。
你说的第三者,我也加了名字了,也就是时视口4(全屏闪烁),没有出现。不知道咋回事

1.png (81.69 KB, 下载次数: 18)

1.png

2.png (31.06 KB, 下载次数: 15)

2.png

作者: 灯笼菜刀王    时间: 2020-3-11 00:25
miantouchi 发表于 2020-3-10 22:15
视口人物显示是出来了,
但是我也加了SE名字了,但是还是闪烁的敌方视口上半部闪烁。
我用的是十字斩、作 ...

你 p 看看就知道了, 你保存的变量和调用的变量不是同一个, 当然 spriteset_battle 里的 @a一直是nil啦

跨类调用要用全局变量
作者: miantouchi    时间: 2020-3-12 12:57
灯笼菜刀王 发表于 2020-3-11 00:25
你 p 看看就知道了, 你保存的变量和调用的变量不是同一个, 当然 spriteset_battle 里的 @a一直 ...

如果是默认的脚本可以,我这个游戏涉及人物跳跃到上半部分,这样的话角色视口范围就看不到跳到上面后的人物了。

1.png (43.67 KB, 下载次数: 17)

1.png

作者: 灯笼菜刀王    时间: 2020-3-12 14:56
miantouchi 发表于 2020-3-12 12:57
如果是默认的脚本可以,我这个游戏涉及人物跳跃到上半部分,这样的话角色视口范围就看不到跳到上面后的人 ...

所以前面我有提到注意事项,  这里有两种解决方法, 1,增加视口高度把角色跳跃位置包含进去, 2,针对角色视口的闪烁用菜刀之爱的方式去闪个其他视口

如果用2号方法, 那你要想办法判定出该动画是不是要在角色方闪画面, 如果技能是敌人和角色各用各的,那很好处理, 如果同个技能敌我都能用, 那就要想办法给动画一个识别角色的方法了(提示,一样可以用全局变量,在释放技能的时候增加一个开关判定,看对象是角色还是敌人,然后拿到timing里去做区别)
作者: 芯☆淡茹水    时间: 2020-3-12 15:17
最简单的办法。
做两张你需要闪烁的颜色的图片,放到对应的两处位置,
然后初始不透明度为 0 , 闪烁时控制对应图片的透明度增减就行了。




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