查看: 4105|回复: 10

請問關於連續顯示圖片的腳本寫法

[复制链接]
梦石
0
星屑
6835
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
发表于 2015-5-19 23:25:43 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 sdgn 于 2025-9-17 19:22 编辑

雖然XP為主....
但VX/VA也好~
看好心人方便用哪種...
請問有辦法讀取某資料夾中所有圖片按檔名順序以設定好的間隔時間連續顯示
並且消除上一個顯示的圖片嗎? 要怎麼寫成無限循環?
由於圖法煉鋼的話我覺得比較麻煩而且會很多行....

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

梦石
0
星屑
34460
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2015-5-20 06:25:35 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 2015-5-20 06:30 编辑
  1. #比如 Pictures 文件夹下名为 p0 ~ p9 这10张图片。
  2. @sprite = Sprite.new
  3. @picture_number = 0
  4. @count = 0
  5. loop do
  6.   Graphics.update
  7.   if @count % 200 == 0  # 每 200 帧换一张。
  8.     @sprite.bitmap.dispose if @sprite.bitmap
  9.     @sprite.bitmap = Bitmap.new("Graphics/Pictures/p#{@picture_number}")
  10.     @picture_number = (@picture_number + 1) % 10
  11.   end
  12.   @count += 1
  13. end
复制代码

点评

只連續顯示一次的話  发表于 2015-5-20 11:15
請問如果不循環的話怎麼改?  发表于 2015-5-20 11:13
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
6835
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
 楼主| 发表于 2015-5-20 10:08:04 | 显示全部楼层

抱歉有個

本帖最后由 sdgn 于 2015-5-20 10:58 编辑
芯☆淡茹水 发表于 2015-5-20 06:25

成功了~ 十分感謝....
但請問能否預先偵測該資料夾總共有幾張然後只讀該數量對應編號的圖片?
回复

使用道具 举报

梦石
0
星屑
34460
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2015-5-20 12:09:42 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 2015-5-20 12:21 编辑
  1. #Pictures 文件夹下图片命名为 p0 , p1 , p2 ...... pn 。
  2. @sprite = Sprite.new
  3. @picture_number = 0
  4. @count = 0
  5. loop do
  6.   Graphics.update
  7.   if @count % 200 == 0  # 每 200 帧换一张。
  8.     unless FileTest.exist?("Graphics/Pictures/p#{@picture_number}.png")
  9.       @sprite.bitmap.dispose if @sprite.bitmap
  10.       @sprite.dispose
  11.       break
  12.     end
  13.     @sprite.bitmap.dispose if @sprite.bitmap
  14.     @sprite.bitmap = Bitmap.new("Graphics/Pictures/p#{@picture_number}")
  15.     @picture_number += 1
  16.   end
  17.   @count += 1
  18. end
复制代码

点评

感謝  发表于 2015-5-20 12:17

评分

参与人数 1星屑 +50 梦石 +1 收起 理由
RyanBern + 50 + 1 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
6835
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
 楼主| 发表于 2015-5-20 12:13:43 | 显示全部楼层
本帖最后由 sdgn 于 2015-5-20 12:17 编辑
芯☆淡茹水 发表于 2015-5-20 12:09


非常感謝您~

点评

上面再添加了图片显示完后释放。  发表于 2015-5-20 12:21
图片转为 PNG 格式。  发表于 2015-5-20 12:15
如上  发表于 2015-5-20 12:14
回复

使用道具 举报

梦石
0
星屑
6835
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
 楼主| 发表于 2015-5-21 12:32:03 | 显示全部楼层
芯☆淡茹水 发表于 2015-5-20 12:09

抱歉請問有沒有辦法做成公用腳本讓我可以在地圖上用地圖腳本來呼叫使用?
回复

使用道具 举报

