设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2342|回复: 4
打印 上一主题 下一主题

[已经解决] 脚本新手试写又失败 想再次请教错在哪里 关於战斗动画

[复制链接]

Lv4.逐梦者 (版主)

梦石
0
星屑
6886
在线时间
7027 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

1
发表于 2018-4-22 22:20:38 | 显示全部楼层
本帖最后由 RaidenInfinity 于 2018-4-22 22:30 编辑

请看Spriteset_Battle的部分。
战斗场景里一共有3个显示端口(Viewport)。
Viewport的用途是将图像精灵(Sprite)分组,和处理画面闪光,画面亮度之类的效果。

Spriteset_Battle的create_viewport方法定义了三个Viewport:@viewport1, @viewport2, @viewport3
Spriteset_Battle里的Sprite都有归类在Viewport里面。例子:@back1_sprite = Sprite.new(@viewport1)

> @viewport1 拥有 背景,敌方战斗图我方战斗图(如果有)。画面摇晃时,这个Viewport(和里面的所有Sprite)的X轴会同时移动。使用事件/动画的画面色调指令时,这个Viewport会受影响。Z值是0。
> @viewport2 拥有 计时器,事件显示的图片 。使用事件的画面闪烁指令时,这个Viewport会改变颜色来实现闪烁效果。Z值是50。
> @viewport3 没有所属的Sprite,使用事件的渐出淡入指令时,这个Viewport会改变颜色来实现渐入淡出效果。Z值是100。

Viewport的Z值凌驾于Sprite的Z值。也就是说,在@viewport1里的Sprite,就算你Z值放999,还是会被@viewport2里Z值为0的Sprite盖过去
这是为啥事件显示的图片(@viewport2)会覆盖在战斗图(@viewport1)上。

好,知道了原理之后,现在到解决方法。
当时我弄的玩家角色立绘系统,立绘不是用事件显示图片而是自己写的Sprite。但是也差不多。
于是你知道事件显示的图片,是在@viewport2里的。意思就是说,你必须给玩家角色的Sprite_Battler设置Z值更高的@viewport
但是你要知道…一,只有 @viewport1 才会摇晃和改变色调。二,@viewport2 是不会摇晃的,然后画面闪烁是在这个Viewport进行的。
如果你创建的新Viewport比@viewport2还高,会发生什么事儿呢?吃不到闪烁效果。然后,如果你的Sprite不是@viewport1所属的,就吃不到摇晃的改变色调。那怎么办?请看update_viewports方法。这个方法里面定义了哪个Viewport受什么功能影响。所以我的建议是,弄多几个新的Viewport,调整下Z值,调整哪个受影响,哪些不会。自己实验一下吧。

哦对,定义玩家角色战斗图的方法是create_actors。

评分

参与人数 1+1 收起 理由
真紅樂章 + 1 塞糖

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6886
在线时间
7027 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

2
发表于 2018-4-23 00:14:41 | 显示全部楼层
把事件图片改去@viewport1的后果,就是事件图片会受到画面摇晃和色调影响。但是,如果你觉得这没有问题的话(立绘就应该跟着屏幕摇晃,不是吗?),那应该没事儿了。

点评

感謝指導的說 ^.<⌒☆  发表于 2018-4-23 07:56

评分

参与人数 1+1 收起 理由
真紅樂章 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-16 15:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表