std::vectorで弾の処理 – プログラミング – Home

通知
すべてクリア

[解決済] std::vectorで弾の処理


ハビエル
 ハビエル
(@ハビエル)
ゲスト
結合: 17年前
投稿: 2
Topic starter  

VC++でゲームをつくろうと思うのですが、弾の処理をつくるとき
std::vector<Bullet> bullet; // Bulletは弾のクラス
みたいな感じにしても処理が重くなったりしませんか?


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

何と比べて?


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

処理速度が気になるのも分かるけど、
とんちんかんな質問に思える。

普通は、まず素直に作ってみて、プログラムが遅い場合、
ボトルネックを割り出して、そこに対処します。
あなたの作ったプログラムが重かったとしても、
それがvectorが重いからということは多分ないでしょう。

初心者がある程度以上のプログラムを作ろうとするならば、
失敗を恐れずに作りましょう。


返信引用
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

推測ですけど
Bulletのサイズが大きくて数が多くて
追加・削除・並べ替えが頻繁にあるなら遅いかもしれない。

でも今時のCPUならそれほど時間はかからない。
体感できないほど短い時間処理時間をさらに高速化するのは無駄だから。
弾の数が多ければ描画や当たり判定の方が
std::vector自体よりネックになりそうだし。

推測ですけどね。


返信引用
NowNow
 NowNow
(@NowNow)
ゲスト
結合: 20年前
投稿: 27
 

vectorのreserveを使えば、速度的にそんなに問題ないと思われるのは、素人的発想で
しょうか?
reserveで、resizeによるメモリー確保とコピーは防げると思うので、reserveを使えば、
配列と同様な処理速度と思いますが。


返信引用
しむ
 しむ
(@しむ)
ゲスト
結合: 17年前
投稿: 1
 

具体的な条件が欲しい所ですが、重くならないと思いますよ。

ただ たいちうさんが仰る通り、いろいろ試すのがいいと思います。理論と実践では違う
事が多いからです。

「要素の追加/削除の頻度が多いなら、配列よりリストが良い」等の一般論も、条件(要素
数、要素の大きさ、領域の配置位置、アロケータアルゴリズムの種類 他)によってコロコ
ロ変わります。

故に試行錯誤が良いと考えてます。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

std::vectorの選定よりも、弾の処理のアルゴリズムに問題があるのでは?
まぁ、ゲームソフトを作るうえで大変でかつ楽しいのは、
いかに速く処理できるアルゴリズムを考えることだと思います。


返信引用
ハビエル
 ハビエル
(@ハビエル)
ゲスト
結合: 17年前
投稿: 2
Topic starter  

ご回答どうもありがとうございます。
実際にプログラムを作って、処理が遅かったら
いろいろと考えようと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました