查看: 5840|回复: 20

[原创发布] 在屏幕坐标显示动画

[复制链接]
梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2018-10-6 14:38:55 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 yang1zhi 于 2020-11-5 09:31 编辑

me_xy_animation.zip (1.06 KB, 下载次数: 216)

就是个垃圾而已。

用默认脚本改的。

可在屏幕的任何坐标显示‘动画’

//在事件中的脚本里,写上$gameParty.XY_animation(id,x,y)
//也可以自己在指定的Scene里面调用createXYanimationWindow来实现


更新---------------------------------------------------------------------------------------------------------------
//SceneManager._scene.END_XYanimation()   可结束动画播放

YZ_xy_animation.zip (1.13 KB, 下载次数: 166)

评分

参与人数 2赞 +2 收起 理由
wabcmcc + 1 事件頁也可以"顯示動畫".
白嫩白嫩的 + 1 精品文章

查看全部评分

梦石
0
星屑
77
在线时间
7 小时
注册时间
2018-9-20
回帖
4
发表于 2018-11-1 21:07:59 | 显示全部楼层
请问在公共事件中可以调用这个吗?
回复

使用道具 举报

梦石
0
星屑
77
在线时间
7 小时
注册时间
2018-9-20
回帖
4
发表于 2018-11-1 21:12:43 | 显示全部楼层
谢谢,我试了一下,正好能用上。

评分

参与人数 1赞 +1 收起 理由
yang1zhi + 1 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
3291
在线时间
350 小时
注册时间
2018-3-28
回帖
189
发表于 2019-8-17 11:56:31 | 显示全部楼层
厉害了大佬,解决了燃眉之急, 不过还是有个小问题想请教下,
这个动画 是否能更改 Z轴层级  因为我使用了其他显示图片的插件  现在这个动画显示在了图片下面 我想把这个动画 弄到图片上面去
我那个插件是用 zIndex = 1000 来控制层级的
期待大佬的解答 |
最后还是非常感谢大佬 这个小插件 非常有用的
用mv做了两款游戏,有兴趣的可以瞧一瞧:
《有毛病》--- 休闲、探索、策略、剧情、恐怖 都有那么一些,就是没有战斗。挺骚挺有意思的一个游戏。
steam链接:点击这里


《留离》--- 探索、高自由度、ARPG、战斗,就是没有啥剧情。
steam链接:点击这里
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

 楼主| 发表于 2019-8-17 14:42:30 | 显示全部楼层
wr282828 发表于 2019-8-17 11:56
厉害了大佬,解决了燃眉之急, 不过还是有个小问题想请教下,
这个动画 是否能更改 Z轴层级  因为我使用了 ...

不好办。JS的Z轴是根据先来后到来决定上下的。我不知道你那个什么原理。我这个是使用指令后才开始添加的。应该是最后到达的。

点评

嗯嗯 我再看看 感谢感谢  发表于 2019-8-17 20:00
回复

使用道具 举报

梦石
0
星屑
1907
在线时间
1555 小时
注册时间
2013-4-13
回帖
783
发表于 2019-8-17 16:08:25 | 显示全部楼层
wr282828 发表于 2019-8-17 11:56
厉害了大佬,解决了燃眉之急, 不过还是有个小问题想请教下,
这个动画 是否能更改 Z轴层级  因为我使用了 ...

深度管理需要对children列表进行排序, 实现方式并不统一, 你可以把你的插件发过来么, 我研究一下该怎么弄

点评

用的是 div的 style.zIndex 控制层级  发表于 2019-8-17 20:56
我直接把插件代码贴上了  发表于 2019-8-17 20:55
我用的是 下楼 那个插件  发表于 2019-8-17 19:59
夏普的道具店

塞露提亚-道具屋的经营妙方同人作品
发布帖:点击这里
回复

使用道具 举报

梦石
0
星屑
3291
在线时间
350 小时
注册时间
2018-3-28
回帖
189
发表于 2019-8-17 19:59:10 | 显示全部楼层
AXY_Gif.rar (3.01 KB, 下载次数: 116)
我用的是这个显示图片的插件

点评

我下不来, chrome说有病毒  发表于 2019-8-17 20:08
用mv做了两款游戏,有兴趣的可以瞧一瞧:
《有毛病》--- 休闲、探索、策略、剧情、恐怖 都有那么一些,就是没有战斗。挺骚挺有意思的一个游戏。
steam链接:点击这里


