こんにちは。
スライドショーのサンプル書いてみたので、ぜひ参考にしてください。
DL先↓
http://koup.rosx.net/kogyov4/f_files/medias/pp2-rp2/HSP/Slideshow_test%201.00.zip
参考としてソースも乗せておきますね。
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━・
画像スライドテスト
──────────────────────────────
バージョン Ver 1.00
製作開始日 2015/04/12
製作時間 約40分
──────────────────────────────
●使い方
本スプリクト、もしくは「hsptmp.exe」をそのまま実行してください。
サウンドを差し替える場合、「sound.mp3」を差し替えてください。
画像を追加する場合、「media」の中に画像をそのまま入れてください。
削除する場合削除したい画像をそのまま削除してください。
●利用規約
「sound.mp3」については、
http://koup.rosx.net/kogyov4/index.php/page/Mysound
こちらをご覧ください。
スプリクト、画像の利用は再配布、改造配布自由です。
──────────────────────────────・*/
randomize ;乱数発生用
title "スライドショーテスト"
/*━━━━━━━━━━
初期化
──────────*/
//----画面
BFID_main1=ginfo_newid :buffer BFID_main1,640,480 ;読み込み画像1
BFID_main2=ginfo_newid :buffer BFID_main2,640,480 ;読み込み画像2
BFID_temp=ginfo_newid :buffer BFID_temp ;一時画像読み込み用
//----システム変数
BFID_temp_st=0 ;画像切り替え用スイッチ
LST_no=0 ;画像番号
//----通常変数
TIME_effect=60*2 ;フェード時間
TIME_stop=100*2 ;停止時間
PlayMode=1 ;プレイモード(0=順番,1=ランダム)
/*━━━━━━━━━━
サウンドファイルの読み込み
──────────*/
MMID_main=0 ;読み込むバファ
mmload "sound.mp3",MMID_main,1 ;サウンドファイルの読み込み
/*━━━━━━━━━━
メディアの読み込み
──────────*/
//----動画の取得
dirlist LST_fail,"media/*.JPG" ;ファイルリストの取得
LST_s=stat ;リストの数
/*━━━━━━━━━━
スライドショー開始
──────────*/
mmplay MMID_main ;サウンド再生
repeat
gosub *Effect ;フェード
wait TIME_stop
loop
stop
/*━━━━━━━━━━
フェード
──────────*/
*Effect
if LST_no>=LST_s :LST_no=0 ;繰り返し
//----画像読み込み
notesel LST_fail :noteget fail,LST_no
gsel BFID_temp :picload "media/"+fail ;画像の読み込み
sx=ginfo_sx :sy=ginfo_sy ;画像サイズの取得
switch BFID_temp_st
case 0 :gsel BFID_main1 :gzoom 640,480,BFID_temp,,,sx,sy,1 :swbreak ;画像を変倍処理
case 1 :gsel BFID_main2 :gzoom 640,480,BFID_temp,,,sx,sy,1 :swbreak ;画像を変倍処理
swend
gsel 0 ;メイン画面に戻す
//----フェード効果
repeat TIME_effect
redraw 0
fd=256.0/TIME_effect*cnt ;透明度
switch BFID_temp_st
case 0
gmode 0,640,480,0 ;通常コピーモード
pos 0,0 :gcopy BFID_main2,,,640,480 ;画像2
gmode 3,640,480,fd ;半透明
pos 0,0 :gcopy BFID_main1,,,640,480
swbreak
case 1
gmode 0,640,480,0 ;通常コピーモード
pos 0,0 :gcopy BFID_main1,,,640,480 ;画像2
gmode 3,640,480,fd ;半透明
pos 0,0 :gcopy BFID_main2,,,640,480
swbreak
swend
redraw 1
await 16
loop
//----後処理
switch PlayMode ;(プレイモード)
case 0 :LST_no++ :swbreak ;画像番号増加
case 1
repeat
_LST_no=rnd(LST_s) ;ランダムに決める
if LST_no!=_LST_no{ ;重複していなければ実行
LST_no=_LST_no
break
}
loop
swbreak
swend
BFID_temp_st^1 ;切り替えスイッチの切り替え
return