コミュニティプロフィール
↓ニトロ専用効果音発生装置Ver1.03のHSPソース
; #########################################################
; # プログラム名:ニトロ専用効果音発生装置 Ver1.03 #
; # 実行ファイル名:nitoro.exe #
; # 2011/06/16 #
; #########################################################
; #####################################################
; # 起動時処理 #
; #####################################################
#include "hspda.as" ;data.txtのcsv処理に必要なインクルード
title "nitoro Ver1.03" ;タイトルバーに表示する文字
width 234,48 ;ウィンドウサイズ指定
sdim fname,500,11,2 ;fname(0,0)~fname(9,0):効果音、fname(10,0):プログラム名初期表示、fname(0,1)~fname(10,1):各ファイルの音量レベル、1項目500文字までの11X2の2次元配列
sdim cline,1000 ;1行データバッファ
sdim ckou,500,2 ;1行項目データバッファ
dim bmusic,10 ;bmusic(0)~bmusic(9):再生ボタンのオブジェクトID保存用
dim bread,10 ;bread(0)~bread(9):読込ボタンのオブジェクトID保存用
cd = dir_cur ;cd:実行ファイルのカレントディレクトリを保存
sdata = cd+"\\data.txt" ;sdata:cdを利用してdata.txtの保存場所を指定
rep=0 ;音声のリピートフラグ(0:1回、1:無限)
x=16:y=0 ;ボタン群の左端配置位置
fnum = 10:ck=10 ;再生中のファイルナンバー(10:初期値)
fname(fnum,0) = "nitoro Ver1.03" ;再生ファイル名欄に最初表示しておく文字
ck = fname(fnum,0) ;ワンクリック時のファイルナンバー(10:初期値)
vol = 15 ;初期ボリューム値
; #####################################################
; # ウインドウ内作成処理 #
; #####################################################
*start
cls ;ウインドウ内をクリア
color 240,240,240:boxf ;背景色をオブジェクトと同じ灰色にする
sdim buf,20000 ;テキストのバッファを確保
buf="" ;バッファをクリア
; data.txtに書かれた音源ファイルをメモリにロード
exist sdata ;data.txtが存在すかチェックする(しない場合:strsize=-1)
if strsize=-1 : goto *fnameshoki ;もしdata.txtが存在しなかったら*fnameshokiに飛ぶ
; data.txtが存在する場合
notesel buf ;data.txtをbufに転記する指定
noteload sdata ;data.txtをbufに転記する
for i,0,10,1
noteget cline,i ;bufより1行目~10行目までを順次clineに格納する
csvstr ckou, cline ;clineに入っている内容をckou(0),ckou(1)に格納する
for j,0,2,1
fname(i,j) = ckou(j) ;fname(0,0)~fname(10,0)にファイル名、fname(0,1)~fname(10,1)にその音量を格納する(10は初期値)
next
next
goto *gamen
; data.txtが存在しない場合
*fnameshoki
for i,0,10,1
fname(i,0)="none" ;fname(0,0)~fname(9,0)に"none"を代入
next
; ウィンドウ内にボタン等を配置する
*gamen
; ボタン以外のものの配置
pos 0,y+0 ;再の表示位置
color:mes "再" ;黒で再を表示する
pos 0,y+24 ;読の表示位置
color:mes "読" ;黒で読を表示する
fsel = getpath(ck,8) ;再生ファイル名を取得し、ディレクトリ情報を消して(オプションの8)、fselにファイル名を拡張子付で保存
title fsel ;再生ファイル名をタイトルバーに表示
pos x+120,y+24 ;Repeatの位置指定
chkbox "Repeat",rep ;Repeatのチェックボックス作成(rep:0=無,1=有)
pos x+120,y+0 ;強制停止の位置指定
button "強制停止",*mstop ;強制停止ボタン作成(押されたときは*mstopに飛ぶ)
pos x+186,y+0 ;音量の表示位置指定
color:mes "音量" ;黒で音量を表示する
; ボタンの配置
objsize 12,24 ;1個あたりのボタンサイズを指定
for i,0,10,1
if fname(i,0)="none" : goto *pass ;もしfname(0,0)~fname(9,0)でファイルデータがないものは*passに飛ぶ=(再生ボタンは表示しない)
; ファイルデータがあった場合
pos x+0+i*12,y+0 ;再生ボタンの位置指定
button str(i),*music ;0~9という文字のボタンを作成し、押されたら*musicに飛ぶ
bmusic(i) = stat ;bmusic(0)~bmusic(9)に再生ボタンのオブジェクトIDを保存する(オブジェクトIDシーケンシャル作成の為)
*pass ; ファイルデータがない場合ボタンを作成せずここに飛んでくる
next
for i,0,10,1
pos x+0+i*12,y+24 ;読込ボタンの位置指定
button str(i),*read ;0~9という文字のボタンを作成し、押されたら*readに飛ぶ
bread(i) = stat ;bread(0)~bread(9)に読込ボタンのオブジェクトIDを保存する(オブジェクトIDシーケンシャル作成の為)
next
; ボリュームの配置
repeat ;ループしてボリュームの入力待ち
stick ky,256 ;左クリック検出
redraw 0 ;再描画のちらつき防止処理
vx = 185:vy=24 ;ボリュームパーツの左上の座標
color 240,240,240:boxf x+vx,vy+9,x+vx+31,vy+16 ;ボリュームバー背景描画
color:boxf x+vx+1,vy+11,x+vx+31,vy+13 ;ボリュームバー範囲描画
color ,,255:grect x+vx+1+vol,vy+12,,2,7 ;ボリュームバー描画
if (ky&256):if mousex>=x+vx+1&mousex<=x+vx+33&mousey>=vy+4&mousey<=vy+21:{ ;左クリックされかつボリュームバー範囲ならば
vol=limit((mousex-(x+vx+1)),0,30) ;ボリュームバーにあわせたボリュームをvol値に入力
}
if vol!=vol1:{ ;ボリューム値が過去のボリューム値と違うなら
vol0=int(powf(vol, 2)*10/36):mci "setaudio se volume to "+vol0 ;再生ボリュームを再設定
vol1=vol ;現在のボリューム値を過去ボリューム値とする
fname(fnum,1) = str(vol) ;現在のボリューム値をdata.txtに書き出すためfname(fnum,1)に格納
goto *file_save
}
redraw 1 ;再描画のちらつき防止処理
await 100 ;ループ時に処理を止め負荷を落とす
loop ;ループ先頭に戻る
stop
; #####################################################
; # ボタン押されたときの処理 #
; #####################################################
; 再生ボタンが押されたとき
*music
j = stat ;押されたボタンのオブジェクトIDをjに格納する
for i,0,10,1
if bmusic(i)=j : k = i ;jと、再生ボタン描画時に保存したオブジェクトIDのマッチングを行い、同じならばその再生ボタン番号をkに格納する
next
exist fname(k,0) ;効果音ファイルがfname(k,0)に保存されたディレクトリ存在するかチェックする(しない場合:strsize=-1)
if strsize=-1 : fname(k,0) ="none" : goto *file_save ;もし効果音ファイルが存在しなかったら、fname(k,0)="none"にして*file_saveに飛ぶ(エラー処理)
; 効果音ファイルが存在したとき(正常処理)
if fname(k,0)!=ck{
ck = fname(k,0)
}else{
mci "stop se" ;効果音を停止する
mci "close se" ;効果音を閉じる
mci "open \""+fname(k,0)+"\" alias se type mpegvideo" ;効果音を開く(mpegvideoにしないと動かない。mpegvideo2とかだめ!絶対!)
if rep = 0 : mci "play se" ;リピートにチェックない場合1回再生
if rep = 1 : mci "play se repeat" ;リピートにチェックある場合ループ再生
vol = int(fname(k,1)) ;登録されたファイルのボリューム値をボリュームに代入する
vol0=int(powf(vol, 2)*10/36):mci "setaudio se volume to "+vol0 ;再生ボリュームを設定
fnum = k ;fnumに再生ボタン番号を記録する(ファイル名の表示欄の為)
}
goto *start ;*startに飛ぶ(ウィンドウ内を初期化して書き直す)
stop
; 読込ボタンが押されたとき
*read
j = stat ;押されたボタンのオブジェクトIDをjに格納する
for i,0,10,1
if bread(i)=j : k = i ;jと、読込ボタン描画時に保存したオブジェクトIDのマッチングを行い、同じならばその読込ボタン番号をkに格納する
next
dialog "mp3;*.wma;*.wav;*.asf;*.mid",16 ;読込ファイルのダイアログボックスを表示する
if stat=0 : goto *start ;もし読込が失敗したらスタートに飛ぶ
fname(k,0)=refstr ;読込成功したら、fname(k,0)にディレクトリ情報を格納する
fname(k,1)="15" ;読込時ボリュームを15にする
goto *file_save ;*file_saveに飛ぶ
stop
; 効果音ファイルのディレクトリ情報をdata.txtに保存する
*file_save
buf = "" ;data.txtの保存前にフォーマット初期化
for i,0,11,1
buf = buf+fname(i,0)+","+fname(i,1)+"\n" ;data.txtの保存フォーマットを設定
next
notesel buf ;data.txtをbufに転記する指定
notesave sdata ;data.txtをbufに転記する
goto *start ;*startに飛ぶ(ウィンドウ内を初期化して書き直す)
stop
*mstop
mci "stop se" ;効果音を停止する
mci "close se" ;効果音を閉じる
fnum = 10 ;再生中のファイルナンバー(10:初期値)
ck = "nitoro Ver1.03" ;再生ファイル名欄に最初表示しておく文字
goto *file_save ;*file_saveに飛ぶ
stop
続きを読む
お知らせ
読み込み中…
お知らせ
お知らせ読み込み中にエラーが発生しました。
お知らせ
編集
お知らせはありません
右上の編集ボタンから編集できます
-
{{community_news.title}}
{{community_news.update_time | dateStringAsString}} -
運営からのお知らせ
- {{feed.publishedAt.format('YYYY/MM/DD HH:mm')}} {{feed.title}}
生放送のお知らせ
シェアする- 読み込み中...
- 生放送情報が取得できませんでした。
最近行われた生放送
-
最近の生放送一覧はありません。
- {{live_histories[0].basic.started_at | dateStringAsString}} タイムシフト視聴可 {{live_histories[0].basic.title}} 放送者:{{live_histories[0].user.nickname}}
予約スケジュール
-
生放送の予約はありません。
- {{live_released.basic.started_at | dateStringAsString}} タイムシフト視聴可 {{live_released.basic.title}} 放送者:{{live_released.user.nickname}}
コミュニティ動画
{{videoList.total}}件 / {{videoList.max}}件-
読み込み中...
-
コミュニティ動画の読み込みに失敗しました。
-
クローズコミュニティの動画はフォローしないと見れません。
-
コミュニティ動画はありません。
ニコニコ動画にアップロードした動画をコミュニティに登録しましょう!
コミュニティをフォローして動画を登録しましょう! - 公開前もしくは削除、非公開の動画 {{video.extra.title}}
コミュニティフォロワー
{{paging.total}}人-
読み込み中...
-
フォロワー一覧の読み込みに失敗しました。
-
フォロワーはまだいません。