《留离》--- 探索、高自由度、ARPG、战斗,就是没有啥剧情。
steam链接:点击这里
回复

使用道具 举报

梦石
0
星屑
3291
在线时间
350 小时
注册时间
2018-3-28
回帖
189
发表于 2019-8-17 20:54:58 | 显示全部楼层
[pre lang="javascript"]//=============================================================================
// XueYu Plugins - Gif
// AXY_Gif.js
// Version: 1.0
// License: BSD
//=============================================================================
/*:
* @plugindesc v1.00 动图显示 This plugin show gif, jpg, and many formats img from website or local.
* @author XueYu Plugins
*
* @param 锚点
* @param Anchor
* @desc The Img Anchor point. topleft/center
* @default center
*
* @param X
* @desc The x position of img. this is a eval param, so you can use Variables.
* img的x位置。这是一个eval参数,所以可以使用变量
* @default Graphics.width/2
*
* @param Y
* @desc The y position of img. this is a eval param, so you can use Variables.
* @default Graphics.height/2-90
*
* @param Width
* @desc The img width with % percent or px. img宽度的百分比或px。
* @default 100%
*
* @param Height
* @desc The img height with % percent or px.
* @default 100%
*
* @param opacity
* @desc The css opacity. 0-1 css的不透明度。0 - 1
* @default 1
*
* @param zIndex
* @desc The css zIndex.
* @default 10000
*
* @param 改变(一般用于旋转)
* @param transform
* @desc 可用脚本 $gameTemp._DXXtransform = "rotate(0deg)"; 修改。
* @default rotate(0deg)
*
* @param 延时
* @param delay
* @desc The Img life time. set to 0 to disable. unit is microseconds.
* Img的使用寿命。设置为0禁用。单位是微秒。
* @default 0
*
* @param path
* @desc The gif file you save.
* @default img/gif/
*
* @help
* Introduction
* This plugin support rmmv show gif, jpg, and many formats img from website or local.
* Easy to use and powerful.
*
* Example:
* show:
* AXY_Gif.show({filename:'1.gif'});
* AXY_Gif.show({filename:'1.jpg'});
* AXY_Gif.show({filename:'url=img/faces/Actor1.png'});
* AXY_Gif.show({filename:'1.gif',id:2});
* AXY_Gif.show({id:3,filename:'1.gif',delay:3000});
* AXY_Gif.show({x:0, y:0, align:'topleft', filename:'url=http://www.yourdomain.com/gif.jpg'});
* AXY_Gif.show({x:0, y:0, align:'topleft', filename:'url=http://www.yourdomain.com/gif.gif'});
* all args with default:
* AXY_Gif.show({x:'Graphics.width/2', y:'Graphics.height/2-90', align:'center', filename:'1.gif',id:1,delay:0,width:'100%',height:'100%',opacity:1});
*
* move:
* AXY_Gif.move(id,x,y);
*
* remove with id:
* AXY_Gif.remove(1);
* AXY_Gif.remove(2);
* remove all:
* AXY_Gif.removeall();
*
*
* showtext
* AXY_Gif.showtext({x:500, y:500, id:50, content:'你好吗', color:'#000000', size:10});
*
* movetext
* AXY_Gif.movetext(id,x,y);
*/

// Imported
var Imported = Imported || {};
Imported.AXY_Gif = true;

// Parameter Variables
var AXY = AXY || {};
AXY.Gif = AXY.Gif || {};

AXY.Gif.Parameters = PluginManager.parameters('AXY_Gif');
AXY.Gif.Param = AXY.Gif.Param || {};

//
AXY.Gif.Param.Anchor = String(AXY.Gif.Parameters['Anchor']);
AXY.Gif.Param.X = String(AXY.Gif.Parameters['X']);
AXY.Gif.Param.Y = String(AXY.Gif.Parameters['Y']);
AXY.Gif.Param.Width = String(AXY.Gif.Parameters['Width']);
AXY.Gif.Param.Height = String(AXY.Gif.Parameters['Height']);
AXY.Gif.Param.opacity = parseFloat(AXY.Gif.Parameters['opacity']);
AXY.Gif.Param.zIndex = parseInt(AXY.Gif.Parameters['zIndex']);
AXY.Gif.Param.delay = parseInt(AXY.Gif.Parameters['delay']);
AXY.Gif.Param.path = String(AXY.Gif.Parameters['path']);

