|
|
|
2025/11/23(Sun) 02:18:05|NO.104314
【 WebDish の話題 なんでも 】
まだうまく知られていない、広まっていない気がしますが、
WebDish は、HSP3Dishのプログラムを送信すると公開ページを自動生成してくれる超便利サービスです。
https://dev.onionsoft.net/seed/webdish.html
今年のHSPプログラムコンテストは締切になりましたが、
WebDish 自体はコンテストと無関係に、365日24時間アップロード公開が可能です。
だれでも利用できて無料です。(わずらわしい広告などもはいりません)
さいしょよくわからなくても、一度 スクリプトを貼り付けて登録してみるとわかります。
ためしに、HSP3に付属している公式サンプルの「ブロック崩し block3 」の
スクリプトをそのままコピーして、送信して、テストしてみるのがよいです。
スクリプトはHSP3のフルセットのサンプルのなかにはいっていますが、よくわからない場合は、
こちらのサイトの右下から「 block3 」をえらんで、出てきたスクリプトをコピーしてもOK
http://peppermint.jp/products/hsp/try.html
全体の便利さがわかったら、スクリプト内の一部分の文章や色などを変えて
いろいろためしてみると良いです。
さきほどの peppermint.jp のサイトでは 公開ページを生成することなく
スクリプトの動作がためせますが、動作はその場かぎりで廃棄されます。
WebDish で公開ページを生成すると、その自分独自のURLをもてるので、
その URLを友達や知り合いに教えたり、SNSで宣伝すれば、
みんなに自分のつくったプログラムを見てもらうことができます。
コンテストと関係なくても、
WebDish でなにか作ったひとは、ここに URL を書き込んで宣伝してくれてもうれしいです。
そのほかなんでも WebDish についての 話をきがるに書き込んでみてください。
|
|
|
2025/11/26(Wed) 20:45:44|NO.104344
お試しでWebDishで8x8のドット絵を表示するプログラムをアップしてみました。
『■でドット絵テスト1 by.naya』
https://dev.onionsoft.net/seed/webdish/9165aa79db2759e40f3366b9a4f17b6a.html
;以下ソース
#include "hsp3dish.as"
title "■でドット絵テスト1 by.naya"
sdim spr, 64
spr( 0)=1,0,1,1,1,1,0,0
spr( 8)=1,1,1,1,1,1,1,1
spr(16)=0,1,1,1,0,1,1,0
spr(24)=1,1,0,1,1,0,1,1
spr(32)=0,1,0,1,1,0,1,0
spr(40)=1,0,1,1,1,1,0,0
spr(48)=0,1,0,1,1,0,1,0
spr(56)=0,0,0,0,1,0,0,0
font "MS ゴシック", 16
px=0
py=0
randomize
repeat
await 15
ctt++
if (ctt>50) : px=rnd(480-96) : py=rnd(800-96) : ctt=0
redraw 0
gradf 0, 0, 480, 800, 0, $000000, $000000
repeat 8
cy=cnt
repeat 8
cx=cnt
if (spr((cy*8)+cx)!=0) {
pos px+(cx*12), py+(cy*12)
color 0, 255, 255 : mes "■"
}
loop
loop
redraw 1
loop
キャラクターを沢山表示しなければ、レトロチックなゲームが作れそうですね!
|
|
|
2025/11/26(Wed) 21:32:14|NO.104347
すみません、NO.104344のサンプルで変数の初期化部分を間違えて文字列変数にしていました。
誤)
sdim spr, 64
正)
dim spr, 64
サンプルでは数値配列を使用していますが、もちろん文字列でデータを持たせる事も可能です(strmid関数で文字データを取得)。
|
|
|
2025/11/29(Sat) 23:10:13|NO.104356
WebDishではcelbitmapという命令を利用することで配列データを元に自作画像が使用できるようです。
試しにシューティングゲーム風のテストプログラムを作成しました。
画像データの持たせ方や容量圧縮などは工夫する必要があるようです。
「org_spr_test1」
https://dev.onionsoft.net/seed/webdish/39276b163cedce22372e51d934d67400.html
#include "hsp3dish.as"
#packopt xsize 640
#packopt ysize 480
screen 0, 640, 480, 0
title "org_spr_test1 by.naya"
;スプライトデータ(パレット番号0-3:0=透明)
sdim sprdata, 16*16
sprdata ="0000031122300000"
sprdata+="0000312332230000"
sprdata+="0000121133220000"
sprdata+="0003131133323000"
sprdata+="0003133333323000"
sprdata+="0313132222323130"
sprdata+="0323123333223230"
sprdata+="0323213223123230"
sprdata+="0333321111233330"
sprdata+="0312332222331230"
sprdata+="3111231331311123"
sprdata+="3111231331311123"
sprdata+="3333332332333333"
sprdata+="3322333003332233"
sprdata+="0311300000031130"
sprdata+="0033000000003300"
;スプライトパレットデータ
dim sprpal, 4
sprpal(0)=$FF000000
sprpal(1)=$FFFFFFFF
sprpal(2)=$FFBCBCBC
sprpal(3)=$FFA01060
;スプライトデータのcel画像化
buffer 2, 256, 256, screen_offscreen
gsel 0
dim bitmap, 256*256
pofs=0
repeat 16*16
chk=0+strmid(sprdata, cnt, 1)
if (chk!=0) {
ptt=((cnt/16)*256)+(cnt\16)
bitmap(pofs+ptt)=sprpal(chk)
}
loop
celbitmap 2, bitmap
celdiv 2, 16, 16
;WebDish素材
celload dir_tv+"afont8.png", 3, 0
celdiv 3, 8, 8, 0, 0
;自機弾データ
dim shx, 8
dim shy, 8
repeat 8
shx(cnt)=0
shy(cnt)=-48
loop
;星データ
dim starx, 16
dim stary, 16
dim starc, 16
dim stars, 16
randomize 24372
repeat 16
starx(cnt)=rnd(32)*8
stary(cnt)=rnd(192)
starc(cnt)=rnd(16)
stars(cnt)=rnd(3)+1
loop
;効果音のロード
mmload dir_tv+"se04.wav", 0, 0
mmload dir_tv+"se06.wav", 1, 0
mmload dir_tv+"se09.wav", 2, 0
mmload dir_tv+"se_break3.wav", 3, 0
;BGMデータ作成
randomize 24454
dim bgm, 64
repeat 64
bgm(cnt)=rnd(4)
loop
;ランダムシードと変数の初期化
randomize
px=120
py=88
spd=4
shot=0
;メインルーチン
*main
;BGM再生処理
bgmwt++
if (bgmwt>5) : bgmwt=0 : bgmct=(bgmct+1)\64 : if (bgm(bgmct)!=0) : mmplay bgm(bgmct)
;入力受付処理
stick key, 15+16
if (key&1) : px-=spd : if (px<0) : px=0
if (key&2) : py-=spd : if (py<0) : py=0
if (key&4) : px+=spd : if (px>240) : px=240
if (key&8) : py+=spd : if (py>176) : py=176
;自機弾処理
swt--
if (key&16) {
if (shot<8)&&(swt<0) {
mmplay 0
shot++
repeat 8
if shy(cnt)<0 : shx(cnt)=px : shy(cnt)=py-8 : break
loop
swt=5
}
}
;描画開始
redraw 0
;画面クリア
gradf 0, 0, 640, 480, 1, $00000, $000000
gradf 64, 48, 512, 384, 1, $0007F, $000000
;自機弾表示
if (shot>0) {
repeat 8
if (shy(cnt)!=-48) {
shy(cnt)-=4 : if (shy(cnt)<0) : shy(cnt)=-48 : shot--
pos 64+(shx(cnt)*2), 48+(shy(cnt)*2) : gmode 2
celput 2, 0, 2.0, 2.0
}
loop
}
;背景星表示
repeat 16
stary(cnt)+=stars(cnt) : if (stary(cnt)>190) : stary(cnt)=0
pos 64+(starx(cnt)*2), 48+(stary(cnt)*2) : gmode 2
celput 3, 20+(starc(cnt)*256), 2.0, 2.0
loop
;自機表示
pos 64+(px*2), 48+(py*2) : gmode 2
celput 2, 0, 2.0, 2.0
;ステータス表示
patxt="PX="+px+":PY="+py
pax=0 : pay=0
gosub *put_afont
patxt="SHOT="+shot
pax=0 : pay=8
gosub *put_afont
redraw 1
await 1000/30
goto *main
;cel画像で文字を表示(サブ)
*put_afont
pas=strlen(patxt)
repeat pas
pan=peek(patxt, cnt)
pos (pax*2)+64, (pay*2)+48
gmode 2 : celput 3, pan, 2.0, 2.0, 0.0
pax+=8
loop
return

