;------------------------------------------------------ ; HSP3 demo ver1.0 ( sample script ) ;------------------------------------------------------ #include "hsp3util.as" #include "mod_sprite.as" #packopt name "hsp3demo" ; 実行ファイル作成時のみ定義してください #define RELEASE #define global USE_SOUND #module #deffunc demo_init ; デモ初期化 ; #ifdef USE_SOUND mmload "se_tyuiin.wav",1 mmload "bgm8.mid",2,1 mmload "gx3_.mid",3,1 mmload "omx03.mid",4,1 mmload "ou3.mid",5,1 #endif buffer 5 picload "bgsmoke.bmp" buffer 6 picload "logop.bmp" buffer 7 picload "btn_hsptv.bmp" gsel 0 return #deffunc demo_term ; デモ終了 ; #ifdef USE_SOUND mmstop #endif return #deffunc sndoff ; 音止め ; #ifdef USE_SOUND mmstop #endif return #deffunc snd int id ; サウンドを再生 ; #ifdef USE_SOUND mmplay id #endif return #deffunc exec2 str _p1, int _p2 ; 外部ファイル実行 ; exist _p1 if strsize <= 0 : dialog "該当ファイルがないため実行できません。" : return exec _p1,_p2 return #deffunc initwall buffer 3,640,480 picload "gradbg.bmp",1 x=0:gmode 0,640,16 repeat 480/16 if cnt=0 : continue y=cnt*16 pos x,y:gcopy 3 loop gsel 0 return #deffunc copywall gmode 0,640,480:pos 0,0:gcopy 3 return #deffunc fadewall int _p1 wt=_p1:if wt=0 : wt=16 repeat 32 redraw 0 copywall color 0,0,0:gfade (31-cnt)*8 redraw 1 await wt loop return #deffunc mkwall str a ; BGの壁紙作成 ; initwall gsel 3 font msgothic,32,1+16 x=20:y=64 pos x+2,y+2:color 0,0,0:mes a pos x,y:color 192,192,255:mes a x+=20:y+=60 gsel 0:cls 4 fadewall 15 pos x,y font msgothic,20,1+16:objsize 64,24,22 return #deffunc byewall repeat 32 color 0,0,0:gfade 8+cnt await 15 loop return #deffunc wipe_slide int _p1, int _p2 ; ワイプ(カーテン) ; wipe_slide 転送元id, 待ち時間 ; wt=_p2:if wt=0 : wt=48 mx=-32:repeat 60 redraw 0 repeat 32 a=cnt*20:x=cnt+mx:if x>20 : x=-1 if x>0 : pos a,0 : gmode 0,x,480 : gcopy _p1,a,0 loop redraw 1 await wt mx+:loop return #global ;------------------------------------------------------ *boot ; デモ開始 ; title "HSP3" #ifdef RELEASE chdir dir_exe+"\\sample\\demo\\" #endif x=(ginfo_dispx-640)/2:y=(ginfo_dispy-480)/2 screen 0,640,480,0,x,y cls 4:color 255,255,255 pos 520,450:mes "Loading..." demo_init ;goto *demomain6 snd 2 *mainmenu ; メインメニュー ; gsel 6 logosx=ginfo_winx logosy=ginfo_winy gsel 0 cls sx=640:sy=200:blur=128 rate=0.0:fa=0.05:fb=0.001 ; ;gmode 0,640,1 ;repeat 480-200 ;pos 0,200+cnt:gcopy 3,0,0 ;loop color 234,234,230:boxf pos 32,400:gcopy 7,0,0,200,26 objsize 200,28:pos 32,426 button "HSPTVブラウザを起動",*see_hsptv ; オブジェクト配置 ; ;objmode 1+16,1 font "MS ゴシック",16,1+16 x=114:y=240:color 192,192,255 pos x+1,y+1:mes "HSPの世界へようこそ。メニューのボタンを押してください。" color 0,0,160 pos x,y:mes "HSPの世界へようこそ。メニューのボタンを押してください。" font "MS ゴシック",16,1 x=294:y=280:pos x,y objsize 80,24,30 button "readme",*see_readme button "demo",*demomain button "manual",*see_man button "sample",*see_sample button "editor",*see_edit button "quit",*owari x=390:y=282:pos x,y mes "はじめにお読みください" mes "HSPデモンストレーション" mes "HSP総合マニュアルを開く" mes "サンプルスクリプトを見る" mes "スクリプトを編集する" mes "終了" *main1 ; メインメニュー画面待ち ; redraw 0 ; gmode 0,sx,1 repeat sy pos 0,cnt:ff=cos(fa*cnt+rate) gcopy 5,blur+(sin(rate+ff)*blur),cnt loop pos 268,48:gmode 6,logosx,logosy,256:gcopy 6 ; redraw 1,0,0,640,200 wait 10 ; rate+=0.1 fa+=fb if fa>0.1 : fb=-0.001 : fa=0.1 if fa<0.05 : fb=0.001 : fa=0.05 goto *main1 *see_readme snd 1 mkwall "・はじめに" redraw 0 text 0:color 0,0,128:textmode 2:color 255,255,255 emes {" このデモプログラムは、Hot Soup Processor Ver.3の 機能と使い方の紹介をするためのものです。 メインメニューから見たい項目を選んでボタンを押して ください。 このプログラムはすべてHSPで書かれています。 初めてプログラミングをする方は、「begin」ボタン を押して「初心者のためのHSP入門」をご覧ください。 "} ; font msgothic,16,1 pos 290,360:objsize 64,24,28 button "menu",*mainmenu button "begin",*see_begin button "home",*see_home pos 360,362 mes "メインメニューに戻る" mes "初心者のためのHSP入門を見る" mes "ONION softwareホーページへ" redraw 1 stop *see_sample snd 1 exec2 dir_exe+"\\sampview.exe" wait 100 goto *owari *see_edit snd 1 exec2 dir_exe+"\\hsed3.exe" wait 100 goto *owari *see_man snd 1 exec2 dir_exe+"\\index.htm",16 goto *mainmenu *see_home snd 1 exec "http://www.onionsoft.net/",16 stop *see_begin snd 1 exec2 dir_exe+"\\docs\\beginner\\index.htm",16 stop *see_hsptv snd 1 exec2 dir_exe+"\\hsptv.exe" wait 100 goto *owari *owari demo_term end *demomain ; HSPデモ(フライングロゴ) ; sndoff ; buffer 4 picload "onibtn.gif" sx=ginfo_winx:sy=ginfo_winy buffer 3 picload "hsplogo8.bmp" gsel 0 cls 4 snd 1 max=40 init_sprite 80,50,max opt_sprite 3,2 move_sprite1_init mx=sx:my=sy:x=-sx:y=240:z=0 repeat redraw 0 color 0,0,0:boxf move_sprite1 draw_sprite pos x,y:gmode 0,sx,sy if z>=260 { i=(z-260)*8 if i>=256 : z++ : goto *skiplogo gmode 3,sx,sy,256-i } grotate 4,0,0,0.01*(320-x),mx,my if x>=320 { z++ if z>250 { mx+=2:my+=1 } x=320 } else { x+=8 } *skiplogo redraw 1 await 15 if z>340 : break loop *demomain2 ; HSPデモ(テキスト表示) ; cls 4 snd 3 mkwall "・HSPとは?" text 10:color 0,0,128:textmode 2:color 255,255,255 emes "HSPは、Windows上で手軽に使えるインタプリタ言語です。 emes "テキストによるスクリプトを書くだけで、誰にでも簡単に emes "ウインドゥズ上で動作する、2D・3D画像を使ったゲームや" emes "スクリーンセーバー、ツールや実用ソフトなどの emes "アプリケーションを構築することができます。" gosub *waitclick byewall mkwall "・HSPの特長" text 10:color 0,0,128:textmode 2:color 255,255,255 emes "・簡単に覚えられる強力な命令セット" emes "・付属エディタですぐに使い始めることができる" emes "・高速な動作をする中間言語処理インタプリタを搭載" emes "・作ったプログラムは自由に再配布が可能" emes "・拡張プラグイン・モジュールによる機能拡張" emes "・7年以上に渡る多くのユーザー資産と使用実績" gosub *waitclick byewall *demomain3 ; HSPデモ(配置オブジェクト表示) ; cls 4:color 0,0,64:boxf objmode 1,1 font msgothic,20,3 x=16:y=20:color 192,255,128 pos x,y:mes "・HSP3 配置オブジェクト" font msgothic,14,1 x=40:y=50:color 0,192,0:pos x,y mes "HSPでは、ボタンや入力ボックスなどのオブジェクトを" mes "自由に配置して使うことができます。下のサンプルはその一例です。" mes "他にも、多くのコントロール、ActiveXを配置することができます。" mes "「テスト終了」で次へ進みます。" sysfont:color 0,192,192 pos 40,130:mes "・けいさん" pos 40,200:mes "・グラフ" pos 40,270:mes "・メッセージ" ; objsize 48,24:color 192,192,192 cal1=123:cal2=456 caltype=0:calmark="+\n-\n*\n/" pos 60,160:input cal1 pos 160,160:input cal2 objsize 40,24 pos 114,159:combox caltype,150,calmark ; objsize 64,24 grph=10:x=280 pos 60,230:input grph pos 138,230:button "GO",*idgrph pos 138+64,230:button "RND",*idrnd ; pos 60,300:ids="ここにメッセージを入れてください。" mesbox ids,320,100,1 button "GO",*idmes ; objsize 120,24 pos 480,400:button "テスト終了",*idover z=300 *idmain color 0,0,64:boxf 210,162,276,180 color 192,192,192 cal1b=cal1:cal2b=cal2:caltb=caltype if caltb=0 : ans=cal1+cal2 if caltb=1 : ans=cal1-cal2 if caltb=2 : ans=cal1*cal2 if caltb=3 : if cal2!0 : ans=cal1/cal2 : else : ans=0 pos 210,162:mes "= "+ans *idloop if cal1!cal1b : goto *idmain if cal2!cal2b : goto *idmain if caltb!caltype : goto *idmain ; if z<=0 : goto *idover z-- wait 10:goto *idloop *idrnd a=(rnd(20)+1)*5:objprm 3,a goto *idgrph *idgrph if x>580 : x=580:pos 280,100:gcopy 0,300,100,320,150 a=250-grph:if a>250 : a=250 if a<100 : a=100 color 255,0,0:boxf x,a,x+18,250 x+=20 goto *idloop *idmes dialog ids goto *idloop *idover *demomain4 ; HSPデモ(ノベル表示) ; cls 4 snd 5 buffer 3 picload "sky_bg.jpg" buffer 4 picload "jp6girl.bmp" sx=ginfo_winx:sy=ginfo_winy gsel 6 mx=ginfo_winx:my=ginfo_winy gsel 0:cls 4 wipe_slide 3 x=30:color 0,0,0 repeat 32 gmode 4,sx,sy,4*cnt pos x,0:gcopy 4 await 16 loop gmode 2,sx,sy:pos x,0:gcopy 4 font msgothic,26,1+16 text 20:color 0,0,0:textmode 1:color 255,255,255 pos 280,80 emes "ビジュアルノベルや、" emes "プレゼンテーションに" emes "利用できる高度な機能を" emes "提供しています。" mes "" emes "・画像を重ねた複雑な演出" mes "" emes "・半透明ブレンドの表現" mes "" emes "・音声と動きの同期" gsel 3 color 0,0,0:gmode 3,640,480,160 grect 320,240,0 gsel 0 wait 700 y=1:z=0 repeat 16 redraw 0 gmode 0,640,480:pos 0,0:gcopy 3 i=y>>1 gmode 0,640,y:pos 0,240-i:gcopy 5,z,100-i gmode 2,sx,sy:pos x,0:gcopy 4 redraw 1 await 16 x+=40:y+=4:z++ loop repeat 50-16 i=y>>1 gmode 0,640,y:pos 0,240-i:gcopy 5,z,100-i await 16 y+=4:z++ loop color 0,0,0 repeat 16 gmode 0,640,y:pos 0,140:gcopy 5,z,0 gmode 3,640,140,32 grect 320,70,0 grect 320,480-70,0 await 16 z++ loop repeat 16 redraw 0 gmode 0,640,y:pos 0,140:gcopy 5,z,0 gmode 6,mx,my,cnt*16:pos 258,180:gcopy 6 redraw 1 await 16 z++ loop repeat redraw 0 gmode 0,640,y:pos 0,140:gcopy 5,z,0 gmode 6,mx,my,256:pos 258,180:gcopy 6 redraw 1 await 16 z++ if z>=256 : break loop gsel 3:cls 4:gsel 0 wipe_slide 3 *demomain5 ; HSPデモ(サンプル画面表示) ; buffer 4 picload "hsp3scr.jpg" initwall gsel 3 font msgothic,32,1+16 a="・HSP3の新機能" x=240:y=32 pos x+2,y+2:color 0,0,0:mes a pos x,y:color 192,192,255:mes a font msgothic,20,1+16 pos x+32,y+60 text 0:color 0,0,128:textmode 2:color 255,255,255 gsel 0 fadewall max=8 init_sprite 160,124,max opt_sprite 4,0 move_sprite2_init tex={" ●高機能なタブエディタ ●検索が強化されたヘルプブラウザ ●実数、関数の標準サポート ●3Dワンスキンモデル表示 ●3Dトゥーンシェーディング ●htmlブラウザ、RSSリーダー機能 ●http、ftp接続機能 ●Windows COM、ActiveXサポート ●正規表現、xmlパース支援"} z=0 repeat redraw 0 copywall if cnt=(z*250) { notesel tex if z10 : break loop byewall *demomain6 ; HSPデモ(テキスト表示2) ; cls 4 snd 4 mkwall "・HSPができること" text 10:color 0,0,128:textmode 2:color 255,255,255 emes "ビジュアルノベルから本格的な3Dシューティングまで" emes "様々なジャンルのゲーム作成ができるほか、" emes "デスクトップアクセサリ、スクリーンセーバー、" emes "画面レイアウトの試作、画像データの変換などの" emes "即席ツール、プログラムランチャーなど応用範囲は emes "アイデア次第で無限に広がります。" gosub *waitclick byewall mkwall "・インフォメーション" text 10:color 0,0,128:textmode 2:color 255,255,255 emes "HSPはホームページ上でサポートを行なっています。" emes "http://www.onionsoft.net/hsp/ mes "" emes "HSPについての最新情報、サンプルスクリプト、" emes "FAQ、などのコーナーがあります。HSPについての" emes "ご意見、BUGの情報、要望などいつでもお待ちしています。" gosub *waitclick byewall *demomain7 ; HSPデモ(エピローグ) ; buffer 3 picload "onibtn.gif" logosx=ginfo_winx logosy=ginfo_winy gsel 0:cls 4 font "Arial",16,16 repeat 32 redraw 0 color 0,0,0:boxf gosub *edmes2 pos 260,276:gmode 0,logosx,logosy:gcopy 3 color 0,0,0:gfade (31-cnt)*8 redraw 1 await 16 loop wait 600 repeat 48 color 234,234,230:gfade 8+cnt await 16 loop snd 2 goto *mainmenu *waitclick ; クリック待ち ; i=128:ip=16 sysfont 17 repeat 200 stick key:if key : break color i,i,i i+=ip:if (i=128)or(i=240) : ip=-ip pos 480,440:mes "ボタンをクリックしてください。" wait 10 loop snd 1 return *edmes2 x=200:y=160 pos x+2,y+2:color 0,0,192:gosub *edmes pos x,y:color 255,255,255:gosub *edmes return *edmes mes "HSP DEMO script" mes "copyright 2005 onion software" mes " Music by CHOBIN,onitama,kamitama" mes " Logo designed by sencha" mes " CG picture by Y-jinn" return