ニコニコミュニティ

ぴろぽんさんのコミュニティ

オーナー ぴろぽん
開設日 2011年05月28日
登録タグ
    読み込み中... タグ読み込み中にエラーが発生しました。 登録されているタグはありません
  • {{tag.values.raw}}
コミュニティの設定を表示 ▼
レベル
4
フォロワー
15 (最大:54人)

プレミアム会員  があと 5 人でレベル 5

LIVE

{{live.basic.title}}

視聴する

コミュニティプロフィール

↓ニトロ専用効果音発生装置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
続きを読む

運営からのお知らせ

生放送のお知らせ

  • 読み込み中...
  • 生放送情報が取得できませんでした。

最近行われた生放送

  • 最近の生放送一覧はありません。

予約スケジュール

  • 生放送の予約はありません。

生放送一覧を見る

コミュニティ動画

{{videoList.total}}件 / {{videoList.max}}件
  • 読み込み中...

  • コミュニティ動画の読み込みに失敗しました。

  • クローズコミュニティの動画はフォローしないと見れません。

  • コミュニティ動画はありません。

コミュニティ動画の確認・編集

コミュニティフォロワー

{{paging.total}}人
  • 読み込み中...

  • フォロワー一覧の読み込みに失敗しました。

  • フォロワーはまだいません。

コミュニティフォロワーの確認

ブログパーツ

ブログパーツ iframe

ブログパーツ リンク

ブログパーツ 生放送をお知らせ