検索結果 17 件

by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい
返信数: 11
閲覧数: 8705

Re: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい

inemaruさん、かずまさん、ご回答ありがとうございます。

inemaruさんのsafe_call()を使う方法も、かずまさんの関数オブジェクトを使う方法も
どちらも実現したいことにかなり近いです。

ただ、すべての関数に対応させるのは難しいので、今作っているプログラムの規模を考えて
基本は括弧の付け忘れに気をつけて、特別注意が必要なものに限定して対応させたいと思います。

一応、具体的な解決策が分かりましたので、解決とさせていただきます。
ご回答いただいた皆様、本当にありがとうございました。
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい
返信数: 11
閲覧数: 8705

Re: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい

Mathさん、ご回答ありがとうございます。

関数ポインターは使ったことがないですが、そういう使い方があるんですね。
エラーにならない以上、やっぱり括弧を付けるように気をつけるしかないでしょうか。
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい
返信数: 11
閲覧数: 8705

Re: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい

みけCATさん、迅速なご回答誠にありがとうございます。 後者は関数を呼び出しているのではなく、関数のアドレスを得ているだけです。 括弧なしの呼び出しだと全く別の処理になってしまうんですね。 知らなかったので確認できて良かったです。 また、C++においても、演算子のオーバーロードを用いると、括弧を用いずに関数を呼び出せます。 「括弧を用いずに関数を呼び出せる」というのは 「TestClass::getMember」と書いても「TestClass::getMember()」と 同じ結果が得られるようになる、という意味でしょうか? 演算子のオーバーロードは使ったことがないので、方法が分かりません。 ...
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい
返信数: 11
閲覧数: 8705

VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい

VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにする方法はあるでしょうか? 例えば、あるクラス(TestClass)の静的メンバ変数(member)の値を返すgetter関数を呼び出す際に 「TestClass::getMember()」のように括弧ありで呼び出すと、正常にメンバ変数の値が返りますが 「TestClass::getMember」のように括弧なしで呼び出すと、異常な値(「001513BB」などの16進数(?)のような値)が返ります。 括弧なしで呼び出したとしても、返った値を変数に代入したり、別の値と比較したりする場合は 型の不一致でエラーになるので気付くことがで...
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]std::vectorとポインタのメンバアクセスの違いについて
返信数: 4
閲覧数: 4813

Re: [C++]std::vectorとポインタのメンバアクセスの違いについて

usaoさん
ご回答ありがとうございます。

色々確認してみましたが、問題がなさそうなので、このままポインタを使ってみようと思います。
速度面については、速くなった理由がはっきりとはしませんが、一応解決とさせていただきます。
ありがとうございました。
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]std::vectorとポインタのメンバアクセスの違いについて
返信数: 4
閲覧数: 4813

Re: [C++]std::vectorとポインタのメンバアクセスの違いについて

usaoさん ご回答ありがとうございます。 内容があやふやな質問をしてしまい、申し訳ございません。 ポインタを使うことを考えたのは、制作中のゲームの動作速度が遅くて困っていたことが理由なので ポインタを使うメリットについても「処理を高速化できる」というイメージしかないまま質問していました。 (ポインタはデータを格納しているアドレスを示すだけなので、データ自体を扱うより高速、というような簡単な理解しかできていません) ゲームでは、画面上に表示させるキャラクターを構造体(座標、画像情報、ステータス等のメンバ変数を持つ)で定義しています。 一度に表示させるキャラクターの数が少ない場合は問題ないですが...
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]std::vectorとポインタのメンバアクセスの違いについて
返信数: 4
閲覧数: 4813

[C++]std::vectorとポインタのメンバアクセスの違いについて

現在、Win32プロジェクトのゲームアプリを以下のような環境で制作しています。  OS:Windows7(64bit) Home Premium SP1  統合開発環境:Visual Studio Community 2017  コンパイラ:Visual C++ 2017  ライブラリ:DXライブラリVer3.18a 質問は、構造体を要素に持つ配列のメンバアクセスについてです。 構造体を要素に持つ配列を動的に確保するのにstd::vectorを使っていますが ポインタを使った方が処理が速いということを聞き、ポインタを使った方が良いのかな、と考えています。 ですが、ポインタは上級者向けで難しいと...
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: VC++2008を使用し続けることのリスクについて
返信数: 3
閲覧数: 3103

Re: VC++2008を使用し続けることのリスクについて

白い変人さん
ご回答ありがとうございます。
OSとVC++のバージョンによっては正常に動作しなくなることがあるんですね。
ご紹介いただいた記事のVC++2010のISOイメージのダウンロード先は、残念ながらリンクが切れているようです。

VisualStudio2015Communityは使えなかったのですが、試しにVisualStudio2017Communityをインストールしたら
問題なく使えるみたいなので、2017を使ってみようと思います。

最新バージョンが使えるようになったので、一応解決とさせていただきます。ありがとうございました。
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: VC++2008を使用し続けることのリスクについて
返信数: 3
閲覧数: 3103

