扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 102|回复: 0

[转载发布] 镜像动画修复

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    2025-2-4 02:05
  • 签到天数: 110 天

    连续签到: 2 天

    [LV.6]常住居民II

    2327

    主题

    395

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    10465
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    13215

    灌水之王

    发表于 2024-2-13 12:38:14 | 显示全部楼层 |阅读模式
    默认镜像动画算法奇葩,导致使用旋转的动画会出现异常,现上插件修复:
    JAVASCRIPT 代码下载
    1. //=============================================================================
    2. // Fix Mirrored Animation
    3. // MirrorAnimationFix.js
    4. // Version: 1.00
    5. //=============================================================================
    6. var Imported = Imported || {};
    7. Imported.Kien_MirrorAnimationFix = true;
    8. var Kien = Kien || {};
    9. Kien.MirroredAnimation = {};
    10. //=============================================================================
    11. /*:
    12. * @plugindesc Fix A bug that animatio will show wrong when used mirror in script.
    13. * @author Kien
    14. *
    15. */
    16. Kien.MirroredAnimation.Sprite_Animation_setup = Sprite_Animation.prototype.setup;
    17. Sprite_Animation.prototype.setup = function(target, animation, mirror, delay) {
    18.     Kien.MirroredAnimation.Sprite_Animation_setup.apply(this,arguments);
    19.     if (this._animation && this._mirror){
    20.         this.scale.x = -1;
    21.     }
    22. };
    23. Sprite_Animation.prototype.updateCellSprite = function(sprite, cell) {
    24.     var pattern = cell[0];
    25.     if (pattern >= 0) {
    26.         var sx = pattern % 5 * 192;
    27.         var sy = Math.floor(pattern % 100 / 5) * 192;
    28.         var mirror = this._mirror;
    29.         sprite.bitmap = pattern < 100 ? this._bitmap1 : this._bitmap2;
    30.         sprite.setFrame(sx, sy, 192, 192);
    31.         sprite.x = cell[1];
    32.         sprite.y = cell[2];
    33.         sprite.rotation = cell[4] * Math.PI / 180;
    34.         sprite.scale.x = cell[3] / 100;
    35.         if (cell[5]) {
    36.             sprite.scale.x *= -1;
    37.         }
    38.         sprite.scale.y = cell[3] / 100;
    39.         sprite.opacity = cell[6];
    40.         sprite.blendMode = cell[7];
    41.         sprite.visible = this._target.visible;
    42.     } else {
    43.         sprite.visible = false;
    44.     }
    45. };
    复制代码

                 本帖来自P1论坛作者feizhaodan,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=388814  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-3-10 15:43 , Processed in 0.085663 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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