高速ソートについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ft

高速ソートについて

#1

投稿記事 by ft » 15年前

こんばんは。
先日とある質問をしたところ、管理人様よりソートの存在を教えて頂きました。
数値の単純ソートと高速ソートはアプリの丁寧な解説により(恐らく)理解出来ました。
次に、龍神録では弾の大きさ順にソートしてから描画しているということですが、
例のように用意した数値ではなく「弾の大きさ順にソートしてから描画」という部分がイマイチ分かりません。
ひとまず今疑問に思っている事ですが、
①画像のソートは、グラフィックハンドルに渡した分割画像データサイズを元に行われるのでしょうか?
分割画像が渡された変数を数値化すると幾らかの数値が表示されると思うのですが、
この数値を分割画像のデータサイズとして、ソートすればいいということでしょうか?
②デフォルトの龍神録ではどの部分でソートが行われているのでしょうか?
50章までパッとみたところ、ソートという単語が見当たりませんでした。

Ma

Re:高速ソートについて

#2

投稿記事 by Ma » 15年前

グラフィックのサイズ(ピクセル)でソートという意味ではないんでしょうか?
大きいものから表示することによって、かさなったときに片方が消えて見えなくなるということがなくなるためです。

ま、私は正しいところは知りませんので、憶測にすぎませんが。

Dixq (管理人)

Re:高速ソートについて

#3

投稿記事 by Dixq (管理人) » 15年前

前回誤解を招くことを言ってしまったかも知れません。
龍神録の館で紹介しているコードは四聖龍神録Plusのコードとは違うんです。
極力わかりにくい事は避けて紹介し、アルゴリズム自体も変えている部分があります。
そこで、弾の大きさ順に描画する処理も省いてあります。

なので、四聖龍神録Plusでは弾の大きさ準に描画されていますが、龍神録の館のコードにはそのような処理が入っていません。
ところで、画像サイズを取得することは出来ますが、わざわざ別の変数を用意しないといけないので、
あたり判定の大きさ順にソートしてもだいたい同じ事になるんじゃないでしょうか?
私は面倒だったので、あたり判定の大きさ順にソートしてます。

ft

Re:高速ソートについて

#4

投稿記事 by ft » 15年前

なるほど、そういうことでしたか。
現状あまり処理は増やしたくない状態ですし、
弾の重なり方は弾幕処理のほうで調整すれば何とかなるかな…
…ソートすることで自動的に弾の描画順が決まるわけですから、この面倒な調整の必要が無いと理解して宜しいでしょうか?

SCI

Re:高速ソートについて

#5

投稿記事 by SCI » 15年前

ソートにもいろいろあり、目的によってどれが最適かというのもいろいろですね。

弾幕STGでは、意図した演出でない場合、大きい弾の下に小さい弾が隠れるのはある意味「禁じ手」ですね。
東方でも一部の演出を除いて、ちゃんと大きさ順になっていたかと思います。
CAVEシューなんかは、大きいオブジェクト弾が重なるときは半透明にするといった仕掛けもありますね。

さて本題ですが、バケットソートみたいな手法なんかどうでしょう。
これは階級(順序関係のある量)が少ない場合に効率的で簡単です。
つまり、弾の大きさがせいぜい数えるほどの種類しかないなら、その分のリストなり配列なりを用意してしまうのです。

話の本筋に合っているか不安ですが^^

ft

Re:高速ソートについて

#6

投稿記事 by ft » 15年前

確かに弾の種類は限られていますしバケットソートも効率的そうですね。
今後ソートを導入するかは未定ですが(いまのところ弾の重ななり順は地道に調整しています)、
処理に余裕があったり、演出の関係上必要と考えられる場合に出会ったら参考にしたいと思います。
ありがとうございました。 画像

閉鎖

“C言語何でも質問掲示板” へ戻る