basic
Path : sample\basic
arraynote.hsp
#include "hsp3util.as" s="abc\ndef\nhij\nklm" note2array a,s *main cls syscolor 15:boxf color 0,0,0 pos 8,8:mes "配列変数のセーブ・ロードを行ないます" pos 8,32 objsize 320,24 repeat 4 input a(cnt) loop button "セーブ",*asave button "ロード",*aload button "確認",*aview button
sample\basic\arraynote.hsp - 2021/07/29
atan_grect.hsp
screen 0,320,240 cx=160:cy=120 repeat redraw 0 dir=atan(cy-mousey,cx-mousex) color 255,255,255:boxf color 0,0,0:pos 0,0 mes "mouse=("+mousex+","+mousey+") dir="+dir grect cx,cy,dir,100,100 redraw 1 await 20 loop
sample\basic\atan_grect.hsp - 2021/07/29
aviplay.hsp
window内aviファイル再生サンプル dialog "avi",16,"aviファイル" if stat=0 : goto *dlcan fname=refstr mmload fname,1 screen 0,640,480,0 cls 4 objsize 160,32 pos 0,0 button "PLAY",*gogo pos 160,0 button "END",*dlcan pos 0,32 stop *gogo mmplay 1 stop *dlcan end
sample\basic\aviplay.hsp - 2021/07/29
bmpsave.hsp
読み込んだ画像を加工してBMPで出力するプログラム mydir=dir_cur 現在のディレクトリを保存 ファイルを選択 dialog "bmp *.jpg *.gif",16 if stat = 0 : end fname=refstr picload fname @を画面に書く font msgothic,160 color 0,0,255:mes "@" 保存 sname=getpath(fname,1+8)+"_mod_bmp" chdir mydir bmpsave sname
sample\basic\bmpsave.hsp - 2021/07/29
calcsheet.hsp
簡単な表計算を行なうサンプル 枠の中に入力した数値の合計を表示し、値に応じた棒グラフを表示します。 数値を入力して、[TAB]キーで次の枠に移動できます。 HSP3.2で追加されたobjskip命令により、合計の枠はフォーカスが移動 しないよう設定されています。
sample\basic\calcsheet.hsp - 2021/07/29
cdplay.hsp
簡易CDプレイヤーサンプル ( 現在演奏中のトラックを監視するバージョン) mci "capability cdaudio can play" if stat!0 : dialog "デバイスは使用中です",1:end mci "status cdaudio number of tracks" if stat<0 : dialog "CDがセットされていません",1:end maxtrack=stat onexit *owari 終了した時のジャンプ先 mci "open cdaudio
sample\basic\cdplay.hsp - 2021/07/29
chkbox.hsp
syscolor 15:boxf オブジェクトの表面色で背景を塗りつぶす mes "Check box test" a1=1:a2=0 objsize 80,24 chkbox "変数a1",a1 chkbox "変数a2",a2 button "OK",*chkok stop *chkok m="現在の状態\na1="+a1+"/a2="+a2 dialog m stop
sample\basic\chkbox.hsp - 2021/07/29
clock.hsp
#include "hsp3util.as" gettimestr,getdatestrを使うため t1="":t2="" objsize 120,20 mesbox t1,160,32,0 メッセージボックスを表示 (オブジェクトID0になります) mesbox t2,160,32,0 メッセージボックスを表示 (オブジェクトID1になります) *tmprt gettimestr t1 getdatestr t2 objprm 0,t1 メッセージボックスID0の内容を更新 objprm
sample\basic\clock.hsp - 2021/07/29
clock2.hsp
#include "hsp3util.as" gettimestr,getdatestrを使うため screen 0,320,80 画面サイズ指定 font msgothic,30,1 文字サイズを指定 t1="":t2="" *tmprt gettimestr t1 時刻を取得 getdatestr t2 日付を取得 redraw 0 color 255,255,255:boxf 白い色で背景を塗りつぶす color 0,0,0 文字の色 pos 0,0:mes t1 時刻を表示 pos
sample\basic\clock2.hsp - 2021/07/29
dirinfo.hsp
システムのディレクトリ情報を表示する cls 3 sysfont 17 hr=" " max=13 sdim dex,64,max sdim s1,128 dex(0)="0 : カレント(現在の)ディレクトリ" dex(1)="1 : HSPの実行ファイルがあるディレクトリ" dex(2)="2 : Windowsディレクトリ" dex(3)="3 : Windowsのシステムディレクトリ" dex(4)="4 : コマンドライン文字列" dex(5)="$10000 :
sample\basic\dirinfo.hsp - 2021/07/29
dirlist.hsp
ディレクトリ一覧表示サンプル (入力したディレクトリに移動できます) dirbuf="" sel=0 ad="" objsize 200,24:pos 0,30 listbox sel,200,dirbuf input ad button "ディレクトリ変更",*chg *getdir color 255,255,255:boxf 0,0,640,24 color 0,0,0:pos 0,0:mes "DIR="+dir_cur dirlist dirbuf,"*.*" objprm
sample\basic\dirlist.hsp - 2021/07/29
editor.hsp
title "size="+strlen(buf) テキストサイズをタイトルに表示 goto *main *file_save dialog "txt",17,"テキストファイル" if stat=0 : goto *dlcan fname = refstr exname=getpath(fname,2) ファイル名の拡張子を取得 if exname="" : fname+=".txt" 拡張子がなければ.txtを追加 notesel buf notesave fname
sample\basic\editor.hsp - 2021/07/29
emes.hsp
#include "hsp3util.as" emes命令を使用するために必要です ゆっくり文字列を表示するサンプル font msgothic,30,1 a="こんにちは、HSPです。\nゆっくりと文字を出してみましょう。
sample\basic\emes.hsp - 2021/07/29
filedialog.hsp
ファイルダイアログ指定サンプル(HSP3.2) dialog命令により呼び出されるファイル選択ダイアログの パラメーター指定例を実際に実行することができます。 複数の拡張子、ファイル種別を区切り記号により記述することができます。
sample\basic\filedialog.hsp - 2021/07/29
fonts.hsp
cls 4 color 255,155,55 boxf 0,84,640,90 boxf 0,0,640,40 font "Arial",20,17 pos 20,8 color 0,0,0 mes "HSP ver3.0 font test" font "Arial",20,16 color 255,255,255 pos 40,60 mes "Non-Anti-aliased" pos 360,60 mes "Anti-aliased" color 255,255,255 pos
sample\basic\fonts.hsp - 2021/07/29
getpath.hsp
title "getpath関数のテスト" screen 0,640,320 mes "ファイルを開いて下さい。" dialog "*",16:if stat=0 : end a=refstr mes "すべて取り出す。" mes getpath(a,0) mes "拡張子を除いた部分を取り出す。" mes getpath(a,1) mes "拡張子を取り出す。" mes getpath(a,2) mes "ファイル名のみ取り出す。
sample\basic\getpath.hsp - 2021/07/29
gradf.hsp
gradf命令サンプル sx=640: sy=480 screen 0,sx,sy それぞれの頂点座標と色を配列に代入 x(0)=0 : y(0)=0 : col(0)=$0000ff x(1)=sx : y(1)=0 : col(1)=$00ffff x(2)=sx : y(2)=sy : col(2)=$ff0000 x(3)=0 : y(3)=sy : col(3)=$ff00ff グラデーションで四角形を描画 gsquare gsquare_grad, x,y,col
sample\basic\gradf.hsp - 2021/07/29
grect.hsp
title "grect" screen 0,640,480,0 cls 2 font "Arial",14 m="HSP3 Sample Image" x=160:y=160:px=4:py=4 repeat redraw 0 hsvcolor cnt/2,255,255 gmode 0,200,200 grect x,y,double(cnt)*0.07 pos 482,442:color 0,0,0:mes m pos 480,440:color 255,255,255:mes m
sample\basic\grect.hsp - 2021/07/29
groll.hsp
マウスドラッグで描画領域をスクロールさせる ( groll命令を使用したテスト ) screen 0,1200,600,0,,,480,360 repeat 6 y=cnt*100:i=cnt repeat 12 x=cnt*100 if i&1 : color 255,0,0 : else : color 0,0,255 boxf x,y,x+100,y+100 i++ loop loop color 255,255,255 font msgothic,120 pos 20,320: mes
sample\basic\groll.hsp - 2021/07/29
grotate.hsp
title "grotate" buffer 3,256,256,0 picload "../game/face.bmp" screen 0,640,480,0 cls 4 font "Arial",14 m="HSP3 grotate sample" max=20 dim xx,max dim yy,max dim px,max dim py,max dim rot,max dim prot,max repeat max xx.cnt=rnd(640) yy.cnt=rnd(480)
sample\basic\grotate.hsp - 2021/07/29
groupbox.hsp
Group Box例 syscolor 15:boxf sdim bb,1024 st1="" st2="Static Text Message..." objsize 300,100 pos 10,20 mesbox st1,280,70,2 pos 40,40 mesbox st2,200,40,2 pos 0,0 button "GROUPBOX",*dummy sendmsg objinfo_hwnd(2),$f4,7,0 pos 0,120 input bb stop *dummy
sample\basic\groupbox.hsp - 2021/07/29
gsel.hsp
gsel命令サンプル (3つのボタンで、もう1つのウインドゥの状態をコントロール) width 320,200 mes "MAIN" button "OFF",*sc0 button "ON1",*sc1 button "ON2",*sc2 screen 2,320,200 cls 4 mes "screen2" gsel 0,1 stop *sc0 gsel 2,-1 stop *sc1 gsel 2,1 stop *sc2 gsel 2,2 stop
sample\basic\gsel.hsp - 2021/07/29
gsquare.hsp
title "gsquare" randomize buffer 3 picload dir_exe+"\\doclib\\hsp3ttl.jpg" screen 0,640,480,0 gmode 0,640,200 tx.0=0:ty.0=0 tx.1=640:ty.1=0 tx.2=640:ty.2=200 tx.3=0:ty.3=200 repeat redraw 0 color 64,64,64:boxf n = cnt&127:if n>=64 : n=63-(n-64)
sample\basic\gsquare.hsp - 2021/07/29
gstyle.hsp
gstyle命令テスト screen 0,320,24 cls 3 color 255,255,255 mes "新しいウインドゥスタイル" screen 2,320,120,4 cls 2 mes "ID2以降のサイズ固定Window" screen 3,320,120,8 cls 2 mes "ツールWindow(タスクバーに出ません)" screen 4,320,120,16 cls 2 mes "縁の深いWindow" stop
sample\basic\gstyle.hsp - 2021/07/29
hsv.hsp
HSV sample y=0 repeat 256 x=0:px=2 repeat 256 hsvcolor y,cnt,255 boxf x,y,x+px,y x+=px loop y+ await 0 loop stop
sample\basic\hsv.hsp - 2021/07/29
htcopy1.hsp
半透明コピーテスト1 screen 0,640,200,0 buffer 4,640,200,0 color 255,0,0 boxf 0,0,640,200 color 0,0,255 boxf 320,0,640,100 boxf 0,100,320,200 buffer 3,640,200,0 picload dir_exe+"\\doclib\\hsp3ttl.jpg" gsel 0 *start pos 0,0 repeat 32 redraw 0 gmode 0,640,200
sample\basic\htcopy1.hsp - 2021/07/29
htcopy2.hsp
半透明コピーテスト2 screen 0,640,200,0 buffer 4,640,200,0 color 255,0,0 boxf 0,0,640,200 color 0,0,255 boxf 320,0,640,100 boxf 0,100,320,200 buffer 3,640,200,0 picload dir_exe+"\\doclib\\hsp3ttl.jpg" gsel 0 *start pos 0,0 repeat 33 redraw 0 gmode 0,640,200
sample\basic\htcopy2.hsp - 2021/07/29
line.hsp
redraw命令によるバッファ書き込みの速度テスト。 line命令を400回実行する際の違いを見ることができます。 ノーマルな描画の速度に比べて、redrawスイッチを0にして書き込んで おき、最後にredraw 1を実行した方が圧倒的に速度が違うのがわかると思います。
sample\basic\line.hsp - 2021/07/29
memcpy.hsp
メモリコピーテスト a="TEST MESSAGE" b="" memcpy b,a,16,0,5 mes "A="+a mes "B="+b memset b,'@',16,5 mes "B="+b stop
sample\basic\memcpy.hsp - 2021/07/29
memfile.hsp
bloadで読み込んだ画像データをpicloadで表示する (メモリストリームの例) notesel buf 読み込みバッファをbufに指定 fname=dir_exe+"\\doclib\\hsp3ttl.jpg" noteload fname サイズ可変バッファbufにファイルを読み込み memfile buf ストリームの直前で指定してください picload "MEM:a.jpg" 画像の拡張子識別のためダミー名a.jpgを使用 sdim buf,64
sample\basic\memfile.hsp - 2021/07/29
memnote.hsp
メモリノートパッド命令テスト a="abc\ndef\nhij" notesel a noteload "memnote.hsp" mes "行数="+notemax mes "文字数="+notesize repeat notemax noteget b,cnt mes "#"+cnt+":"+b loop noteunsel stop
sample\basic\memnote.hsp - 2021/07/29
menusample.hsp
#include "mod_menu.as" #define CMD_OPEN 1 #define CMD_QUIT 2 oncmd gosub *OnCommand, WM_COMMAND メッセージ割り込み サブメニュー作成 newmenu hfilemenu,1 addmenu hfilemenu, "開く(&O)", CMD_OPEN addmenu hfilemenu, "終了(&Q)", CMD_QUIT トップメニュー作成 newmenu hmenu,0 addmenu
sample\basic\menusample.hsp - 2021/07/29
mesinfo.hsp
title "MES命令の表示範囲取得" screen 0,640,240 font msgothic,50,font_bold|font_antialias a="Hot Soup Processor":gosub *test a="Ver3.0 testing":gosub *test stop *test color 0,0,0 cx=ginfo_cx:cy=ginfo_cy mes a mx=ginfo_mesx:my=ginfo_mesy mes "SX="+mx+"/SY="+my
sample\basic\mesinfo.hsp - 2021/07/29
mouse.hsp
マウスカーソルの座標を調べて表示します。 ボタンを押すとマウスカーソル表示ON/OFF、ランダムジャンプが可能です。
sample\basic\mouse.hsp - 2021/07/29
mouse2.hsp
title "Check mouse pointer" cx=160:cy=120 pos 0,60 button gosub "OFF",*moff button gosub "ON",*mon repeat redraw 0 color 255,255,255:boxf color 0,0,0:pos 0,0 mes "mouse=("+mousex+","+mousey+")" mes "wheel="+mousew color 255,0,0
sample\basic\mouse2.hsp - 2021/07/29
note1.hsp
メモリノートパッド命令テスト1 "note1.hsp"にインデックス番号をつけて表示 nmax=0 b="" notesel a noteload "note1.hsp" idx=0 repeat notemax noteget b,idx print "index"+idx+"="+b idx++ loop stop
sample\basic\note1.hsp - 2021/07/29
note2.hsp
メモリノートパッド命令テスト2 選んだファイルをメッセージボックスに表示。
sample\basic\note2.hsp - 2021/07/29
noteadd.hsp
title "テキストファイル作成" screen 0,320,240 cls 1 mes "指定範囲の数をテキストファイルに出力" objmode 1 pos 0,40:input p_start pos 80,40:mes "to" pos 110,40:input p_end pos 0,80:button "作成",*go stop *go buf="#NUM FILE" notesel buf i = p_end-p_start+1:if i<0 : end repeat i
sample\basic\noteadd.hsp - 2021/07/29
objimage.hsp
objimage命令によるカスタムボタンの作成 buffer 1 picload "btn_normal.bmp" screen 0,640,480 gradf ,,,, 1, 0, $c0 font "Arial",20 objmode 2 objsize 128,32 objimage 1, 0,0, 0,64, 0,32 ボタン画像の指定 button gosub "CALL",*call button "JUMP",*jmp objimage -1 通常のボタンに戻す button
sample\basic\objimage.hsp - 2021/07/29
objmode.hsp
title "press [TAB] key" cls 1 objsize 160,24 pos 20,20 objmode 1,1 button "BYE",*ok objmode 2,1 font "Modern",14 chkbox "Check Box",a bb="OBJECT TEST" font "Lucida Console",14,1 input bb sysfont 11 ed="MesBox Test..." mesbox ed,160,100,0 ly=0
sample\basic\objmode.hsp - 2021/07/29
omedetai.hsp
グラフィック機能を使ったサンプル おめでたい感じの画面が出ます wx=800:wy=600 画面サイズ screen 0,wx,wy cx=wx/2:cy=wy/2 dist=int(sqrt( cx*cx + cy*cy ))+8 dim x,4 dim y,4 kai=16 角数 tt=0 plus=3.141592/kai*2 x(0)=cx:y(0)=cy x(3)=cx:y(3)=cy r1=255:g1=0:b1=0 1つ目の色 r2=255:g2=255:b2=0 2つ目の色
sample\basic\omedetai.hsp - 2021/07/29
onerror.hsp
エラートラップ onerror *emsg a="kkk"*4 エラーが起こります stop *emsg エラー発生時にここに飛んできます dialog "エラーが発生しました。
sample\basic\onerror.hsp - 2021/07/29
onexit.hsp
onexit *exit mes "スクリプト終了テスト(クローズボックスを押してみてください)" button "END",*owari stop *exit dialog "終了していいですか?",2,"On exit prompt" if stat=7 : stop *owari end
sample\basic\onexit.hsp - 2021/07/29
onkey.hsp
onexit goto *owari 終了時にジャンプ onkey goto *inkey キー入力時にジャンプ onclick goto *inmouse マウスクリック時にジャンプ btnmes="END" mes "メッセージを入力して[Enter]" objsize 600,24 a="" input a button btnmes,*owari ボタン名に変数も使用できます *ao stop *inkey if iparam=229 : goto *ao IMEからの日本語入力 if
sample\basic\onkey.hsp - 2021/07/29
picfont.hsp
#include "mod_picfont.as" buffer 3 picload "fontchr.bmp" screen 0,640,480 cls 3 テクスチャフォント表示の準備 picfont 3,16,16,2,-4 id, sizex, sizey, mode, offset フォントの表示 pos 32,32 picfprt "[MOD_PICFONT.AS Sample Script]" picfprt "Refer to 'picfont' and
sample\basic\picfont.hsp - 2021/07/29
picload.hsp
JPEGロード & BMPセーブをするスクリプト width 320,80 objsize 300,24 button "画像ファイルロード",*fload button "BMPセーブ",*fsave screen 2,640,480 gsel 2,-1 stop *fload dialog "bmp *.jpg *.gif",16,"画像ファイル" if stat=0 : goto *failed gsel 2,1 picload refstr stop *fsave dialog
sample\basic\picload.hsp - 2021/07/29
star.hsp
randomize screen 0,320,240,0 cls 4 buffer 3,320,240,0 cls 4 font "MS ゴシック",40,1 buffer 4,,,0 cls 0 *main gsel 3 gmode 0,320,240 pos 5,5:gzoom 310,230,0 gmode 6,320,240,2 pos 0,0:gcopy 4,0,0 x=rnd(320)-20: y=rnd(240)-20 color
sample\basic\star.hsp - 2021/07/29
starmove.hsp
test2 buffer 1,320,240 color 12,12,12 boxf screen 0,320,240 cls 1 font "MS ゴシック",40,1 cvalue=0.0 *main redraw 0 gmode 6,320,240,256 pos 0,0:gcopy 1 dir=cvalue size=70+sin(cvalue)*30 repeat 16 x=150+sin(dir+cvalue)*size y=102+cos(dir-cvalue)*size
sample\basic\starmove.hsp - 2021/07/29
stars.hsp
test1 randomize cls 4 font "MS ゴシック",40,1 repeat color rnd(256),rnd(256),rnd(256) pos rnd(640)-20,rnd(480)-20:mes "★" wait 1 loop stop
sample\basic\stars.hsp - 2021/07/29
stick.hsp
stick命令によるメニュー選択サンプル cls 4 color 255,255,255 pos 300,180:mes "SELECTION-1" pos 300,200:mes "SELECTION-2" pos 300,220:mes "SELECTION-3" pos 300,240:mes "PROGRAM END" a=0 x=280:y=180:sel=0:maxsel=3 *selmain color 0,0,0:boxf x,y,x+20,y+20 y=sel*20+180
sample\basic\stick.hsp - 2021/07/29
str.hsp
10進数<->16進数変換サンプル a=0 b="" pos 0,0:input a pos 0,30:input b pos 70,2:mes "10進数" pos 70,32:mes "16進数" pos 0,60 objsize 200,24 button "10進->16進変換",*in10 button "16進->10進変換",*in16 button "終了",*owari stop *in10 n=strf("%x",a) objprm 1,n stop *in16
sample\basic\str.hsp - 2021/07/29
strf.hsp
書式指定付き文字列変換(strf)テスト a=123 mes strf("10進[%d]",a) mes strf("16進[%x]",a) mes strf("10進桁数指定付き[%05d]",a) mes strf("16進桁数指定付き[%05x]",a) a=sqrt(2) mes strf("10進実数[%f]",a) mes strf("10進実数桁数指定付き[%3.10f]",a) stop
sample\basic\strf.hsp - 2021/07/29
strmid.hsp
i=" -" mes i a="ABCDEFG" mes "もとの文字列="+a b=strmid(a,0,3) mes "左から3文字を取り出す="+b b=strmid(a,-1,3) mes "右から3文字を取り出す="+b b=strmid(a,2,3) mes "2文字目から3文字を取り出す="+b mes i c=instr(a,0,"FG") mes "文字列「FG」のある場所="+c c=instr(a,0,"AB") mes "文字列「AB」のある場所="+c
sample\basic\strmid.hsp - 2021/07/29
switch.hsp
title "SWITCH~CASE Test" screen 0,240,160 a=-1 combox a,100,"青\n赤\n緑" *main while bak_a=a:wait 5:wend bak_a=a switch a case 0 color 0,0,255 swbreak case 1 color 255,0,0 swbreak case 2 color 0,255,0 swbreak default color 128,128,128 swbreak swend
sample\basic\switch.hsp - 2021/07/29
sysinfo.hsp
OS環境の情報を表示する mes "OS = "+sysinfo(0) mes "USER = "+sysinfo(1) mes "MACHINE = "+sysinfo(2) mes "CPU CODE = "+sysinfo(16) mes "CPU NUM = "+sysinfo(17) mes "USED MEMORY % = "+sysinfo(33) mes "TOTAL MEMORY = "+sysinfo(34) mes "FREE MEMORY = "+sysinfo(35)
sample\basic\sysinfo.hsp - 2021/07/29