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

Project1

 找回密码
 注册会员
搜索

分层显示战斗动画

查看数: 4925 | 评论数: 4 | 收藏 4
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-12-14 09:59

正文摘要:

这次MV的战斗动画似乎是一直显示在所有角色和敌人之上的。如果敌人层叠起来,动画这样放就很没层次感 本来应该打在蛤蛤上面,结果打到了屏幕中间,敌人的技能准备动画也是同样显示到屏幕中间了。 但是这个位置会 ...

回复

Denis 发表于 2015-12-15 21:28:01
呼吸插件是哪一个呀
andrewx 发表于 2015-12-14 13:28:37
本帖最后由 andrewx 于 2015-12-14 14:24 编辑

目测动画离敌人目标的偏移量=敌人离屏幕的偏移量?
.startAnimation这个方法应该是新建动画sprite赋给目标的parent,而动画的实际xy则是根据敌人相对于屏幕的坐标而定。现在强制赋给敌人的话则会在敌人位置的基础上再偏移一次。

动画的位置是在下面的方法里定义的:
JAVASCRIPT 代码复制
  1. Sprite_Animation.prototype.updatePosition = function() {
  2.     if (this._animation.position === 3) {
  3.         this.x = this.parent.width / 2;
  4.         this.y = this.parent.height / 2;
  5.     } else {
  6.         var parent = this._target.parent;
  7.         var grandparent = parent ? parent.parent : null;
  8.         this.x = this._target.x;    //改成0的话动画本身不再偏移
  9.         this.y = this._target.y;    //改成0的话动画本身不再偏移
  10.         if (this.parent === grandparent) {
  11.             this.x += parent.x;
  12.             this.y += parent.y;
  13.         }
  14.         if (this._animation.position === 0) {
  15.             this.y -= this._target.height;
  16.         } else if (this._animation.position === 1) {
  17.             this.y -= this._target.height / 2;
  18.         }
  19.     }
  20. };

每次动画刷新都会调用这个方法,所以你一开始直接改xy是无效的,动画位置会一直重新计算
把两个注释的地方改成=0的话就不会往下偏移了,但是会引发其他动画问题,比如地图播放动画的位置错。。。
因此还需改:
JAVASCRIPT 代码复制
  1. Sprite_Base.prototype.startAnimation = function(animation, mirror, delay) {
  2.     var sprite = new Sprite_Animation();
  3.     sprite.setup(this._effectTarget, animation, mirror, delay);
  4.     //this.parent.addChild(sprite);  换成了下面几句:
  5.     if(animation.position === 3){
  6.         this.parent.addChild(sprite);
  7.     } else {
  8.         this.addChild(sprite);
  9.     }
  10.     //修改结束
  11.     this._animationSprites.push(sprite);
  12. };

这样改了后就不需要你一开始那样addChild了。

稍微测试了下,目前战斗动画和地图动画似乎还算正常,但不保证其他情况下不会出错。。。

p.s. 大爱兰姐谢叔wwww

点评

太神奇了 试了一下貌似就是没影响 应该是默认的结构导致了那个坐标需要位移  发表于 2015-12-15 13:58

评分

参与人数 2星屑 +60 梦石 +1 收起 理由
余烬之中 + 1 认可答案
doranikofu + 60 认可答案

查看全部评分

teatimeif 发表于 2015-12-14 10:11:06
虽然回答不了LZ的问题 但是要给LZ的画面默默点个赞
顺带问一下 你换了人物的战斗图是静态的还是自己做的几套动作啊

点评

全静态的。。。 给主角加了呼吸插件  发表于 2015-12-14 10:39
dc1988123 发表于 2015-12-14 10:09:41
是否用了怪物自动排列?火焰可能打的是怪物原来设定的位置。

点评

跟数据库里面队列设定的位置一样啊 难道是哪个地方重定义了?  发表于 2015-12-14 10:40
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-2 20:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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