AXY.Gif.Param.transform = String(AXY.Gif.Parameters['transform']);

//main
//gif
AXY_Gif = {
        show: function () {
                //console.log(arguments[3]);
                var AXYGifArgs         =         arguments[0] ? arguments[0] : {};
                var filename         =         AXYGifArgs['filename'] ? AXYGifArgs['filename'] : "";
                var delay                 =         AXYGifArgs['delay'] ? AXYGifArgs['delay'] : AXY.Gif.Param.delay;
                var id                        =         AXYGifArgs['id'] ? AXYGifArgs['id'] : 1;
                var x                        =         AXYGifArgs['x'] != undefined ? AXYGifArgs['x'] : eval(AXY.Gif.Param.X);
                var y                        =         AXYGifArgs['y'] != undefined ? AXYGifArgs['y'] : eval(AXY.Gif.Param.Y);
                var width                =         AXYGifArgs['width'] ? AXYGifArgs['width'] : AXY.Gif.Param.Width;
                var height                =         AXYGifArgs['height'] ? AXYGifArgs['height'] : AXY.Gif.Param.Height;
                var opacity                =         AXYGifArgs['opacity'] ? AXYGifArgs['opacity'] : AXY.Gif.Param.opacity;
                var align                =         AXYGifArgs['align'] ? AXYGifArgs['align'] : AXY.Gif.Param.Anchor;
                var transform   =    $gameTemp._DXXtransform ? $gameTemp._DXXtransform : AXY.Gif.Param.transform;

               
                if(filename.indexOf('url=') != -1){
                        filename = filename.replace('url=', '');
                }
                else{
                        filename = AXY.Gif.Param.path + filename;
                }
               
                var AXYGifEntity;
                var AXYGifTemplate = '<div id="AXYGif'+id+'" class="AXYGif" width=1600 height=900 style="visibility:hidden;position:fixed;left:0px;top:0px;transform:'+transform+';z-index:'+
                AXY.Gif.Param.zIndex+';"><img src="'+filename+'" style="width:'+width+';height:'+height+';opacity:'+opacity+';" /></div>';

                AXYGifEntity = $('body').append(AXYGifTemplate);
               
                $("#AXYGif"+id+" img")[0].onload = function(){
                        if(align == 'center'){
                                if(width.indexOf("px") != -1){
                                        var widthpx = width;
                                        var widthint = parseFloat(width);
                                }
                                else{
                                        var widthint = $("#AXYGif"+id+" img")[0].naturalWidth*parseFloat(width)/100;
                                        if(widthint == 0){console.log("必须提前加载图片 否则naturalWidth为0");}
                                        var Wadj = AXY_Gif.AdjustWidth(widthint);
                                        var widthpx = Wadj+'px';
                                }
                                if(height.indexOf("px") != -1){
                                        var heightpx = height;
                                        var heightint = parseFloat(height);
                                }
                                else{
                                        var heightint = $("#AXYGif"+id+" img")[0].naturalHeight*parseFloat(height)/100;
                                        var Hadj = AXY_Gif.AdjustHeight(heightint);
                                        var heightpx = Hadj+'px';
                                }

                                var imgx = widthint/2;
                                var imgy = heightint/2;
                                var divx = x-imgx;//*parseFloat(width)/100;                               
                                var divy = y-imgy;//*parseFloat(height)/100;

                                divx = AXY_Gif.AdjustX(divx);
                                divy = AXY_Gif.AdjustY(divy);

                // console.log("x:" + divx + " y:" + divy);
                                $("#AXYGif"+id+" img").css({'width':widthpx,'height':heightpx});
                                $("#AXYGif"+id).css({left:divx+'px', top:divy+'px', visibility:'visible'});

                        }
                        else{
                        var wint = $("#AXYGif"+id+" img")[0].naturalWidth * parseFloat(width)/100;                       
                        var hint = $("#AXYGif"+id+" img")[0].naturalHeight * parseFloat(height)/100;
                        if(wint == 0){console.log("必须提前加载图片 否则naturalWidth为0");}
                        // console.log("w:" + wint + " h:" + hint);
                        var w = AXY_Gif.AdjustWidth(wint) + 'px';
                        var h = AXY_Gif.AdjustHeight(hint) + 'px';
                        x = AXY_Gif.AdjustX(x);
                        y = AXY_Gif.AdjustY(y);
                        $("#AXYGif"+id+" img").css({'width':w,'height':h});
                        $("#AXYGif"+id).css({left:x, top:y, visibility:'visible'});
                        // console.log($("#AXYGif"+id));
                    }
                }
                // console.log($("#AXYGif"+id));
                if(delay>=1){
                        setTimeout(function()
                        {
                                $('#AXYGif'+id).remove();
                        }, delay);
                }
        },
        remove: function () {
                var id                        =         arguments[0] ? arguments[0] : 1;
                // console.log($('#AXYGif'+id));
                // console.log($('#AXYGif'+id).stop());
                $('#AXYGif'+id).stop().animate({"opacity": "0"},500, function() {
                        $(this).remove();
                });
        },
        removeall: function () {
                $('.AXYGif').stop().animate({"opacity": "0"}, 500, function() {
                        $(this).remove();
                });
        },
        move: function () {
                var id        = arguments[0] ? arguments[0] : 1;
        var x1 = arguments[1] ? arguments[1] : 1;   
        var y1 = arguments[2] ? arguments[2] : 1;

                x1 = AXY_Gif.AdjustX(x1);
                y1 = AXY_Gif.AdjustY(y1);

                x1 = x1 + "px";
                y1 = y1 + "px";

                $('#AXYGif'+id).animate({left: x1, top: y1},"fast");
        },
        // removeall: function () {
        //         $('.AXYGif').stop().animate({"width": "0","height": "0"}, "normal", function() {
        //                 $(this).remove();
        //         });
        // }
        showtext: function () {
                var AXYGifArgs         =         arguments[0] ? arguments[0] : {};

                var delay                 =         AXYGifArgs['delay'] ? AXYGifArgs['delay'] : AXY.Gif.Param.delay;
                var id                        =         AXYGifArgs['id'] ? AXYGifArgs['id'] : 1;
                var x                        =         AXYGifArgs['x'] != undefined ? AXYGifArgs['x'] : 0;
                var y                        =         AXYGifArgs['y'] != undefined ? AXYGifArgs['y'] : 0;
                var opacity                =         AXYGifArgs['opacity'] ? AXYGifArgs['opacity'] : AXY.Gif.Param.opacity;
                var content                =         AXYGifArgs['content'] ? AXYGifArgs['content'] : 0;
                var color                =         AXYGifArgs['color'] ? AXYGifArgs['color'] : 'white';
                var size                =         AXYGifArgs['size'] ? AXYGifArgs['size'] : 5;
                var zIndex                =         AXYGifArgs['zIndex'] ? AXYGifArgs['zIndex'] : 10001;

                var AXYGifEntity;

                var AXYGifTemplate = '<div id="AXYGiftext'+id+'" class="AXYGiftext" style="visibility:hidden;position:fixed;left:0px;top:0px;z-index:'+zIndex+';font-weight: 700;"><p><font size="'+size+'" face="arial" color="'+color+'">'+content+'</font></p></div>';

                AXYGifEntity = $('body').append(AXYGifTemplate);
               
                x = AXY_Gif.AdjustX(x);
                y = AXY_Gif.AdjustY(y);

                $("#AXYGiftext"+id).css({left:x, top:y, visibility:'visible'});
                // console.log($("#AXYGif"+id));
                if(delay>=1){
                        setTimeout(function()
                        {
                                $('#AXYGiftext'+id).remove();
                        }, delay);
                }
        },
        removetext: function () {
                var id = arguments[0] ? arguments[0] : 1;
                $('#AXYGiftext'+id).stop().animate({"opacity": "0"},10, function() {
                        $(this).remove();
                });
        },
        movetext: function () {
                var id        = arguments[0] ? arguments[0] : 1;
        var x1 = arguments[1] ? arguments[1] : 1;        
        var y1 = arguments[2] ? arguments[2] : 1;

                x1 = AXY_Gif.AdjustX(x1);
                y1 = AXY_Gif.AdjustY(y1);
        x1 = x1 + "px";
        y1 = y1 + "px";
                $('#AXYGiftext'+id).animate({left: x1, top: y1},300);
        },
        removealltext: function () {
                $('.AXYGiftext').stop().animate({"opacity": "0"}, "fast", function() {
                        $(this).remove();
                });
        },
        AdjustWidth: function () {
        var Wself = arguments[0] ? arguments[0] : 1;
        var Wnow = parseInt(Graphics._canvas.style.width);
        var Wadjust = Wnow / 1600 * Wself ;
        Wadjust = Math.round(Wadjust);
        return  Wadjust;
        },
        AdjustHeight: function () {
        var Hself = arguments[0] ? arguments[0] : 1;
        var Hnow = parseInt(Graphics._canvas.style.height);
        var Hadjust = Hnow / 900 * Hself ;
        Hadjust = Math.round(Hadjust);
        return  Hadjust;
        },
        AdjustX: function () {
        var Xself = arguments[0] ? arguments[0] : 1;
        var Wnow = parseInt(Graphics._canvas.style.width);
        var Winner = window.innerWidth;
        var Xadjust = Wnow / 1600 * Xself ;
        if(Wnow != Winner){
           var Xpy = (Winner - Wnow) / 2;
           Xadjust = Xadjust + Xpy;
        }
        Xadjust = Math.round(Xadjust);
        return  Xadjust;
        },
        AdjustY: function () {
        var Yself = arguments[0] ? arguments[0] : 1;
        var Hnow = parseInt(Graphics._canvas.style.height);
        var Hinner = window.innerHeight;
        var Yadjust = Hnow / 900 * Yself ;
        if(Hnow != Hinner){
                var Ypy = (Hinner - Hnow) / 2 ;
                Yadjust = Yadjust + Ypy;
        }
        Yadjust = Math.round(Yadjust);
        return  Yadjust;
        }

};[/pre]

