余音·魔眼 发表于 2018-5-4 20:44
没想到这么快就出来了!激动地去下载了!
以及……错误的DLL文件是咋回事? ...
喵呜喵5 发表于 2018-5-5 00:16
希望能追加使用bitmap作为viewport
=begin ■ RGDS_SP ver 0.0.1.2 動画再生スクリプト(表示系)for VX Ace 動画再生スクリプト(ベース)より下に配置してください。 =end module RGDS_SP @@visible = false # ■ 動画設定クラス $game_system.movie_infoで使用 class MovieInfo attr_reader :x attr_reader :y attr_reader :z attr_reader :width_max attr_reader :height_max attr_reader :origin_center attr_accessor :mode attr_accessor :refresh_flag def initialize @x = Graphics.width / 2 @y = Graphics.height / 2 @z = 500 @width_max = 0 @height_max = 0 @origin_center = true @mode = 0 @refresh_flag = false end # セッター def x=(n) @x = n @refresh_flag = true end def y=(n) @y = n @refresh_flag = true end def z=(n) @z = n @refresh_flag = true end def width_max=(n) @width_max = n @refresh_flag = true end def width_max=(n) @width_max = n @refresh_flag = true end def origin_center=(flag) @origin_center = flag @refresh_flag = true end # ■ 表示位置、サイズを指定します。 #- x, y: 表示座標 #- width_max, height_max: 表示枠。この内部に収まるように拡大縮小します。 # : どちらかが0以下の場合拡大縮小は行われません。 #- orogin: 表示位置基準点 false(デフォ): 動画の左上, true: 動画の中心を上記 #- の[x,y]にあわせます def set_position(x=0,y=0,width_max=0,height_max=0,origin=false) @x = x @y = y @width_max = width_max @height_max = height_max @origin_center = origin @refresh_flag = true end # ■ 以降の表示位置、サイズをデフォルトに戻します。 # 拡大縮小なし、左上にあわせて表示 def reset_position @x = Graphics.width / 2 @y = Graphics.height / 2 @width_max = 0 @height_max = 0 @origin_center = true @refresh_flag = true end end class MovieSprite < ::Sprite # 初期化 def initialize(viewport=nil) super self.visible = false self.bitmap = RGDS.bitmap fix_position() end # 拡大縮小処理 def change_zoom zoom = 1.0 bw = self.bitmap.width bh = self.bitmap.height return if bw <= 0 or bh <= 0 if $game_system.movie_info.width_max > 0 and $game_system.movie_info.height_max > 0 zoom_w = $game_system.movie_info.width_max.to_f / bw.to_f zoom_h = $game_system.movie_info.height_max.to_f / bh.to_f zoom = [zoom_w, zoom_h].min end self.zoom_x = zoom self.zoom_y = zoom end # 表示位置変更 def fix_position self.x = $game_system.movie_info.x self.y = $game_system.movie_info.y self.z = $game_system.movie_info.z if $game_system.movie_info.origin_center self.ox = self.bitmap.width / 2 self.oy = self.bitmap.height / 2 end change_zoom() end def update if (self.visible = RGDS.visible) if RGDS.bitmap_changed? or self.bitmap.disposed? self.bitmap = RGDS.bitmap fix_position() RGDS.bitmap_changed = false $game_system.movie_info.refresh_flag = false elsif $game_system.movie_info.refresh_flag fix_position() $game_system.movie_info.refresh_flag = false end end super end end module_function # ■ 動画をオープンします。初回は1~2秒ほどかかる場合もあります。 def open(filename) RGDS.open(filename) end # ■ 動画を停止しクローズします。 def close RGDS.close() end # ■ openされた動画を再生します。一時停止中なら再開します。 # 再生が終わると自動的にクローズします。 def run RGDS.run() end # ■ 動画を一時停止します。再開はrunで行います。 def pause RGDS.pause() end # ■ 動画をオープンして自動再生します。 #- 決定キーでスキップします。 def start_movie(filename, option={}) # スキップ検出オプション if option.key?(:skip_sw) skip_sw = option[:skip_sw].to_i else skip_sw = 0 end # スキップ禁止モードオプション if option.key?(:nsm) nsm_mode = option[:nsm] else nsm_mode = false end if skip_sw > 0 $game_switches[skip_sw] = true end scene_temp = SceneManager.scene if scene_temp.is_a?(Scene_Map) or scene_temp.is_a?(Scene_Battle) msgv = SceneManager.scene.instance_variable_get(:@message_window) msgv.update tempv = msgv.visible msgv.visible = false # オープン RGDS.open(filename) RGDS.run() # 終了またはボタンが押されるまでループ loop do break if scene_temp != SceneManager.scene # 画面の更新 if SceneManager.scene.is_a?(Scene_Map) SceneManager.scene.update_for_fade else SceneManager.scene.update_basic end if !RGDS.active? # 再生終了 if skip_sw > 0 $game_switches[skip_sw] = false end break end unless nsm_mode if Input.trigger?(Input::A)# or Input.trigger?(Input::B) break end end end RGDS.close() msgv.visible = tempv end end # ■ 以降の表示位置、サイズを指定します。 #- x, y: 表示座標 #- width_max, height_max: 表示枠。この内部に収まるように拡大縮小します。 # : どちらかが0以下の場合拡大縮小は行われません。 #- origin: 表示位置基準点 false: 動画の左上, true: 動画の中心を上記 #- の[x,y]にあわせます def set_position(x=0,y=0,width_max=0,height_max=0,origin=false) $game_system.movie_info.set_position(x,y,width_max,height_max,origin) end # ■ 以降の表示位置、サイズをデフォルトに戻します。 # 拡大縮小なし、中央にあわせて表示 def reset_position $game_system.movie_info.reset_position() end # 再生音量取得 def get_volume return RGDS.get_volume() end # 再生音量設定 def set_volume(volume) return RGDS.set_volume(volume) end end class Game_System def init_movie_info @movie_info = RGDS_SP::MovieInfo.new end def movie_info init_movie_info() if @movie_info.nil? return @movie_info end end class Spriteset_Map alias :_hn_movie__initialize :initialize unless private_method_defined?(:_hn_movie__initialize) def initialize # 元の処理 _hn_movie__initialize # 追加処理 create_movie update_movie end alias :_hn_movie__dispose :dispose unless method_defined?(:_hn_movie__dispose) def dispose dispose_movie _hn_movie__dispose end alias :_hn_movie__update :update unless method_defined?(:_hn_movie__update) def update update_movie _hn_movie__update end # ■ シーン移行時に動画を待機モードにします。 def create_movie @sp_movie = RGDS_SP::MovieSprite.new() @sp_movie.viewport = @viewport1 RGDS.system_resume end # ■ シーン移行時に動画を待機モードにします。 def dispose_movie RGDS.system_pause @sp_movie.viewport = nil @sp_movie.dispose @sp_movie = nil end def update_movie if RGDS.active? RGDS.update end @sp_movie.update unless @sp_movie.nil? end end class Spriteset_Battle alias :_hn_movie__initialize :initialize unless private_method_defined?(:_hn_movie__initialize) def initialize # 元の処理 _hn_movie__initialize # 追加処理 create_movie update_movie end alias :_hn_movie__dispose :dispose unless method_defined?(:_hn_movie__dispose) def dispose dispose_movie _hn_movie__dispose end alias :_hn_movie__update :update unless method_defined?(:_hn_movie__update) def update update_movie _hn_movie__update end # ■ シーン移行時に動画を待機モードにします。 def create_movie @sp_movie = RGDS_SP::MovieSprite.new() @sp_movie.viewport = @viewport1 RGDS.system_resume end # ■ シーン移行時に動画を待機モードにします。 def dispose_movie RGDS.system_pause @sp_movie.viewport = nil @sp_movie.dispose @sp_movie = nil end def update_movie if RGDS.active? RGDS.update end @sp_movie.update unless @sp_movie.nil? end end
devil033 发表于 2018-5-7 19:58
这次好了,不会崩了
但有个新的问题
我用了一个视频格式扩展脚本,现在这个版本会跳过视频播放(不播放视频 ...
guoxiaomi 发表于 2018-5-20 17:06
今天下载1.0.2版本的example试图运行,发现在笔记本上能正常执行,在台式机上显示“Game.exe”已停止工作。 ...
guoxiaomi 发表于 2018-5-20 17:06
今天下载1.0.2版本的example试图运行,发现在笔记本上能正常执行,在台式机上显示“Game.exe”已停止工作。 ...
fux2 发表于 2018-5-22 16:56
Game.exe停止工作的时机大概是什么时候?
guoxiaomi 发表于 2018-5-23 20:22
日志名称: Application
来源: Application Error
日期: 2018/5/23 20:18 ...
路路 发表于 2018-5-26 09:08
弱弱的问一下在PS_OUTPUT PS中如何用传回的参数(int x y..)点对点(或者矩形着色)texture myparam_tex(纹 ...
余音·魔眼 发表于 2018-6-5 19:28
我想问一下,跟烛光脚本冲突怎么办
233213fedf 发表于 2018-6-17 21:44
这什么情况……
391.22 KB, 下载次数: 145
⑨姐姐 发表于 2018-6-18 14:13
@KB.Driver 试试这个exe如何?
KB.Driver 发表于 2018-6-18 15:24
emmm...
用了以后好多设计透明度的部分都出问题了……(还挺严重的……)
另外坐标的颜色是正常了,画面 ...
⑨姐姐 发表于 2018-6-18 19:04
如果方便的话可以试试在空白工程里重现出对应的问题?
如果依赖外部脚本的话麻烦看看是具体哪个脚本出问 ...
fux2 发表于 2018-6-18 01:09
请问朋友的显卡是什么型号的。
pajiman1999 发表于 2018-7-9 16:35
我系统是 win7 我朋友系统是 win10 打了dx9
pajiman1999 发表于 2018-7-9 18:39
好的 我叫他试试
2.32 KB, 下载次数: 93
错误文件
Nil2018 发表于 2018-5-4 19:57
十分感谢大佬们的努力!
就是我这里每次保存以后都会dll报错.....
1262917464 发表于 2018-7-27 17:30
字体是什么鬼哦(
Font.pixel怕不是假的
以及在xp下面直接显示错乱(
七重 发表于 2018-8-15 07:56
直到今天才尝试使用了一下这个。
效果让人感动。
class Bitmap def invert self.process_color do |color_arr| color_arr.size.times do |i| color_arr[i].red = 255-color_arr[i].red color_arr[i].green = 255-color_arr[i].green color_arr[i].blue = 255-color_arr[i].blue end end self end end
fux2 发表于 2018-8-15 21:06
加入这个试试,没试过不知道对不对(*x
class Bitmap
七重 发表于 2018-8-15 21:28
十分感谢你的帮助。
invert已经不会报错了。
fux2 发表于 2018-8-15 23:22
你可以试着增加这么个空方法,如果有其他的报错也可以尝试这样处理,因为这些方法你不一定有用到,放个 ...
七重 发表于 2018-8-16 08:45
谢谢,这样一来确实可以运行了。
虽然是黑屏。
1.49 MB, 下载次数: 178
1.42 MB, 下载次数: 154
七重 发表于 2018-8-30 09:39
我体验了一下新附带的光照脚本,确实是很厉害的,也许是当之无愧的技术最强?
感谢你的劳动与付出。
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |