HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0323
戦士タイピング系の音ゲーを作りたいです8未解決


戦士

リンク

2010/3/23(Tue) 14:23:42|NO.31494

曲にあわせてタイピングするゲームを作りたいです。

下記のようなゲームに近いものを作りたいとおもってます
http://cards.s54.xrea.com/TypingProject/
ダウンロードページ
http://cards.s54.xrea.com/TypingProject/download.html


再生している曲に合わせて打つのですが、どうしても誤差がでるのでいいアイデアがあれば教えてください



この記事に返信する


腱鞘炎

リンク

2010/3/23(Tue) 14:30:31|NO.31495

どんなスクリプトか教えてくれないと答えようがありません^^;



しきり2

リンク

2010/3/23(Tue) 15:35:45|NO.31498

誤差が出るってことはスクリプトはあるんだな。
見せてみ



戦士

リンク

2010/3/23(Tue) 17:11:37|NO.31500

多分ここがバグをおこしているのだろう… と思う箇所を公開します


変数iは次の問題が表示されるの時間の変数です

mmload "test.wav",1 *start z = gettime(4)*60*60 + gettime(5)*60 + gettime(6) mmplay 1 goto *main *set w = z+i if( t >= 86400): w-=86400 (ここでタイピングの問題セットをします) goto *main *main t = gettime(4)*60*60 + gettime(5)*60 + gettime(6) if t>=w : onkey 0 : goto *greset (ここでタイピングのキー判定を行います) wait 1 goto *main

こんな感じのソースです。
mmplayで再生するところで処理にかかる時間の誤差のようです
HSPさんの質問をみてつくろうと思ったので、変数などもそのままでわかりにくくてすいません



SYAM

リンク

2010/3/23(Tue) 17:41:06|NO.31501

mmload, mmplay だけでは、今どこを再生中なのか知る手段がないので、音に合わせて…というのは難しいです。


filename = "(ここに再生するファイル名)" mci "open "+filename+" alias sound" mci "play sound" *@ mci "status sound position" p = stat title ""+p if (p>chk) { chk += 1000 mes "●" } wait 1 goto *@b stop

このスクリプトは、WAVファイルを再生して、その再生位置が 1,2,3,…,9 秒のときに●を出すものです。
こんな感じで、再生位置を監視しながらゲームを進行するようにしてみてはどうでしょうか。



戦士

リンク

2010/3/24(Wed) 10:28:02|NO.31522

ありがとうございます。

これを組み入れたら誤差が無くなったのですが、時々 曲がとまってしまいます(すぐに再開される)
これは回避できないでしょうか?



ESZET

リンク

2010/3/24(Wed) 15:42:08|NO.31526

パソコンのスペックが低いか、他のプログラムがCPUを使いすぎてるかが原因だと思われますが。



SYAM

リンク

2010/3/24(Wed) 17:47:11|NO.31529

「他の」とは限らないかもしれません。
試したりはしてないので確実な回答とはいえませんが、たとえば再生位置の監視をあんまりにも細かくしすぎていると、負荷が大きくなってしまう可能性が考えられます。



ESZET

リンク

2010/3/24(Wed) 17:56:14|NO.31530

ループしないで、ボタンが押されたときにのみに再生位置をチェックするのもひとつの手だと思います。



ONION software Copyright 1997-2023(c) All rights reserved.