| |
|
|
2025/12/1(Mon) 12:56:24|NO.104367
【 Windows版 HSP3ソフト、アプリ作品の一部分を、
WebDish や hsp3dish.js で公開すると可能性や認知度が広がるかも…!? 】
じぶんでオリジナルの Windows版 HSP作品を一本完成させるというのはとてもすごいことだと思います。
なので、その自分の作った作品をさらに多くのひとに知ってもらうために、
スマホやMacでもうごく、ブラウサで動作する WebDish や hsp3dish.js 用に移植して、公開
するというのはどうでしょうか?
最初はあまり重くかんがえずに、自分の作品のほんの一部分だけ小さなスクリプトを切り出して、
HSP3Dish で動作するようにして、それを WebDish や hsp3dish.js のカタチで公開できれば、
インストール作業がたいへんなので遊ばなかった人のもとへも届けることができるかもしれません。
とにかくいまの日本ではたくさんのひとが、スマホや iPadタブレットなどを使用しています。
「パソコンを持っていないひとにも見てもらえる」というのはかなり大きいことかも。
自分のHSP3作品をもとにして、WebDish や hsp3dish.js を作る。なかなか面白いかもですよ。
自作品とはいえ、一部分だけスクリプトを切り出すのがむずかしいゲーム内容もあると思うので、
そういうときは、スピンオフ作品とわりきって、本作品に登場するキャラクターやストーリーだけ切り出してきて、
ミニゲームや、ほんのすこしだけ動く「ごあいさつ用告知アプリ」として作成するのも良いかも。
うごいたら、人が集まるSNSや掲示板などに書き込めば、すぐにためしてみてくれるひとがあらわれるはずです。
【 hsp3dish.jsサンプルページ 】
https://hsp.tv/make/hsp3js.html
【 hsp3dish.js 公式マニュアル 】
https://www.onionsoft.net/hsp/v37/doclib/hsp3dish_js.htm
【 HSP3Dish プログラミングマニュアル 】
https://www.onionsoft.net/hsp/v37/doclib/hsp3dish_prog.htm
【 公式 WebDishサービス - SoupSeed 】
https://dev.onionsoft.net/seed/webdish.html

| |
|
|
2025/12/2(Tue) 15:36:31|NO.104372
久しぶりに掲示板を開くと、「WebDish」の文字が目に入ってきたので、ちょっとお邪魔致します。
プロコンも結果発表され、入賞者の喜びの声がXに溢れています。私は見事落第(落選)。
ただ、スマホで3Dゲーム、の目的は果たせましたので、喜んで留年生になります。
じゅんちゃんおじさんには、貴殿のHPでもお世話になった者です。
今コンテストには、 hsp3dish-gp.js による3Dゲームを出品しましたが、
これは、スマホゲームは2Dが主流で、3Dの例を見ないので、やってみようということでした。
その様子は、掲示板の私のスレッド『Webアプリ集です。PCでもスマホでも実行できます。』に。
この私のHPに載せた実験作や、コンテスト落選作ではありますが、出品作を見て頂くと嬉しいです。
|
|
|
2025/12/2(Tue) 22:31:18|NO.104374
じゅんちゃんおじさん、ご紹介有難うございます。
hsp3 で、スマホの3Dゲーム作成が広がることを切に願う者です。
|
|
|
2025/12/5(Fri) 00:27:05|NO.104376
現在公開中の自作ツール「MSXDRAW1.1」のサンプルデータをWebDishで描画するテストプログラムを作成しました。
「msx_draw_test1」
https://dev.onionsoft.net/seed/webdish/0f09cb3310404f9c6e6d7f2ee621784b.html
シンプルな線画グラですけど、がんばればレトロチックなアドベンチャーゲーム等も作れそうですね!
情報:celbitmap命令は画像バッファのサイズが正方形でないと上手く動作しないようです。
以下ソース
;MSXDRAW1.1のDRAWデータをWebDishで描画する
#include "hsp3dish.as"
#packopt xsize 640
#packopt ysize 480
screen 0, 640, 480, 0
title "msx_draw_test1 by.naya"
;MSXDRAWデータ
ptt=430
sdim dd, 16, ptt
dd(000)="BM0,24","M77,0","BM0,36","M75,9","BM62,147","M0,179","BM0,185","M112,129","BM113,134","M4,190","BM112,75","M121,84","M123,93","M118,102","M119,120","M131,131","M156,136","M174,144","M180,147","M211,130","M232,112","BM163,118","M163,118","M168,121","M176,117","M181,121","M186,116","BM171,126","M175,130","M179,130","M182,125","BM152,90"
dd(032)="M151,98","M146,101","M151,104","M157,105","M159,109","BM159,109","BM192,49","M180,46","BM186,47","M197,28","M218,26","M238,37","M240,54","M233,67","M234,48","M213,33","M198,41","M191,49","BM238,39","M248,35","M254,31","M243,44","M239,46","BM216,36","M211,45","M211,71","M217,88","M222,89","M231,76","M233,64","BM212,71","M217,66"
dd(064)="M220,77","M224,76","M228,65","M232,69","BM212,54","M215,59","M224,54","M227,46","M220,40","M216,40","M212,45","BM203,87","M215,89","M224,94","M229,88","BM229,88","BM210,96","M206,105","M214,98","M216,104","M221,101","BM129,103","M126,109","M134,105","M136,110","M139,105","BM149,94","M149,94","M141,93","M135,99","M130,94","BM126,72"
dd(096)="M121,56","M127,47","M136,52","M146,61","M139,49","M125,39","M114,50","M114,57","M111,59","M98,60","M106,64","M116,64","M125,71","BM136,54","M135,58","M138,77","M143,91","M150,80","M146,60","M144,68","M136,66","BM139,79","M142,74","M144,82","M149,82","BM78,0","M68,31","M78,64","M109,88","M112,130","M120,145","M129,134"
dd(128)="M135,131","BM237,60","M233,113","M232,130","BM232,130","M247,101","M255,69","BM233,126","M245,118","M255,113","BM165,140","M160,148","M173,157","M202,147","M225,133","M221,126","M218,124","BM166,153","M169,163","M166,172","M156,181","M163,191","M186,187","M185,175","M166,172","BM168,158","M155,163","M143,171","M121,175","M105,191","BM162,143","M137,148"
dd(160)="M127,159","M122,174","BM93,0","M84,22","M81,46","M96,74","M110,83","BM91,49","M106,70","M114,74","BM116,2","M105,23","M112,51","BM143,1","M134,29","M134,45","BM145,1","M144,33","M149,53","M162,47","M178,49","M169,23","M170,1","M175,24","M189,43","BM196,0","M199,17","M209,28","BM198,3","M207,21","M221,31","BM221,31"
dd(192)="BM246,1","M253,7","M255,18","BM174,26","M192,14","M233,12","M193,6","M177,15","M173,28","BM133,34","M114,22","M96,23","M109,15","M122,17","M135,33","BM255,142","M221,130","M190,156","M184,176","M185,190","M197,190","M207,156","M229,145","M243,149","M255,157","BM224,156","M214,164","M216,174","M224,179","M234,173","M235,162","M230,156"
dd(224)="M223,156","BM141,173","M128,176","M136,179","M136,188","M124,191","M120,187","M116,188","M113,192","BM2,76","M26,68","M28,80","M14,85","BM14,85","BM2,76","M6,106","M33,101","M29,80","BM17,91","M5,96","BM27,76","M42,72","M48,93","M32,100","BM37,79","M36,81","M37,83","BM38,89","M41,96","BM42,72","M63,65","M74,87"
dd(256)="M46,94","BM54,91","M53,84","BM69,88","M60,80","BM52,70","M55,74","BM25,102","M34,134","M44,129","M41,119","M56,115","M50,94","BM43,105","M38,107","BM52,102","M59,96","M63,107","M72,104","M76,114","M61,123","M52,101","BM70,93","M85,84","M94,107","M77,114","M68,93","BM86,90","M79,96","BM82,103","M92,98","BM66,73"
dd(288)="M72,71","M80,86","BM88,94","M94,91","M104,112","M84,120","M69,128","M66,123","BM61,122","M52,125","M54,138","M43,142","M41,133","BM28,111","M17,113","M17,105","BM120,146","M120,128","M121,122","BM175,144","M210,126","M236,106","BM230,124","M223,130","BM150,100","M157,105","BM71,24","M78,18","M87,29","M99,19","M119,23","M131,17"
dd(320)="M130,4","M122,9","M105,4","M98,6","M87,1","BM146,4","M154,9","M165,7","M179,7","M189,2","BM147,26","M153,23","M164,21","M170,26","M185,18","M199,17","M222,5","M234,8","M243,1","BM239,63","M243,72","M251,68","M243,93","M242,79","M240,84","M239,64","BM112,89","M117,105","M115,116","M111,101","M111,89","BM65,182"
dd(352)="M58,172","M61,175","M65,168","M71,179","BM80,165","M71,171","M78,177","M85,171","M77,161","BM87,162","M86,170","M92,173","M99,166","M93,156","M102,172","M95,177","BM109,154","M102,152","M98,162","M105,166","M112,159","M106,148","BM117,158","M117,159","BM10,36","M22,38","M11,45","M19,48","BM26,40","M26,48","M35,47","M33,39"
dd(384)="M26,40","BM34,32","M45,31","M39,43","M46,40","BM52,25","M62,22","BM52,26","M53,32","M61,30","M63,37","M52,37","BM145,60","M159,56","M177,53","M187,55","M192,46","BM224,94","M228,99","M224,101","M219,114","M202,131","BM154,101","M157,94","M164,102","M157,104","BM168,121","M182,121","BM173,157","M172,172","M177,173","M178,154"
dd(416)="BM184,179","M166,176","M173,179","M164,181","M161,184","M164,191","BM141,172","M146,162","M155,156","M166,152","BM151,81","M152,88","M150,92","BM189,32"
;MSXDRAWパレットデータ
dim drwpal, 4
drwpal(0)=$00000000 :;クリア色(透明)
drwpal(1)=$FFFFFFFF :;線色(白)
;MSXDRAWデータのcel画像化
buffer 2, 256, 256, screen_offscreen
gsel 0
;画像バッファクリア
dim bitmap, 256*256
repeat 256*256
bitmap(cnt)=drwpal(0)
loop
gosub *draw
celbitmap 2, bitmap
celdiv 2, 256, 192
;WebDish素材
celload dir_tv+"afont8.png", 3, 0
celdiv 3, 8, 8, 0, 0
;効果音のロード
mmload dir_tv+"se14.wav", 0, 0
mmplay 0
;メインループ
*main
;描画開始
redraw 0
;画面クリア
gradf 0, 0, 640, 480, 1, $00000, $000000
gradf 64, 48, 512, 384, 1, $7F005F, $000000
;画像表示
pos 64, 48 : gmode 2
celput 2, 0, 2.0, 2.0
;ステータス表示
patxt="PTT="+ptt
pax=0 : pay=0
gosub *put_afont
redraw 1
await 1000/30
goto *main
;cel画像で文字を表示(サブ)
*put_afont
pas=strlen(patxt)
repeat pas
pan=peek(patxt, cnt)
pos (pax*2)+64, (pay*2)+48
gmode 2 : celput 3, pan, 2.0, 2.0, 0.0
pax+=8
loop
return
;DRAWデータを元に線を描く(サブ)
*draw
px=0 : py=0
bpx=0 : bpy=0
pi=3.14159265358979
repeat ptt
chk=strmid(dd(cnt), 0, 1)
if chk=="B" : ltxt=strmid(dd(cnt), 2, strlen(dd(cnt))-2)
if chk=="M" : ltxt=strmid(dd(cnt), 1, strlen(dd(cnt))-1)
split ltxt, ",", px, py
px=0+px : py=0+py
if chk=="M" {
ex=bpx-px : ey=bpy-py
ang=atan(ex, ey)+pi
ls=int(sqrt((ex*ex)+(ey*ey)))+1
repeat ls
dx=int(bpx+(sin(ang)*cnt))
dy=int(bpy+(cos(ang)*cnt))
bitmap((dy*256)+dx)=drwpal(1)
loop
bpx=px : bpy=py
}
if chk=="B" {
bpx=px : bpy=py
}
loop
return

