コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
MeiMei ◆1z0ctD1w1r4/
2019/6/1 16:55
質問
タッチしたら音がでるのってどーすればいい





あ、やっちまった

コメント

アバター
Soybeanman 2019/6/1 17:17 ◆SDLkyXUP6WqK
どちらか分かりませんが、3号/BIGしか持っていないのでそっちの回答を載せておきますね。
WHILE 1
 TOUCH OUT TT,TX,TY
 IF TT==1 THEN BEEP 1
 WAIT 1
WEND
みたいな感じで良いかと
アバター
MeiMei 2019/6/1 18:00 ◆1z0ctD1w1r4/
ほほう
アバター
MeiMei 2019/6/1 21:36 ◆1z0ctD1w1r4/
あのMMLで使えるいろんな音は使えますか?
アバター
ほしけん 2019/6/1 23:15 ◆BJ4kbE35MkgI
MMLの音はMMLで鳴らしてください。
BGMPLAY "@音色番号 C"

BEEPのヘルプを見たら256番〜383番はMMLの音色が鳴るように書いてあるんですけど書いてあるとおりに鳴らないです。ヘルプかプチコンが間違ってる気がします
アバター
MeiMei 2019/6/2 7:27 ◆1z0ctD1w1r4/
それをどうやってタッチ時に出せることができますか?
アバター
はる 2019/6/2 8:12 ◆75Vh4SY8TdKS
BEEPって書いてあった所をBGMPLAYに置き換えます。
アバター
takumi 2019/6/2 18:28 ◆Ce3Q40uXWJjn
WHILE 1
 TOUCH OUT TT,TX,TY
 IF TT==1 THEN BGMPLAY"@音色 C"
 WAIT 1
WEND
アバター
MeiMei 2019/6/2 22:12 ◆1z0ctD1w1r4/
ほほー
アバター
More10 2019/6/2 23:09 ◆J1/MCFrfgp6.
ちなみにちょっとした解説をします。丸写しだけで意味を理解していなかったら無意味ですからね。

まず TOUCH OUT TIME,X,Y
これでTIMEにはタッチ時間、XにはタッチしたX座標、YにはY座標が入ります。

それを
IF TIME ==1 THEN BGMPLAY "@音色番号 C"

IF(もしも) TIME==1 THEN(タッチ時間が1だったら) BGMPLAY "@音色番号 C" (MMLで音を鳴らす)

としてタッチした瞬間だけ音が鳴るようにします。

しかし、これだけではすぐプログラムが終わってしまうのでWHILE命令でループさせています。これでタッチしたら何かを起こす、ということができるようになったはずです。
アバター
MeiMei 2019/6/3 9:25 ◆1z0ctD1w1r4/
○の中を叩いたら音がでるのはどうすればいいんですか?
アバター
かたけい 2019/6/3 20:13 ◆KC0s1DDWr9CB
丸がスプライトなのかグラフィック面への描画なのかで変わりますが・・・
とりあえず後者をば・・・

ACLS
GCIRCLE 200,120,30,#LIME
GPAINT 200,120,#LIME
WHILE 1
TOUCH OUT TIME,TX,TY
IF GSPOIT(TX,TY)==#LIME AND TIME==1 THEN BEEP
VSYNC
WEND

でできるかと思います。
電車を待ちながらうろ覚えで書いたのでちゃんと動く保証はありませんが・・・^^;

追記:早速間違いを見つけたので修正しました・・・
アバター
かたけい 2019/6/3 20:22 ◆KC0s1DDWr9CB
構造の説明は必要であれば言ってください
アバター
Soybeanman 2019/6/3 20:37 ◆SDLkyXUP6WqK
>>かたけいさん
条件式はANDでなくて&&を使うといいですよ。
あと、GSPOITが先だと処理が重くなるのでTIMEの判定を先にした方がいいですよ
(TIMEが先だと毎回GSPOITをしなくて済むし、TIME==1がTRUEになる確率は低いのでなおさら)
もちろん、個人個人書き方の違いはありますので強制するものではありませんが参考になればと思い書かせていただきました。

かたけいさんの奴だと円が単色でない場合に面倒なことになると思うので、大丈夫なように半径で指定する方法を載せておきますね。

VAR CX=200,CY=120,CR=30
ACLS
GCIRCLE CX,CY,R,#LIME
GPAINT CX,CY,#LIME

WHILE 1
 TOUCH OUT TT,TX,TY
 
 X=TX-CX
 Y=TY-CY
 IF TT==1&&SQR(X*X+Y*Y)<=CR THEN BEEP 1
 
 WAIT 1
WEND
アバター
はる 2019/6/3 20:54 ◆75Vh4SY8TdKS
Soybeanmanさん

多分ですが、
内部では
GSPOIT(TX,TY)==#LIME AND TIME==1

[演算結果] AND [演算結果]

[演算結果]
となっていると思うので処理速度には影響しなさそう。
IF GSPOIT(TX,TY)==#LIME THEN IF TIME==1 THEN
だったら、
IF TIME==1 THEN IF GSPOIT(TX,TY)==#LIME
だったら影響するかも。
間違っていたらすみません。
アバター
Soybeanman 2019/6/3 21:05 ◆SDLkyXUP6WqK
>>はるさん
確認するプログラムがあります。
VAR A[0]
IF LEN(A)!=0&&A[0] THEN ?"ほげ"
で両方の結果が適応されるのであればA[0]でエラーになってしまうはずです。
ANDの場合は両方ないと結果が出せないのではるさんのであっていると思いますが、「条件式はANDでなくて&&を使うといいですよ。」と先に言っているのでその場合についてを書きました。
誤解を招いてしまい申し訳ございません。
アバター
MeiMei 2019/6/11 19:23 ◆1z0ctD1w1r4/
みなさんありがとうございます。おかげで疑似スネアが進んできました。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -