ホーム › フォーラム › CF2.5使用法全般 › 最速タイムの保存
- このトピックには10件の返信、3人の参加者があり、最後にMaster.typeXにより7年前に更新されました。
-
投稿者投稿
-
2017-05-03 9:08 pm #13867Master.typeX参加者
どうもです。
現在作っているアクションゲームで、クリアタイムを計測して保存しているのですが
クリアタイムが前回よりも早かった場合、どうやって保存させればいいのかわからず
制作が詰まっております。ゲームデータがサイズオーバーで送れいないので
似たような動作のものを作ってみましたのでそちらを確認してください。お忙しいところ恐縮ですが、何卒宜しくお願い致します。
Attachments:
You must be logged in to view attached files.2017-05-03 11:27 pm #13870ASDキーマスター>>Master.typeX
過去にストップウォッチの内容を次のフレームへ引き継ぐ処理のサンプルを作成しました。これを応用すればできると思います。添付されたデータを拝見しましたが、コンマ以下のカウントが100になったら秒のカウントをアップさせているようですが、60フレームのアプリケーションでは常に1足していっても1秒間で60までしか増えませんので、それで100になった時、としていると、実際の1秒よりかなり遅れて秒数がカウントされてしまうことになってしまいます。100ではなく、60になった時にアップさせるか、上記リンク先のトピックの『cf25_blog_2017-01-29_stopwatch.zip』のやり方が良いと思います。
2017-05-04 12:10 am #13871Master.typeX参加者>>ASDさん
サンプルを見て時間のカウントは修正できました!
ありがとうございます!ただ100になったらカウントアップというのだけではダメなのですね・・・
勉強になりました・・・。ですが
現在のタイムが前回のタイムより早かった場合更新するといった方法がわかりません。お手数おかけしますが、教えていただけないでしょうか。
2017-05-04 6:09 am #13890ASDキーマスター修正してみました。分・秒・コンマそれぞれで比較してしまうと分・秒は更新していないのにコンマは下回って(超えて)いるのでコンマだけ現在のタイムで上書きされてしまうということになります。分・秒・コンマを全て足した値で比較することにより、全て上回っているかどうかを判定することができます。
– サンプルプログラム
https://blog.clickteam.jp/wp-content/uploads/2017/05/cf25_blog_2017-05-04_save_ini_when_update_time.zipなお、iniファイルのパスの指定方法ですが、Master.typeXさんが添付されたファイルのように、パスに日本語他マルチバイト文字が含まれる場合で、iniファイルをUTF-8で保存する場合、Apppath$を使うと、日本語版以外のWindowsでは読み取れなくなります。こちらの記事を参考に相対パス(.\)を使用されることをお勧めします(iniファイルにマルチバイト文字を一切格納しないのであれば、UTF-8のチェックを外してApppath$を使うことができます。)。
2017-05-04 6:20 pm #13896Master.typeX参加者>>ASDさん
INIの方まですみません。
サンプルを見ながら自分のゲームに落とし込んだら何とか
想定通りの動作になりました!ありがとうございました!
2017-05-04 8:59 pm #13897Master.typeX参加者すみません。
自分のゲームで旧タイムが1分10秒以上の時に
1分10秒以下1分02秒以上のタイムが更新できないので
サンプルの方も再現されるのではないかと思い
やってみたところ、画像のようにサンプルでも1分10秒以下1分02秒以上のタイムが
更新されない時がある事がわかりました。これに対応するにはどうしたらよいでしょうか・・・?
Attachments:
You must be logged in to view attached files.2017-05-04 11:38 pm #13904ASDキーマスター文字列の比較ではなく、数値に変換して比較することで上手くいきました。文字列の比較は文字単位で行われるため、最初の1はどちらも同じですが、次の文字が現タイムは8で旧タイムは1になるので、ここで現タイムの方が大きいと判定されてしまっていたようです。お騒がせいたしました。
– サンプルプログラム
https://blog.clickteam.jp/wp-content/uploads/2017/05/cf25_blog_2017-05-04_save_ini_when_update_time2.zip2017-05-05 12:13 am #13905Master.typeX参加者サンプルを確認し、自分のゲームの方も
同じ比較方法に直したところ
無事にタイムが更新されるようになりました!ありがとうございます!
2017-05-05 11:22 am #13909Master.typeX参加者たびたび申し訳ありません。
今度は旧タイムが1分1秒以上の時に
新タイムが0分59秒以下、0分33秒以上の時に
更新されない状態を確認しました。Attachments:
You must be logged in to view attached files.2017-05-05 11:22 pm #13916shinon参加者こんにちは。
数字をつなげて文字列として扱う場合、私もよくやってしまうのですが、桁数調整してやらないとだめなやつだとおもいます。たとえば1分5秒という場合はそのまま文字列にすると15ですが、0分25秒とかの場合もそのまま文字列にすると25になってしまうので、1分5秒より25秒のほうが遅いということになります。なので、1分5秒なら1分05秒扱いで文字列化して105にしないといけないかんじです。同様に1/1000秒についても調整がいりますね。めんどくさいけど仕方ないですね。
Attachments:
You must be logged in to view attached files.2017-05-06 12:56 am #13918Master.typeX参加者>>shinonさん
なるほど、0を付け足して調整するんですね。
先ほど、サンプルを確認しながら自分のゲームに落とし込んだところ
今のところは特に更新されないという現象は見られなくなりました。ありがとうございます!
-
投稿者投稿
- このトピックに返信するにはログインが必要です。