[Delphi]タスクシステムとかTListとかの勉強 その2
- 2005/08/11
- 19:07
TListに絶望した一行の運命やいかに!
984 名前:名前は開発中のものです。[sage] 投稿日:2005/07/05(火) 22:53:39 ID:8GumEUAb
弾管理の方法で最適だと思える方法はどんなのでしょうか?
DELPHIで始めて、最初はど素人なんで配列でやってましたが
次にオブジェクトを覚え、オブジェクトを配列にしました
最近TLISTを覚えてそっちでテストプログラムを組んだばかりです。
が、TLISTはどうやら遅くて弾管理には向いてないらしい。
でも、配列だと弾が消えて配列の各部で無効データーが増えた時がみっともないし
For文で全部動かす時も、弾数少なくても配列全部をチェックさせないといかんのが無駄な気がする。
もっと便利なやり方ってあるんでしょうか?
TListの代替を探す以上の展開になってる気がしますがこれは知りたい!!
985 名前:名前は開発中のものです。[sage] 投稿日:2005/07/05(火) 23:15:02 ID:iphFkIr5
リストが遅いってありえんとおもうが
そりゃあのやねうらお氏の本でもリストですからね。悪いはずがありません。今回はTListが問題。TListのどこが問題なのかまだ理解してませんが(getメソッドの件だったっけ)。
990 名前:名前は開発中のものです。[sage] 投稿日:2005/07/06(水) 00:55:23 ID:4DaYaJOw
>>984
弾を管理するんだったら、単純な配列でいいと思う
全要素の検索が面倒なら、配列に何個入っているかっていうカウンターを用意して、
デリートしたときに、最後の要素をデリートした部分にコピーして、カウンターを減らす
はじめ読んだときは「要素のコピーなんてコスト高いじゃん?」と思ったのですがポインタをコピーすればいいだけですね。まぁ、実態をコピーしてもせいぜい数十バイトですけど。それに気づいてからはなんてナイスなアイデアなんだと気づきました。
992 名前:名前は開発中のものです。[sage] 投稿日:2005/07/06(水) 04:51:49 ID:kB1wpfzQ
>>985
だよなぁ。
16MHzの某RISCマシンで双方向リスト使った弾管理をしているが
怒首領蜂くらいの弾数なら余裕で動いてるっぺ。
って・・・よく考えたら怒首領蜂も16MHzだった。しかもCISCだ。orz
993 名前:名前は開発中のものです。[sage] 投稿日:2005/07/06(水) 12:21:44 ID:rD1nlVu0
超連射は10MHzでばりばり動いてたぞ
しかもコードのほとんどはCだったらしいし
タスクシステムの起源がギャラクシアンらしいので速度は速いはずなんですよね。そういえばTListのソース見たことないな。
そんなこんなでシューティングスレ遠征<TList編>は終了
984 名前:名前は開発中のものです。[sage] 投稿日:2005/07/05(火) 22:53:39 ID:8GumEUAb
弾管理の方法で最適だと思える方法はどんなのでしょうか?
DELPHIで始めて、最初はど素人なんで配列でやってましたが
次にオブジェクトを覚え、オブジェクトを配列にしました
最近TLISTを覚えてそっちでテストプログラムを組んだばかりです。
が、TLISTはどうやら遅くて弾管理には向いてないらしい。
でも、配列だと弾が消えて配列の各部で無効データーが増えた時がみっともないし
For文で全部動かす時も、弾数少なくても配列全部をチェックさせないといかんのが無駄な気がする。
もっと便利なやり方ってあるんでしょうか?
TListの代替を探す以上の展開になってる気がしますがこれは知りたい!!
985 名前:名前は開発中のものです。[sage] 投稿日:2005/07/05(火) 23:15:02 ID:iphFkIr5
リストが遅いってありえんとおもうが
そりゃあのやねうらお氏の本でもリストですからね。悪いはずがありません。今回はTListが問題。TListのどこが問題なのかまだ理解してませんが(getメソッドの件だったっけ)。
990 名前:名前は開発中のものです。[sage] 投稿日:2005/07/06(水) 00:55:23 ID:4DaYaJOw
>>984
弾を管理するんだったら、単純な配列でいいと思う
全要素の検索が面倒なら、配列に何個入っているかっていうカウンターを用意して、
デリートしたときに、最後の要素をデリートした部分にコピーして、カウンターを減らす
はじめ読んだときは「要素のコピーなんてコスト高いじゃん?」と思ったのですがポインタをコピーすればいいだけですね。まぁ、実態をコピーしてもせいぜい数十バイトですけど。それに気づいてからはなんてナイスなアイデアなんだと気づきました。
992 名前:名前は開発中のものです。[sage] 投稿日:2005/07/06(水) 04:51:49 ID:kB1wpfzQ
>>985
だよなぁ。
16MHzの某RISCマシンで双方向リスト使った弾管理をしているが
怒首領蜂くらいの弾数なら余裕で動いてるっぺ。
って・・・よく考えたら怒首領蜂も16MHzだった。しかもCISCだ。orz
993 名前:名前は開発中のものです。[sage] 投稿日:2005/07/06(水) 12:21:44 ID:rD1nlVu0
超連射は10MHzでばりばり動いてたぞ
しかもコードのほとんどはCだったらしいし
タスクシステムの起源がギャラクシアンらしいので速度は速いはずなんですよね。そういえばTListのソース見たことないな。
そんなこんなでシューティングスレ遠征<TList編>は終了
- テーマ:プログラミング
- ジャンル:コンピュータ
- カテゴリ:オレ的学習
- CM:0
- TB:0