WebDish素材(画像)のプレビューが表示できるものをWebDishで作成してWebDish上で公開しました
スクリプト
⭐️このスクリプトは自由に再利用してつかって大丈夫です。好きなように改造して、ためしに WebDishへ送信してみてください。面白いものができたら HSP3公式掲示板に書き込んでおけば、みんなが見てくれると思います
【重要】
2025年11月27日時点で、公式の「WebDish素材 画像一覧」にあっても、
https://dev.onionsoft.net/seed/webdish_res.html
実際のサーバには存在しない画像ファイルが数点あります。yamabg.jpg
cardbg.png
cardbg2.png
kumo.png
myship.png
sea.png
testchr.png
yamabg16.png”
#include "hsp3dish.as"
screen 0,800,800 //最適なサイズを設定する
title "WebDish素材 画像プレビュー 0.1"
setumei = "WebDishで使用できる画像が表示されます" // 最初のメッセージ
//------------------------------------------------
tmp_fname="picfname"
sdim fname,16,200 //32文字のファイル名200個
fname(0)="bg01.jpg"
fname(1)="bg02.jpg"
fname(2)="bg03.jpg"
fname(3)="bg04.jpg"
fname(4)="bg05.jpg"
fname(5)="bg06.jpg"
fname(6)="bg07.jpg"
fname(7)="bg08.jpg"
fname(8)="bg09.jpg"
fname(9)="bg10.jpg"
fname(10)="hsp3scr.jpg"
fname(11)="sozai1.jpg"
fname(12)="sozai10.jpg"
fname(13)="sozai11.jpg"
fname(14)="sozai12.jpg"
fname(15)="sozai13.jpg"
fname(16)="sozai14.jpg"
fname(17)="sozai15.jpg"
fname(18)="sozai2.jpg"
fname(19)="sozai3.jpg"
fname(20)="sozai4.jpg"
fname(21)="sozai5.jpg"
fname(22)="sozai6.jpg"
fname(23)="sozai7.jpg"
fname(24)="sozai8.jpg"
fname(25)="sozai9.jpg"
fname(26)="yama.jpg"
fname(27)="yama2.jpg"
fname(28)="yama2.jpg"//画像ファイルがサーバに無いので同じファイル名で対処
fname(29)="afont8.png"
fname(30)="baku.png"
fname(31)="ball64.png"
fname(32)="bfont8.png"
fname(33)="bg.png"
fname(34)="bgcel.png"
fname(35)="bgpeas.png"
fname(36)="bgsmoke.png"
fname(37)="bgtex.png"
fname(38)="bom.png"
fname(39)="btn_hard.png"
fname(40)="btn_hsptv.png"
fname(41)="btn_hsptv.png"//画像ファイルがサーバに無いので同じファイル名で対処
fname(42)="btn_hsptv.png"//画像ファイルがサーバに無いので同じファイル名で対処
fname(43)="cfont8.png"
fname(44)="chr.png"
fname(45)="cookgirl.png"
fname(46)="dankun.png"
fname(47)="efx.png"
fname(48)="efx2.png"
fname(49)="face1.png"
fname(50)="face2.png"
fname(51)="face_fil.png"
fname(52)="face_fir.png"
fname(53)="face_kel.png"
fname(54)="face_ker.png"
fname(55)="face_tal.png"
fname(56)="face_tar.png"
fname(57)="face_til.png"
fname(58)="face_tir.png"
fname(59)="fontchr.png"
fname(60)="gamechr.png"
fname(61)="hsp3dish.png"
fname(62)="hsptv_img.png"
fname(63)="janbg.png"
fname(64)="janpai.png"
fname(65)="jp6girl.png"
fname(66)="jpchr.png"
fname(67)="kei_knight1_1.png"
fname(68)="kei_knight1_2.png"
fname(69)="kei_knight1_3.png"
fname(70)="kei_knight1_4.png"
fname(71)="kei_knight1_5.png"
fname(72)="kei_knight2_1.png"
fname(73)="kei_knight2_2.png"
fname(74)="kei_knight2_3.png"
fname(75)="kei_knight2_4.png"
fname(76)="kei_knight2_5.png"
fname(77)="kei_school1_1.png"
fname(78)="kei_school1_2.png"
fname(79)="kei_school1_3.png"
fname(80)="kei_school1_4.png"
fname(81)="kei_school1_5.png"
fname(82)="king_knight.png"
fname(83)="koma.png"
fname(84)="koma.png"//画像ファイルがサーバに無いので同じファイル名で対処
fname(85)="logop.png"
fname(86)="mapbg.png"
fname(87)="mini_kei.png"
fname(88)="mini_tamane.png"
fname(89)="mondot.png"
fname(90)="mondot.png"//画像ファイルがサーバに無いので同じファイル名で対処
fname(91)="onibtn.png"
fname(92)="parts.png"
fname(93)="pronama.png"
fname(94)="punichr.png"
fname(95)="runner.png"
fname(96)="santa_l.png"
fname(97)="santa_r.png"
fname(98)="santa_r.png"//画像ファイルがサーバに無いので同じファイル名で対処
fname(99)="shootdot.png"
fname(100)="tamadot.png"
fname(101)="tamaface.png"
fname(102)="tamane16.png"
fname(103)="tamane_b.png"
fname(104)="tamane_b1.png"
fname(105)="tamane_b2.png"
fname(106)="tamane_b3.png"
fname(107)="tamane_b4.png"
fname(108)="tamane_b5.png"
fname(109)="tamane_b6.png"
fname(110)="tamane_b7.png"
fname(111)="tamane_b8.png"
fname(112)="tamane_s.png"
fname(113)="tamane_s1.png"
fname(114)="tamane_s2.png"
fname(115)="tamane_s3.png"
fname(116)="tamane_s4.png"
fname(117)="tamane_s5.png"
fname(118)="tamane_s6.png"
fname(119)="tamane_s7.png"
fname(120)="tamane_s8.png"
fname(121)="tamane_school1_1.png"
fname(122)="tamane_school1_2.png"
fname(123)="tamane_school1_3.png"
fname(124)="tamane_school1_4.png"
fname(125)="tamane_school1_5.png"
fname(126)="tamane_wizard1_1.png"
fname(127)="tamane_wizard1_2.png"
fname(128)="tamane_wizard1_3.png"
fname(129)="tamane_wizard1_4.png"
fname(130)="tamane_wizard1_5.png"
fname(131)="tamane_wizard2_1.png"
fname(132)="tamane_wizard2_2.png"
fname(133)="tamane_wizard2_3.png"
fname(134)="tamane_wizard2_4.png"
fname(135)="tamane_wizard2_5.png"
fname(136)="tamane_y1.png"
fname(137)="tamane_y2.png"
fname(138)="tcard.png"
fname(139)="tcard.png"//画像ファイルがサーバに無いので同じファイル名で対処
fname(140)="textile.png"
fname(141)="treeset.png"
fname(142)="trump.png"
fname(143)="typegirl.png"
fname(144)="up_fil.png"
fname(145)="up_fir.png"
fname(146)="up_icon.png"
fname(147)="up_kel.png"
fname(148)="up_ker.png"
fname(149)="up_tal.png"
fname(150)="up_tar.png"
fname(151)="up_til.png"
fname(152)="up_tir.png"
fname(153)="vpad.png"
fname(154)="vpad.png"//画像ファイルがサーバに無いので同じファイル名で対処
fname(155)="uiparts.png"
dim naipic,8
naipic=28,41,42,84,90,98,139,154 //重要注意!!開発中に画像が見つからなかったファイル
page_now = 40 // 現在のページ
page_max = 156 // 全ページ数
picsize_w = 100
picsize_h = 100
//------------------------------------------------
// 操作用ボタンオブジェクト
objsize 100,40
pos 0,10 : button " << もどる", *prevpage
pos 220,10 : button "すすむ >> ", *nextpage
objsize 60,40
pos 100,10 : button "---", *change_fontsize_small //未使用
pos 160,10 : button "---", *change_fontsize_large //未使用
//================================================================
gosub *load_picfile //画像読み込み
gsel 0
//メインループ------------------------------
*main
redraw 0
gmode 2 //透明色あり
color 0,0,128 : boxf //ぬりつぶし
//説明メッセージ表示(毎回)
gosub *bamen_setumei_mesput
//背景マップ描画
gosub *map_put
//------------------------------------------------
//入力検出
stick key,15 //パソコン物理キーボード入力検知
if key&128 : end // ESCキー 押されたらプログラム終了
//------------------------------------------------
redraw 1
await 20
goto *main
stop
//================================================================
//画面を描く
*map_put
gmode 0
pos 0,100
gcopy 10,0,0,picsize_w,picsize_h
gmode 2
return
stop
//================================================================
//説明メッセージを表示(毎回)
*bamen_setumei_mesput
color 255,255,255
font "",20,16,1
pos 8,52 : mes ""+ (page_now+1)+" / "+page_max
font "",14,16,1
pos 120,60 : mes setumei
font "",24,16,1
mes tmp_fname
return
stop
//================================================================
//フォントサイズ変更 大きく ※未使用
*change_fontsize_large
//fontsize = fontsize + 2
goto *main
//================================================================
//フォントサイズ変更 小さく ※未使用
*change_fontsize_small
//fontsize = fontsize - 2
goto *main
//================================================================
//ページをすすめる
*nextpage
page_now++
//if page_now >= page_max : page_now = page_max-1
if page_now >= page_max : page_now = 0
gosub *load_picfile
goto *main
//================================================================
//ページをもどる
*prevpage
page_now--
//if page_now<0 : page_now=0
if page_now<0 : page_now = page_max-1
gosub *load_picfile
goto *main
//================================================================
//画像ファイルを読み込む
*load_picfile
buffer 10
tmp_fname=fname(page_now)
picload tmp_fname,0
picsize_w = ginfo(26)
picsize_h = ginfo(27)
gsel 0
return
stop
//================================================================
小技テクニック:
このスクリプトの冒頭部分に、たくさんのファイル名を配列に代入している部分があります。
こういう場合は、表計算アプリ(エクセルやNumbers)をべつに起動してそこで内容を作成し、.csv形式で書き出してから、テキストエディタの「置換」を使って整形して、プログラム内に貼り付けることで省力化できたります
改善や機能拡張:
拡大縮小の命令を追加して画面におさまるように表示する改造をすることもできます。
このプログラムはただサーバ上にあるとわかっている画像ファイルを表示しているだけですが、
「事前にファイルの存在確認をする処理」をいれることで、もしサーバ上にそのファイルがなかった場合にエラー終了(不正終了)するかわりに、そのファイルがなかったことをメッセージ表示で知らせて画像ファイルの読み込みはキャンセルスキップし、そのファイル名を配列に保存して次へすすみ、そこにあるはずの画像のうち、なんというファイル名の画像が、合計何個無かったのかを調べる「開発用のお役立ちテストツール」に改造して活用することもできます。