点评

是的 我就是想修改下楼主的代码 但是我找了挺久 还是没找到对应的正确的 zIndex ...  发表于 2019-8-17 21:18
这个是直接写了z-index到元素上啊, 这个比较底层, 你需要修改一下楼主的代码比较方便吧.应该有个style.zIndex的东西,  发表于 2019-8-17 21:15
用mv做了两款游戏,有兴趣的可以瞧一瞧:
《有毛病》--- 休闲、探索、策略、剧情、恐怖 都有那么一些,就是没有战斗。挺骚挺有意思的一个游戏。
steam链接:点击这里


《留离》--- 探索、高自由度、ARPG、战斗,就是没有啥剧情。
steam链接:点击这里
回复

使用道具 举报

梦石
0
星屑
3291
在线时间
350 小时
注册时间
2018-3-28
回帖
189
发表于 2019-8-18 08:04:11 | 显示全部楼层
本帖最后由 wr282828 于 2019-8-18 08:06 编辑
沉滞的剑 发表于 2019-8-17 16:08
深度管理需要对children列表进行排序, 实现方式并不统一, 你可以把你的插件发过来么, 我研究一下该怎么弄 ...


心塞,突然发现,这个动画是 游戏最初的 GameCanvas上面进行绘制的,而它的 zIndex = 1,
我如果要让动画显示在我那个插件图片上面,必须自己新建一个 canvas ,然后再在这个画布上面 绘制动画