VC++2008を使用し続けることのリスクについて

現在、Win32プロジェクトのゲームアプリを以下のような環境で制作しています。  OS:Windows7(64bit) Home Premium SP1  統合開発環境:Visual Studio 2008 Version 9.0.30729.1 SP  コンパイラ:Visual C++ 2008 ExpressEdition SP1  ライブラリ:DXライブラリVer3.17c 旧バージョンのVC++を使用し続けることは、サポート終了などのリスクがあると思いますが その他に、制作する上でのリスクや、作成したアプリを別のPCで実行する上でのリスクなどはありますでしょうか? 調べてみましたが、最...
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?
返信数: 14
閲覧数: 9399

Re: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?

qweaさんのサンプルをほぼそのまま(Draw3DRotの引数を0~359の角度で指定できるように改造して)使用することにしました。
これで望んだ通りの処理が実現しましたので、解決とさせていただきます。
アドバイスをくださった皆様、本当にありがとうございました。
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?
返信数: 14
閲覧数: 9399

Re: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?

qweaさん
ご回答ありがとうございます。
ご提示いただいたサンプルは実現したいことにほぼ近いです。
既存のソースをなるべく使いたいという気持ちにとらわれていて
行列を使うことを考えていませんでした。
サンプルを参考にして、行列を使って自分のソースを改良してみようと思います。
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?
返信数: 14
閲覧数: 9399

Re: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?

usaoさん 何度も丁寧なご回答ありがとうございます。 回転を表現する方法は色々あるんですね。 ご回答頂いた内容を調べれば、実現したいことに近い内容が見つかるかもしれません。 Dixq(管理人)さん ご回答ありがとうございます。 3D関数を使ずにDrawModiGraphにしているのは、最初に書きましたように ・二次元の座標上で3Dを表現したい ・画像の四つの頂点の座標を当たり判定に使用したい という理由があります。 3D関数だと3D空間上の座標になってしまうため、実現したいことと異なります。 また、前回の書き込みで上手くいかなかったX軸とY軸の同時回転もソースの修正で実現でき 後はX軸とY軸...
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?
返信数: 14
閲覧数: 9399

Re: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?

usaoさん 表現が分りづらくてすみません。 同時回転というのは、上記ソースの46~48行目の「回転角度加算」の部分の コメントアウトを複数行外して、複数の回転角度が同時に加算される状態のことです。 例えば、X軸とY軸を同時回転させる場合は、rota_x++とrota_y++のコメントアウトを外します。 今のソースだと、すべての軸を回転させた結果の座標を一度に計算しているので usaoさんのおっしゃる通り、回転する順番を考慮して (x, y)をX軸まわりに回転させた座標を(x1, y1)、(x1, y1)をY軸まわりに回転させた座標を(x2, y2) というように、座標を順番に計算させれば上手...
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?
返信数: 14
閲覧数: 9399

Re: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?

ソースの改良を色々と試みたところ、X軸とZ軸の同時回転、Y軸とZ軸の同時回転は 望み通りの描画結果を得られるようになりました。 (上記アニメーションで言うと①~③、⑤~⑥は実現しました) しかし、X軸とY軸の同時回転、X軸とY軸とZ軸の同時回転は、依然として望んだ結果が得られません。 X軸とY軸を同時回転すると、画像が拡大、縮小するのみで、回転するときの奥行きを表現できていません。 X軸とY軸の同時回転が上手くいかないので、当然、X軸とY軸とZ軸の回転もおかしくなっています。 やっぱり難しいのかもしれませんが、あと少し何かを加えれば完成しそうな気がするだけに なかなか諦めることができないです。...
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?
返信数: 14
閲覧数: 9399

Re: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?

usaoさん
ご回答ありがとうございます。

射影変換については、よく知らないので調べてみます。

アニメーションの4点の座標をDrawModiGraphの引数に与えると
絵的には望み通りの結果が得られるので、後は座標を求める計算だけを何とかすれば
実現できるのではないかと思っています。
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?
返信数: 14
閲覧数: 9399

Re: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?

Mathさん
ご回答ありがとうございます。
やっぱり無理なんですね。別の方法を考えてみます。
by sereparu
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?
返信数: 14
閲覧数: 9399

DXライブラリのDrawModiGraphで画像を三次元的に回転させるには?

はじめまして。 VC++とDXライブラリを始めたばかりの初心者です。 DrawModiGraphで画像を三次元的に回転させる方法を考えているのですが、上手く行かず困っています。 どう上手く行かないのかは後述します。 以下の「DrawModiGraph関数を用いて画像を回転させたいのですが」というトピックで DrawModiGraphで画像を平面方向に回転させる方法を見つけ、XYZ軸にも回転できるのでは、と考えました。 DrawModiGraphに拘っているのは、二次元の座標上に三次元的に回転する画像を表示させたいのと 画像の四つの頂点の座標を当たり判定に使用したいからです。 ・「DrawMod...

詳細検索ページへ移動する