_Mikan 发表于 2019-11-13 09:54 适应了RMMV的pixiJS v4版本 |
/*: PH - Video Title @plugindesc This plugin allows you to put a video at the background of the Title Screen instead of a static image. @author PrimeHover @version 1.1 @date 11/12/2015 --------------------------------------------------------------------------------------- This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ --------------------------------------------------------------------------------------- @param Video Name @desc Name of the video (See Help Section) | (E.g. "myVideo") @param Video Muted @desc Mutes the video in the title (0: No, 1: Yes) @default 0 @param Video Loop @desc Makes the video plays in a loop (0: No, 1: Yes) @default 1 @param Video Poster Name @desc Name and extension of the image to be shown when the video is loading (E.g. "poster.png") @param Video Width @desc Width of the video in the canvas (Default: 816) @default 816 @param Video Height @desc Height of the video in the canvas (Default: 624) @default 624 @param Video Coord X @desc Coordinate X of the video in the canvas (Default: 0) @default 0 @param Video Coord Y @desc Coordinate Y of the video in the canvas (Default: 0) @default 0 @help The video you want to play in background must be inside the "movies" folder in your project. Supported extensions: "webm" The poster you want to show while the video is not ready must be inside the "pictures" folder in your project. Maintenance by Mikan on 2019.11.13 For PixiJs v4 */ (function() { /* Getting the parameters */ var parameters = PluginManager.parameters('PH_VideoTitle'); var videoName = String(parameters['Video Name']); var posterName = String(parameters['Video Poster Name']); var videoMuted = Number(parameters['Video Muted']); var videoLoop = Number(parameters['Video Loop']); var videoWidth = Number(parameters['Video Width']); var videoHeight = Number(parameters['Video Height']); var videoX = Number(parameters['Video Coord X']); var videoY = Number(parameters['Video Coord Y']); /* Video Title Class */ var PH_VideoTitle = null; function VideoTitle() { this.name = videoName; this.posterName = posterName; this.setVideoTexture(); } VideoTitle.prototype.constructor = VideoTitle; VideoTitle.prototype.setControlOptions = function() { if (videoLoop == 1) { this._video.loop = true; } else { this._video.loop = false; } if (videoMuted == 1) { this._video.muted = true; } else { this._video.muted = false; } if (posterName.trim() != '') { this._video.poster = 'img/pictures/' + this.posterName; } }; VideoTitle.prototype.getVideoSrc = function() { return 'movies/' + this.name + '.webm'; } VideoTitle.prototype.setVideoTexture = function() { this._texture = PIXI.Texture.from(this.getVideoSrc()); this._video = this._texture.baseTexture.source; this.setControlOptions(); this._texture.baseTexture.source.pause(); this._spriteVideo = new PIXI.Sprite(this._texture); this._spriteVideo.width = videoWidth; this._spriteVideo.height = videoHeight; this._spriteVideo.x = videoX; this._spriteVideo.y = videoY; }; VideoTitle.prototype.pauseVideo = function() { this._video.pause(); }; VideoTitle.prototype.playVideo = function() { this._video.play(); }; VideoTitle.prototype.update = function() { this._texture.update(); }; /* Overwritten Scene_Title methods */ Scene_Title.prototype.create = function() { /* Prevent the video to be duplicated */ if (PH_VideoTitle === null) { PH_VideoTitle = new VideoTitle(); } this.videoTitle = PH_VideoTitle; this.addChild(this.videoTitle._spriteVideo); this.createForeground(); this.createWindowLayer(); this.createCommandWindow(); }; Scene_Title.prototype.start = function() { Scene_Base.prototype.start.call(this); SceneManager.clearStack(); if (videoMuted == 1) { this.playTitleMusic(); } this.startFadeIn(this.fadeSpeed(), false); }; Scene_Title.prototype.terminate = function() { Scene_Base.prototype.terminate.call(this); this.videoTitle.pauseVideo(); SceneManager.snapForBackground(); }; var _MK_Scene_Title_update = Scene_Title.prototype.update; Scene_Title.prototype.update = function() { _MK_Scene_Title_update.call(this); this.videoTitle.update(); }; })(); |
walf_man 发表于 2019-11-12 23:38 大佬,现在是有声音,但不能播放视频啊, 只显示视频开始的那一帧图片啊, 求大佬解决一下, |
更明显了,PixiJs版本老了,回去改一下, |
本帖最后由 walf_man 于 2019-11-15 13:09 编辑 拿去试试,我这找了个视频测试了下,有声音,可是没视频,是黑的,不知道是视频问题还是没改对,你先试试,要是你那也不行,我再看看什么情况。 编辑了下:把代码折叠了,不然好大一篇; 编辑了下:黑屏问题已经解决,屏蔽播放和暂停按钮即可,经过测试,静音、循环功能是完好的,我这视频文件较小,所以哪个poster image没看到效果; 遗留问题:不能控制播放和暂停; 测试环境,rmmv1.6.1; 编辑了下:新增增强优化版标题页面视频背景插件:RMMV标题页面用视频做背景的插件 代码 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-23 05:41
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.