3Dでのカメラの実装について

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

3Dでのカメラの実装について

#1

投稿記事 by あ~る » 15年前

http://www.play21.jp/board/formz.cgi?ac ... &rln=36229

↑のURLを見て、3Dでのカメラを実装しようと思い、とりあえず書いてあるプログラムをコピペしたのですが、エラーは出ないのですが変な動作をします。
最初は普通に描画されるのですが、スペースキーを押した瞬間にカメラのアングルがかわってしまいます。(画像上・期待通りのアングル、画像下・変わってしまったアングル)
また、スペースキーを一回でも押した後は、r.xやr.yを変えてもアングルが変わらなくなってしまいました・・・
自分で色々コメントアウトしたりして調べた結果、SetTransformToView()関数がどうも原因になっている(?)様なのですが、これがないとカメラのアングルを変えたい時に変えることが出来ないようです。
この関数を調べてみても、この掲示板のこの質問が出てくるだけで関数の詳細が出てこないので困ってしまいました・・・
どうすればこの誤作動は直るのでしょうか?

環境はコンパイラがBCCDeveroperで、WindowsXP、龍神録プログラミングの館のコードをつかっています。勿論DXライブラリを使ってます。
よろしくお願いします。
足りない情報などがあったらすいません。

Justy

Re:3Dでのカメラの実装について

#2

投稿記事 by Justy » 15年前

 オリジナルゲームっぽいのでどういうコードになっているのか詳細はわかりませんが、
3D処理部分がリンク先のコードと同等であるなら、真っ先に考えられる可能性としては
スペースキーをトリガーにして、何かがメモリバッファを破壊していることが挙げられます。

 あまりお行儀はよくないのですが、試しに Camera構造体のメンバの一番先頭に
[color=#d0d0ff" face="monospace]
char padding[0x10000];
[/color]

を追加してみて下さい。

 これでもし現象が収まったとしたら、何かがこのカメラの情報を上書き・破壊しているので、
どこから破壊されているのかを調べて下さい。

あ~る

Re:3Dでのカメラの実装について

#3

投稿記事 by あ~る » 15年前

返信ありがとうございます!
言われた通りにしたら直ってしまったので、調べてみたら破壊してる場所がありました…
ほんと初歩的なミスでお手を煩わせて申し訳ないです…

ただ、何故破壊してるのかよくわかりません…
おそらくスペースキーを押した事によってオプションが一つ増えたのが問題だろうと思いGV.hでの

option_bb[2]



option_bb[3]

にしたところ直ったのですが、オプションが増えると言っても3個までしか増えないので
option_bb[0]
option_bb[1]
option_bb[2]
で3つあるので足りてるんじゃないかなぁ?と思ってました
もしかしてたまたま直っただけで、違う場所が原因なのでしょうか?
配列について勘違いしてたら怖いので、聞かせて頂きました
引き続きよろしくお願いします

Justy

Re:3Dでのカメラの実装について

#4

投稿記事 by Justy » 15年前


> にしたところ直ったのですが、オプションが増えると言っても3個までしか増えないので

 3個までつかうなら定義が option_bb[2]では足らないですよ。
 option_bb[3]とすれば option_bb[0]~ option_bb[2]までの3つが使えます。

あ~る

Re:3Dでのカメラの実装について

#5

投稿記事 by あ~る » 15年前

そうゆう風になっていたのですか、知りませんでした…
もしかしたら他にも間違えてるかも…(-.-;)

Justyさんのおかげで無事エラーが無くなりました
ありがとうございました!

解決は後でパソコンの方で押しときます 画像

閉鎖

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