トップページ > 記事閲覧
処理速度について
名前:あんこうるわっと 日時: 2017/12/20 22:33

現在自作ゲームを作っていて、個人的にはゲームのキャラクターの移動速度がちょうどいいと思っています。 どころが、その移動速度というものが自分の今使っている10年前のパソコンでCPUがcore2duoというものの環境での速度なので、最新パソコンで動かすとき どうなるのか想像がつきません。 どうすればいいでしょう?また普通キャラクターは何pixelずつ動かしますか?
メンテ

Page: 1 |

Re: 処理速度について ( No.1 )
名前:管理人 日時:2017/12/21 02:04

> 現在自作ゲームを作っていて、個人的にはゲームのキャラクターの移動速度がちょうどいいと思っています。 > どころが、その移動速度というものが自分の今使っている10年前のパソコンでCPUがcore2duoというものの環境での速度なので、最新パソコンで動かすとき > どうなるのか想像がつきません。 DXライブラリはデフォルトで ScreenFlip(); を実行した際にディスプレイモニターのVSYNCという、 1秒間に60回くらい訪れるタイミングが来るのを待っていますので、恐らく最新のパソコンでプレイしても 同じような移動速度になると思います ただ、VSYNC はモニターのリフレッシュレートに応じて1秒間に発生する回数が変化するので、どんな環境でも 同じ移動速度にしたい場合は VSYNC に頼らない『移動速度の一定にする処理』を行う必要があります それは主に GetNowCount(); で得られる『現在の起動してからの時間( 単位:ミリ秒 )』を使って、 ゲームのメインループ1回でどれだけ時間が経過したかに応じて移動するピクセル数を変動させたり、 1回のループを60分の1秒と決めて、その時間が経過していなかったら60分の1秒経過するまで ループして待つ、といった手法となります サンプルプログラムコーナーの https://dxlib.xsrv.jp/dxprogram.html 13.移動速度を一定にする(1) 14.移動速度を一定にする(2) が、実際に移動速度を一定にするサンプルプログラムとなりますので、よろしければご覧ください m(_ _)m > また普通キャラクターは何pixelずつ動かしますか? ゲームのジャンルやゲーム画面の解像度によって変化するので、このご質問の答えを一つに絞ることはできませんが、 例えばDXライブラリのデフォルト解像度である 640x480 の画面で、1秒間に60コマで、アクションゲームでしたら 1ループで 4pixel から 16pixel くらいずつ移動させる感じになると思います
メンテ
Re: 処理速度について ( No.2 )
名前:あんこうるわっと[解決] 日時:2017/12/24 10:02

返信するの忘れてました。いろいろ教えてくださいましてありがとうございます!
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存