梦石
0
星屑
34460
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2015-5-21 13:19:29 | 显示全部楼层
事件 ---> 脚本: picture_display
  1. def picture_display
  2.   #Pictures 文件夹下图片命名为 p0 , p1 , p2 ...... pn 。
  3.   @sprite = Sprite.new
  4.   @picture_number = 0
  5.   @count = 0
  6.   loop do
  7.     Graphics.update
  8.     if @count % 200 == 0  # 每 200 帧换一张。
  9.       @sprite.bitmap.dispose if @sprite.bitmap
  10.       unless FileTest.exist?("Graphics/Pictures/p#{@picture_number}.png")
  11.         @sprite.dispose
  12.         break
  13.       end
  14.       @sprite.bitmap = Bitmap.new("Graphics/Pictures/p#{@picture_number}")
  15.       @picture_number += 1
  16.     end
  17.     @count += 1
  18.   end
  19. end   
复制代码

点评

所以我才要使用連續播放有順序的圖片 這種方式阿....  发表于 2015-5-29 12:51

评分

参与人数 1星屑 +160 收起 理由
明特·布兰马修 + 160 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
6835
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
 楼主| 发表于 2015-5-21 16:26:16 | 显示全部楼层
本帖最后由 sdgn 于 2015-5-21 16:31 编辑
芯☆淡茹水 发表于 2015-5-21 13:19
事件 ---> 脚本: picture_display


非常感謝您...
所以要做成API的話要用 def 宣告一個類別 嗎?





picture_display
          unless FileTest.exist?("Graphics/Pictures/p#{@picture_number}.png")
            @sprite.dispose
            break
          end

這樣用可以嗎?
我是想在地圖上依照不同情況讀取不同範圍的圖檔
(例如: P5~P10)

回复

使用道具 举报

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
回帖
1643

开拓者

发表于 2015-5-25 12:34:22 | 显示全部楼层
本帖最后由 kuerlulu 于 2015-5-26 11:51 编辑

按LSS的方法稍作修改
  1. def display_picture(suffix='p', frame=200, from=0, to=-1) #to=-1(到尾),1(到p0)
  2.   @sprite = Sprite.new
  3.   @picture_number = from
  4.   @count = 0
  5.   loop do
  6.     Graphics.update
  7.     if @count % frame == 0  # 每 frame 帧换一张。
  8.       @sprite.bitmap.dispose if @sprite.bitmap
  9.       unless FileTest.exist?("Graphics/Pictures/#{suffix}#{@picture_number}.png")
  10.         @sprite.dispose
  11.         break
  12.       end
  13.       break if @picture_number == to
  14.       @sprite.bitmap = Bitmap.new("Graphics/Pictures/#{suffix}#{@picture_number}")
  15.       @picture_number += 1
  16.     end
  17.     @count += 1
  18.   end
  19. end
复制代码
使用姿势:
display_picture('p', 200, 5, 10) # 按每200帧一换的速度播放'p5'到'p9'

然而我还有以前写的播放logo脚本(本质上功能是一样的)
使用姿势: logo(["001-Title01","jfkdjlfjd","fdhajkfhjkdsa"],5) # 将Titles文件夹(你可以改成别的文件夹只要你看得懂代码)内"001-Title01","jfkdjlfjd","fdhajkfhjkdsa"这三个文件进行速度5的播放(speed自己把握)。


然而我还是没明白LZ的意思 是用连续刷图做动画吗?@sdgn

点评

是說要怎麼弄成主程式在主角本 然後可以在地圖上用地圖腳本使用?就像XP播影片那個角本的用法  发表于 2015-5-25 13:19

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分


  -fk: -azogi:
回复

使用道具 举报

梦石
0
星屑
6835
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
 楼主| 发表于 2015-5-29 00:36:33 | 显示全部楼层
kuerlulu 发表于 2015-5-25 12:34
[fold=按LSS的方法稍作修改]使用姿势:
display_picture('p', 200, 5, 10) # 按每200帧一换的速度播放'p5'到 ...

為了做 自定義效果動畫 和 自定義的人物動作...
例如您說的 LOG
或是當我選擇 攻擊 的時候的人物動作...

点评

人物整套动作是一个复杂过程,不只是一个图片显示就能解决的。  发表于 2015-5-29 08:17
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部