| |
|
|
2025/12/5(Fri) 01:31:55|NO.104377
NO.104376のプログラムで使用する自作のMSXDRAWデータをHSPプログラム用のテキストに変換するプログラムです。
出力されたファイル内のテキストをコピペしてMSXDRAWデータの部分に置き換えてご利用ください。
予想外の不具合が発生するかもしれませんので、一応、未サポートという事でよろしくお願いいたします。
;MSXDRAW用データファイルをHSP用テキストデータにコンバート(HSP3.7用)
;TXTファイルのロード
dialog "txt", 16, "テキストファイル"
if (stat==1){
fn=getpath(refstr, 1)
txdata=""
notesel txdata
noteload fn+".txt"
ptt=notemax
repeat ptt
noteget dd(cnt), cnt
loop
} else {
end
}
;出力時の文字配列変数名
sdim tag, 64
tag="dd"
;データの変換
drwsize=ptt
ctt=0 : dwct=0
sdim drwdata, 256, (drwsize/32)+1
drwdata(0)=tag+"("+0+")="
repeat drwsize
drwdata(dwct)+="\""+dd(cnt)+"\""
ctt+1
if (ctt>31) {
ctt=0 : dwct++
drwdata(dwct)=tag+"("+(dwct*32)+")="
}else{
if (cnt<(drwsize-1)) : drwdata(dwct)+=","
}
loop
dwct++
;出力データの書き込み
notesel outbuf
header="ptt="+drwsize
noteadd header, -1, 0
header="sdim "+tag+", 32, ptt"
noteadd header, -1, 0
repeat dwct
noteadd drwdata(cnt), -1, 0
loop
;出力データ("outdata.txt")を保存
notesave "outdata.txt"
end
|
|
|
2025/12/6(Sat) 23:16:33|NO.104397
じゅんちゃんおじさん、情報をありがとうございます。
4x4ドット絵、挑戦してみました。楽しい!、でも難しい〜。
WebDishプログラムで実行出来る範囲で手軽に利用可能なお絵描き機能があると便利ですね。
ライン機能は再現出来ましたが、閉鎖領域の塗りつぶしが難易度高そうです(特に速度面)。
昔々のパソコン通信時代のドローツール的な機能が実装できると表現方法が広がって楽しそう!
|
|