Project1

标题: 【地面破壞效果】 [打印本页]

作者: wsaxabc    时间: 2009-6-4 07:06
标题: 【地面破壞效果】
請問諸位高手,有沒有製作類似仙劍戰鬥里那種破壞地面效果的方法?
播放完技能動畫以後,會在背景上留下痕跡。戰鬥結束后消失。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: Tabris_Air    时间: 2009-6-4 18:23

可以实现,技能附带公共事件,显示地面破坏的图片
公共事件最后用比较长的时间(比如200帧)把图片透明度改为0

当然记得战斗结束后要消失图片 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 黄金会员    时间: 2009-6-4 18:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: Tabris_Air    时间: 2009-6-4 19:53

= =
数据库技能页,有附带公共事件吧,
公共事件内容是显示地面破坏图片--〉移动图片,时间200帧,透明度0
这样就可以了

要是嫌麻烦图片不用设置消失也可以,反正就一张透明的图片也占不了多少内存= =b

以下引用黄金会员于2009-6-4 10:33:36的发言:

这个好像有点搞头

要是能弄成那个样子 直接美

不过
能不能说清楚点啊~~~


作者: 黄金会员    时间: 2009-6-4 20:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: tommay    时间: 2009-6-4 20:07
只是一个想法,没有具体试验过。

从Spriteset_Battle看到:
所有的用事件显示的图片都是在viewport3里面,其z=200

也就是说,图片会遮挡住z比其小的viewport,包括:viewport2(所有的我方角色的图像都在此端口中),以及viewport1(敌人的图像、天气效果都在此活动块中)。

这样看来似乎就有一些问题了。
作者: wsaxabc    时间: 2009-6-4 20:25
以下引用Tabris_Air于2009-6-4 10:23:08的发言:


可以实现,技能附带公共事件,显示地面破坏的图片
公共事件最后用比较长的时间(比如200帧)把图片透明度改为0

当然记得战斗结束后要消失图片



這個方法我用過,主要有個缺陷。就是圖片會覆蓋住角色圖片,怎么辦?
作者: 六脉神剑    时间: 2009-6-4 20:26
简单点可以在 Spriteset_Battle 中单独把几张图片放到显示战斗背景的那个 viewport 中。
作者: wsaxabc    时间: 2009-6-4 20:28
以下引用tommay于2009-6-4 12:07:43的发言:

只是一个想法,没有具体试验过。

从Spriteset_Battle看到:
所有的用事件显示的图片都是在viewport3里面,其z=200

也就是说,图片会遮挡住z比其小的viewport,包括:viewport2(所有的我方角色的图像都在此端口中),以及viewport1(敌人的图像、天气效果都在此活动块中)。

这样看来似乎就有一些问题了。


[本贴由作者于 2009-6-4 12:09:14 最后编辑]



這種方法我也參考過66的動態背景教學。但是後來考慮到破壞地面效果如果有n多個的話,用這種方法會麻煩一點。
最直接簡單的方法就是用公共事件顯示破壞地面的圖片。但是顯示圖片會覆蓋住角色,很苦惱。如何更改,還請指教。
作者: wsaxabc    时间: 2009-6-4 20:39
以下引用六脉神剑于2009-6-4 12:26:38的发言:

简单点可以在 Spriteset_Battle 中单独把几张图片放到显示战斗背景的那个 viewport 中。

這個是需要播放完技能動畫之後才變換viewport的。如果不嫌麻煩,可以通過更改戰鬥背景的方法來製作。
把地面破壞效果用ps處理到戰鬥背景里。但是這樣一來,戰鬥背景就需要很多張。占用遊戲本身的大小。
作者: 六脉神剑    时间: 2009-6-4 20:45
变换什么viewport?保留几张图片到战斗背景的viewport中,专门用来显示破坏效果的图片,播放完技能动画,在战斗背景之上,战斗图之下显示一张带有 alpha 通道的 png 破坏效果图片即可,何须重做一张战斗背景?
作者: tommay    时间: 2009-6-4 20:45
一般情况下,战斗中“显示图片”不常用吧= =

如果没有别的地方用的话,Spriteset中,修改下面的红色部分
    @picture_sprites = []
    for i in 51..100
      @picture_sprites.push(Sprite_Picture.new(@viewport1,
        $game_screen.pictures))
    end

作者: wsaxabc    时间: 2009-6-4 20:53
这个问题我已经解决了。在Spriteset_Battle里,更改@viewport2.z = 9999,把我方的坐标调到很高。然后把敌人的z坐标也调高。
然后用公共事件播放技能动画,然后显示破坏效果图片。全部解决。

当然,要用66的那个动态背景的教学。多加一个viewport0作为底层
作者: wsaxabc    时间: 2009-6-4 21:08
弄个效果图上来给大家参考一下。下面是地址
http://rpg.blue/upload_program/d/wsaxabc_test_124549777.jpg

作者: wsaxabc    时间: 2009-6-4 21:23
以下引用tommay于2009-6-4 12:45:59的发言:

一般情况下,战斗中“显示图片”不常用吧= =

如果没有别的地方用的话,Spriteset中,修改下面的红色部分

   @picture_sprites = []
   for i in 51..100
     @picture_sprites.push(Sprite_Picture.new(@viewport1,
       $game_screen.pictures))
   end

多谢你提供的方法。这确实也是一种可行之法。谢谢诸位的热心帮忙。
[LINE]1,#dddddd[/LINE]版主对此帖的评论:『既然连贴了,那就扣分吧。』,积分『-50』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: tommay    时间: 2009-6-4 21:25
请·勿·连·帖!
如果问题已解决,请自主结贴,并认可对你有帮助的人,给斑竹们减轻点负担。
作者: 玄月    时间: 2009-6-4 22:53
地图背景破坏阿……貌似是精灵叠加的样子,回去写个外挂脚本试试
作者: tommay    时间: 2009-6-4 23:13
六脉前辈说得对,其实把背景单独搞成一个viewport,然后在上面叠加精灵图片就行了。可以用一些变量控制,然后公共事件中写一句脚本就行了。




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