求大佬指点 我应该咋做  
主要是我不知道 怎么在自己新建的canvas上 调用mv原本的代码绘制动画在这个画布上...


=========================================================
=========================================================
=========================================================

点评

嗯嗯 心塞塞 感觉身体被掏空...  发表于 2019-8-18 09:46
嗯, 这个好像就是很难啊....其实深度插件不需要这么写的, 应该对children进行排序就可以了. 这个它的canvas永远在游戏canvas上面啊  发表于 2019-8-18 08:12
用mv做了两款游戏,有兴趣的可以瞧一瞧:
《有毛病》--- 休闲、探索、策略、剧情、恐怖 都有那么一些,就是没有战斗。挺骚挺有意思的一个游戏。
steam链接:点击这里


《留离》--- 探索、高自由度、ARPG、战斗,就是没有啥剧情。
steam链接:点击这里
回复

使用道具 举报

梦石
0
星屑
3922
在线时间
1198 小时
注册时间
2016-8-9
回帖
2355

开拓者

发表于 2020-11-5 00:30:59 | 显示全部楼层
yang大佬抱歉来打扰了,最近在使用您的这个插件做实验,想知道能不能通过代码将正在播放的动画取消掉?跪求指点

点评

太感谢大佬了,您真的是太牛了!!!  发表于 2020-11-5 21:47
更新了  发表于 2020-11-5 09:32
酸酸甜甜就④哇噢
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部