検索結果 147 件
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: デフォルトを指定したCreateFontToHandle()がエラーを返す
- 返信数: 3
- 閲覧数: 2801
Re: デフォルトを指定したCreateFontToHandle()がエラーを返す
それでした、ありがとうございます。
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: デフォルトを指定したCreateFontToHandle()がエラーを返す
- 返信数: 3
- 閲覧数: 2801
Re: デフォルトを指定したCreateFontToHandle()がエラーを返す
あ、すいません画像が見きれてました。
変数の内容は
FONT_GARAGE_NAME == 0 //デバッグモードでのブレークポイントだからすでに初期化されてる??
FONT_HUD == -1
でした。
変数の内容は
FONT_GARAGE_NAME == 0 //デバッグモードでのブレークポイントだからすでに初期化されてる??
FONT_HUD == -1
でした。
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: デフォルトを指定したCreateFontToHandle()がエラーを返す
- 返信数: 3
- 閲覧数: 2801
デフォルトを指定したCreateFontToHandle()がエラーを返す
http://gyazo.com/ae18944fe5dfcb20f0fcf4884efbbb46.png フォントを作成してみたのですが、値が必ず-1になってしまいます。 どこが間違っているのでしょうか? http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph2.html#R17N10 また、同じ原因かもしれませんが、ループ中に描画する文字列に、上の画像のフォントハンドル(-1の状態)を指定した所、ものすごいFPSが下がりました。 std::sstringを使用して数値→文字列に変換指定たときは無かった負荷です。 これ...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 武器のカスタマイズの選択画面について
- 返信数: 5
- 閲覧数: 3994
Re: 武器のカスタマイズの選択画面について
おっと、解決解決
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 武器のカスタマイズの選択画面について
- 返信数: 5
- 閲覧数: 3994
Re: 武器のカスタマイズの選択画面について
ありがとうございます!関数ポインタ使ってみます!
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 武器のカスタマイズの選択画面について
- 返信数: 5
- 閲覧数: 3994
Re: 武器のカスタマイズの選択画面について
回答ありがとうございます。
ハンドルというのはどのようなものでしょうか?
いまいちピンと来ないです。
関数ポインタの配列みたいなものでしょうか?
あ、というか関数ポインタの配列って結構いいですね
ハンドルというのはどのようなものでしょうか?
いまいちピンと来ないです。
関数ポインタの配列みたいなものでしょうか?
あ、というか関数ポインタの配列って結構いいですね
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 武器のカスタマイズの選択画面について
- 返信数: 5
- 閲覧数: 3994
武器のカスタマイズの選択画面について
武器(銃や剣)をカスタマイズできるシューティングゲームを作っています。 武器はそれぞれ特殊な動きや効果をつけたかったので、ハードコードでいいやと思い武器1種類につきクラスを1つ定義しました。 カスタマイズ画面で武器のクラス名string配列から選んで選択したクラスをインスタンス化して、キャラクターにセットしたいと思っているのですが、 string文字列からクラス名に変換することになるのですが、これは正しいのでしょうか? ↓こんな感じの処理を武器の種類数分記述することになって、泥臭いコードになるような・・・ if(SelectWeaponStr == "CHandGun"){ new CHand...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 'DxDrawFunc_d.lib' を開くことができません。
- 返信数: 10
- 閲覧数: 7842
Re: 'DxDrawFunc_d.lib' を開くことができません。
リビルドしてみたらうまくいきました!
ありがとございます。
ありがとございます。
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 'DxDrawFunc_d.lib' を開くことができません。
- 返信数: 10
- 閲覧数: 7842
Re: 'DxDrawFunc_d.lib' を開くことができません。
2バイト文字が入ってるとまずいと思ったので、
"DxLib\プロジェクトに追加すべきファイル_VC用" の中身を
Cドライブ直下に新しく作ったDxLibというフォルダの中に入れて使用していました。
説明不足でした、すいません。
"DxLib\プロジェクトに追加すべきファイル_VC用" の中身を
Cドライブ直下に新しく作ったDxLibというフォルダの中に入れて使用していました。
説明不足でした、すいません。
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 'DxDrawFunc_d.lib' を開くことができません。
- 返信数: 10
- 閲覧数: 7842
Re: 'DxDrawFunc_d.lib' を開くことができません。
Cドライブになっています。
C:\DxLib;%(AdditionalLibraryDirectories)
DドライブのプロジェクトからCドライブのDxlibを参照するために設定したのですが、
ここが間違っていたのでしょうか?
C:\DxLib;%(AdditionalLibraryDirectories)
DドライブのプロジェクトからCドライブのDxlibを参照するために設定したのですが、
ここが間違っていたのでしょうか?
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 'DxDrawFunc_d.lib' を開くことができません。
- 返信数: 10
- 閲覧数: 7842
Re: 'DxDrawFunc_d.lib' を開くことができません。
VS2010です。
学生支援なんちゃらで取得した奴です。
プロパティのリンカーのタブは重点的に見比べましたが変わらず・・・。
後出しで悪いのですが、
別のPC(同じくVS2010)で弄ってDropboxで受け渡ししたことも何か問題があるのでしょうか?
その時は特に問題はありませんでした。
学生支援なんちゃらで取得した奴です。
プロパティのリンカーのタブは重点的に見比べましたが変わらず・・・。
後出しで悪いのですが、
別のPC(同じくVS2010)で弄ってDropboxで受け渡ししたことも何か問題があるのでしょうか?
その時は特に問題はありませんでした。
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 'DxDrawFunc_d.lib' を開くことができません。
- 返信数: 10
- 閲覧数: 7842
Re: 'DxDrawFunc_d.lib' を開くことができません。
新しく作ってみたところ正常にビルドが通りました。
プロジェクトのプロパティをひと通り見比べてみたのですが
変わったところは見当たりませんでした。
何か、表示されない自動的に設定されてる部分などがあるのでしょうか?
プロジェクトのプロパティをひと通り見比べてみたのですが
変わったところは見当たりませんでした。
何か、表示されない自動的に設定されてる部分などがあるのでしょうか?
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 'DxDrawFunc_d.lib' を開くことができません。
- 返信数: 10
- 閲覧数: 7842
'DxDrawFunc_d.lib' を開くことができません。
タイトル通りのエラー
'DxDrawFunc_d.lib' を開くことができません。
と出てビルドエラーになってしまいます。
後付HDD(Dドライブ)にプロジェクトを移したらエラーが出始めました。
権限も管理者にしてありますし、DxlibのリンクもCドライブを指定してます。
勿論、プロジェクト自体をCドライブに戻すとビルドエラーも出ませんでした。
Dドライブから見るとDドライブがCドライブになってるとかってないですよね?
どうしたらいいでしょうか?
'DxDrawFunc_d.lib' を開くことができません。
と出てビルドエラーになってしまいます。
後付HDD(Dドライブ)にプロジェクトを移したらエラーが出始めました。
権限も管理者にしてありますし、DxlibのリンクもCドライブを指定してます。
勿論、プロジェクト自体をCドライブに戻すとビルドエラーも出ませんでした。
Dドライブから見るとDドライブがCドライブになってるとかってないですよね?
どうしたらいいでしょうか?
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: ページにとばすプログラムについて
- 返信数: 3
- 閲覧数: 1850
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: objectiv-c言語
- 返信数: 3
- 閲覧数: 2608
Re: objectiv-c言語
webサイトならばブラウザにcookieを情報を保存させるのも手です。
有効期限を設定すればブラウザから勝手に消えますし。
有効期限を設定すればブラウザから勝手に消えますし。
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 何が違うかわからない
- 返信数: 3
- 閲覧数: 2767
Re: 何が違うかわからない
http://gyazo.com/42553033a707a1430da5caff35bb97ca
線分上の、円に最も近い所に点を打ってみたら反対側(計算して算出するほう)に点が表示されないことがわかりました。 これは絶対座標ではなくlx,lyを基準とした相対的な座標だということに気づいて直したらうまくいきました。
tatuさんありがとうございました。
線分上の、円に最も近い所に点を打ってみたら反対側(計算して算出するほう)に点が表示されないことがわかりました。 これは絶対座標ではなくlx,lyを基準とした相対的な座標だということに気づいて直したらうまくいきました。
tatuさんありがとうございました。
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 何が違うかわからない
- 返信数: 3
- 閲覧数: 2767
Re: 何が違うかわからない
こんなかんじでしょうか・・・ 未だにtmprの求め方の意味がわからないですけど double tmpax = cos(angle2)*range;//lx+cos(angle2)*range-lx; double tmpay = sin(angle2)*range; double tmpbx = cx - lx; double tmpby = cy - ly; double tmpr = (tmpax*tmpbx + tmpay*tmpby) / (tmpax*tmpax + tmpay*tmpay); double tmpx,tmpy; if( tmpr<= 0 ){ tmpx=lx; tm...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 何が違うかわからない
- 返信数: 3
- 閲覧数: 2767
何が違うかわからない
線分と円の当たり判定が、リンク先のサイトのとおりにやってもうまくいきません。 どうしたらいいでしょうか? http://d.hatena.ne.jp/Sampo/20070626/p1 int cx=800,cy=450;//円 double radius=50; int lx=1000,ly=450;//線は角度と長さでもって、もう片方の座標は計算してだす。 double angle2=0; double range=100; double tmpax = cos(angle2)*range - lx; double tmpay = sin(angle2)*range - ly; doubl...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 動きが変になる と 接触判定がおかしい
- 返信数: 8
- 閲覧数: 4539
Re: 動きが変になる と 接触判定がおかしい
tatuさん、ソフト屋さん、ありがとうございました!
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 動きが変になる と 接触判定がおかしい
- 返信数: 8
- 閲覧数: 4539
Re: 動きが変になる と 接触判定がおかしい
>数学の座標系と逆とか考えるとややこしくなるので素直に受け入れて下さい。
>下方向が+です。
そうします。。
>兵士は思い通りに動くようになりましたか?
動くようになりました!
>兵士の画像は画面のどこに描画すればよいと思いますか?
Soldier.x-Camera.x,Soldier.y-Camera.y
でしょうか?
>下方向が+です。
そうします。。
>兵士は思い通りに動くようになりましたか?
動くようになりました!
>兵士の画像は画面のどこに描画すればよいと思いますか?
Soldier.x-Camera.x,Soldier.y-Camera.y
でしょうか?
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 動きが変になる と 接触判定がおかしい
- 返信数: 8
- 閲覧数: 4539
Re: 動きが変になる と 接触判定がおかしい
動画についてどのキーを押しているのかがわかるようにした方がよいと思います。 動きについて 定数の角度について左右と角度の変化があっていますか? (角度は時計回りと反時計回りのどちらが正の方向ですか?) 角度を表示してみた結果、自分が想定していた正負が逆でした。。すいません。 状態を再現できるシンプルなコードを張っていただくのが一番かと思います。 ※ シンプルなコードを作っている時に問題の原因が分かることも多々あります。 接触判定について 投稿されたコードだと武器と兵士の取得範囲が同じだととれないというようになっている気がします。 各円の座標と半径の関係についてもう一度考えてみてください。特に半...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 動きが変になる と 接触判定がおかしい
- 返信数: 8
- 閲覧数: 4539
動きが変になる と 接触判定がおかしい
作っていたゲームがよくわからない挙動になったので質問させていただきます。 ・動きが変 マウスポインタの方向に常にキャラクターが向いている状態で、キャラクターから見て前後左右の方向WASDで動くように作ったのですが動画のようになってしまいます。 期待値は、「マウスポインタを中心に回り続ける」、「マウスポインタから離れる・近づく」です。 ・接触判定がおかしい 接触判定に円同士の距離判定を使用しているのですが、半径が低い時には問題がなかったのですが半径が大きくなると逆にとれなくなりました。 動画では丸い青い円が接触判定です。 武器の設定範囲を20、兵士の取得範囲を20した時に取得できなくなりました。...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: スクリーンセーバーの基礎
- 返信数: 5
- 閲覧数: 3626
Re: スクリーンセーバーの基礎
ComCtl32.libだけでリンク通りませんか? 私はリンクできますが。 あれ? ・・・すいません、適当なこと言ってました。 それに、 scrnsave.hはComctl32.libに含まれているのでしょうか? 「追加の依存ファイル」はComctl32.libだけ設定してみたらscrnsaveがインクルードできました。 それが正解です。 IA64はかなり特殊です。 x64は64bitOS専用でコンパイル時に使用します(通常は32/64bit兼用)。 http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi? ありがとうございます、勉強になりました。 この...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: ダウンキャストはやっていいの?
- 返信数: 9
- 閲覧数: 7572
Re: ダウンキャストはやっていいの?
ありがとうございます、ダブルディスパッチ試してみます。
とりあえずこの質問は解決とさせていただきます。
とりあえずこの質問は解決とさせていただきます。
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: ダウンキャストはやっていいの?
- 返信数: 9
- 閲覧数: 7572
Re: ダウンキャストはやっていいの?
勢力によってダメージを受ける・受けないという判断をするのはCharacter同士だけなのですから、逆に勢力を全く考えないってゲームの仕様を変更したほうが楽ですけど・・・
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: ダウンキャストはやっていいの?
- 返信数: 9
- 閲覧数: 7572
Re: ダウンキャストはやっていいの?
あ、すいません、コードを間違えてました。 class ContactArea : public Object{ CCharacter* Owner; public: void NotifiAgency(CContactArea* tmp){Owner->Feedback(tmp);} }; ではなく class ContactArea : public Object{ CEntity* Owner; public: void NotifiAgency(CContactArea* tmp){Owner->Feedback(tmp);} }; です。 例えばCharacterが他のEntityのC...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: スクリーンセーバーの基礎
- 返信数: 5
- 閲覧数: 3626
Re: スクリーンセーバーの基礎
お二人ともありがとうございます。 無事デバッグがとおりました。 もう3つ質問したいのですが、 今回プロジェクトのプロパティから構成->リンカ->追加の依存ファイルという項目を設定して直しました。 Program Files(x86)というフォルダにエクスプローラで検索をかけて探して、やたら長いファイルパスを直接入力するのですが、 もうちょっと短いファイルパスにする方法はありませんか? C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\ComCtl32.lib; プログラミングの館で管理人さんがわざわざローカルディスクのルートにDxL...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: スクリーンセーバーの基礎
- 返信数: 5
- 閲覧数: 3626
スクリーンセーバーの基礎
スクリーンセーバーを作りたいのですが、いかんせん基礎の作り方がよくわかりません。 解決方法がわからないエラーがでます。 #include <Windows.h> #include <ScrnSave.h> LRESULT WINAPI ScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CREATE: //起動処理 break; case WM_DESTROY: //終了処理 break; default: break; } return DefScreenSave...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: ダウンキャストはやっていいの?
- 返信数: 9
- 閲覧数: 7572
Re: ダウンキャストはやっていいの?
Contact::RunはCharacterの処理順によってできるだけ不公平が無いよう1ループ1回呼び出されます。 説明不足でした、すいません。 Characterそれぞれの処理(Update)をしたあとにContactAreaList::Runを実行しContactAreaを経由してEntityの純粋仮想関数にFeedbackしてそれぞれのCharacterが振る舞いを決めます。 mainループ int main(){ CContactAreaList ContactAreaList; CCharacter CharacterFriend(&ContactAreaList); CCharac...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: ダウンキャストはやっていいの?
- 返信数: 9
- 閲覧数: 7572
Re: ダウンキャストはやっていいの?
回答ありがとうございます。 まずEnergyInformationクラスとCollisionInformationクラスを用意します。 EnergyInformationクラスに勢力情報を取得する純仮想関数の宣言し、CollisionInformationが更にそれを継承(勢力情報を取得する関数はまだ定義しない)、ここには当たり判定に必要な関数を純仮想関数で宣言します。そしてCharacterクラスより下の具体クラスで全て定義します。 Entityには自分(Character)のthisポインタをCollisionInformationとして渡し(暗黙的なアップキャスト)、当たり判定で当たって...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: ダウンキャストはやっていいの?
- 返信数: 9
- 閲覧数: 7572
ダウンキャストはやっていいの?
データフローの中でどうしてもダウンキャストをしてしまう箇所があるのですが、どうしたらいいでしょうか? Objectクラス ↓ 継承 ↓ Entityクラス→当たり判定を委託→ContactAreaクラス ↓ 継承 ↓ Characterクラス というクラス関係で、「ContactAreaクラス」のポインタを「ContactAreaListクラス」に登録し、 当たり判定リストクラス::Run()という関数が呼び出されると一括ですべてを判定して、当たっていたらフィードバックをEntityクラスに返すというものです。 (ContactAreaListに登録されたContactAreaクラス同士で判定...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構文エラー : ';' が '<' の前にありません。
- 返信数: 4
- 閲覧数: 8791
Re: 構文エラー : ';' が '<' の前にありません。
うああ、それでした!
STL使い慣れてないのでusingなんて発想がなかったです。
ありがとうございました!
STL使い慣れてないのでusingなんて発想がなかったです。
ありがとうございました!
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構文エラー : ';' が '<' の前にありません。
- 返信数: 4
- 閲覧数: 8791
構文エラー : ';' が '<' の前にありません。
vectorを使用し始めたら構文エラーが出始めたのですが どこの行が悪いのかわかりません。 vectorは他のファイルを作成する時に同じ構文でエラーがでませんでした。 どうすれば以下のエラーが解決するでしょうか? MapObjectListItem.h(13): error C2143: 構文エラー : ';' が '<' の前にありません。 MapObjectListItem.h(13): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません MapObjectListItem.h(13): error C...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 変数の値が変になる
- 返信数: 11
- 閲覧数: 4746
Re: 変数の値が変になる
なんだかよくわからないですが、No.8に変更したことでバグが治ったということで解決とさせて頂きます。
コンストラクタだけで全部賄おうとしたのが間違いだったんですね・・・
コンストラクタだけで全部賄おうとしたのが間違いだったんですね・・・
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 変数の値が変になる
- 返信数: 11
- 閲覧数: 4746
Re: 変数の値が変になる
あれ? 失礼しました。 CRoundSceneのコンストラクタの内容を直して返信させてもらったのですが、 その時に治った?ようです。 下が本来のコードでした。 紛らわしいことをしてしまい申し訳ないです。 CRoundScene::CRoundScene(int tmpUnitCharacterNum,int tmpGunNum):IsEnd(CONTINUE),Func(&CRoundScene::Load),UnitCharacterNum(tmpUnitCharacterNum),GunNum(tmpGunNum){ //Gun配列設定 for(int i=0;i<GunNum;i++){...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 変数の値が変になる
- 返信数: 11
- 閲覧数: 4746
Re: 変数の値が変になる
CRoundSceneのコンストラクタも・・ CRoundScene::CRoundScene(int tmpUnitCharacterNum,int tmpGunNum):IsEnd(CONTINUE),Func(&CRoundScene::Load),UnitCharacterNum(tmpUnitCharacterNum),GunNum(tmpGunNum){ //Gun配列設定 Gun = new CGun[GunNum]; for(int i=0;i<tmpGunNum;i++){ // Gun[i].AllSet(); } //Character配列設定 UnitCharacter...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 変数の値が変になる
- 返信数: 11
- 閲覧数: 4746
Re: 変数の値が変になる
ずらずらっと書き並べさせて頂きます。 コンストラクタで指定されているのはFreeGameIniではなくTitleMenuでした。 すいません。 静的関数については http://marupeke296.com/GDEV_No7_StateImpliment2.html こちらのデザインの⑤あたりを真似させて頂きました。 正直「?」な所がありますが・・・ main.cpp int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode(TRUE),SetGraphMode(X_WINDOW,Y_WINDOW,16),DxLi...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 変数の値が変になる
- 返信数: 11
- 閲覧数: 4746
Re: 変数の値が変になる
(1) 両方とも0です。 (4) 確かに、スペースキーと矢印キーを同時に押されたら領域外アクセスになりますね。 UP,DOWNとRIGHT,LEFTの分岐の間に Select%=SelectPropertiesNum; を移動して修正しました。 (5) Administrator.RoundというRound変数があり、 FreeGameIniでインスタンス化 FreeGameで使用して FreeGameFinでDeleteしてTitleMenuに戻るので、恐らく・・・大丈夫だと思います。 FreeGameはFreeGameIniからのみ遷移し、FreeGameFinにしか遷移できません。 Fi...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 変数の値が変になる
- 返信数: 11
- 閲覧数: 4746
Re: 変数の値が変になる
(1) 何処の何かわかりません。 ブレークポイントを一行目に設置しステップインしていった結果、 7行目時の変数の値と9行目時の変数の値です。 それでもDrawFormatString()は関係ないと思いますけど・・・ 無題.png (2)Selectの初期値が不明です。 失礼しました。 コンストラクタの初期化リストで0を指定しています。 (3)19行目のSelect++;はSelect--;では? (4)29行目のSelect%=SelectPropertiesNum;の前の23行と26行目の処理が配列範囲外になる恐れがあります。 http://dixq.net/g/03_04.html 此...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 変数の値が変になる
- 返信数: 11
- 閲覧数: 4746
変数の値が変になる
int型変数UnitCharacterNum(キャラクター数)とGunNum(武器の数)を設定し、 スペースキーが押されたらRound管理クラスのコンストラクタにそれらを渡して Round管理クラスがキャラクターと武器を保持しFreeGame関数に移る という内容なのですが、 スペースキーを押すと動作が停止しました~というエラーが出ます。 ブレークポイントでそれぞれの変数の値を見たところ 7行目で0,0 9行目で851981,19 という数値になります。(何回やっても数値は同じでした) どうすれば解決するでしょうか? void Administrator::FreeGameIni(){ con...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 判定は誰がする?
- 返信数: 19
- 閲覧数: 11690
Re: 判定は誰がする?
なるほど、大変勉強になりました。
ISleさんDixqさん新月獅子さんありがとうございました!
ISleさんDixqさん新月獅子さんありがとうございました!
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 判定は誰がする?
- 返信数: 19
- 閲覧数: 11690
Re: 判定は誰がする?
なるほど、欲しい回答が得られました。 ありがとうございます! あとひとつ、 std::listを剥き出しで使うと応用が効かないので独自にインターフェースを設計すると良いと思います。 分類とかソートとか効率の良い方法は状況によって違うのであとから内部構造を変更できるように配慮しておくべきです。 というのはどうすればいいんでしょうか? 勿論、ゲームにあった実装方法が良い、と仰っているのはわかるのですが、 オブジェクトにあった構造体の配列を予め用意しておき、その要素にフラグをたてて代入したり、 判断クラスのフィールドがもつ構造体ポインタにnewでインスタンス化して配列に追加するぐらいしか方法が思いつ...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 判定は誰がする?
- 返信数: 19
- 閲覧数: 11690
Re: 判定は誰がする?
武器だけじゃなく当たり判定を持つ部位をすべてリストに登録して判定クラスで重なりをフィードバックすれば、ダメージを与えるのも受けるのも同じように処理できます。 武器も人も固定された罠もすべて、当たり判定を持つものとしてそこにあるということです。 "リストに登録"とはstd::listというものでしょうか? とすると、具体的な実装方法として、 座標、大きさ、形、存在時間の要素を持ったstruct型をpushしていき、イベントがあれば先頭から一つ一つ判定していく、ということでしょうか? それとも、”フィードバック”というのがよくわからないですが、とにかくリストに追加していき、 ひと通り、1フレーム...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 判定は誰がする?
- 返信数: 19
- 閲覧数: 11690
Re: 判定は誰がする?
「攻撃というイベントがあったらキャラクターにあたったか判定する」 のではなく、 「キャラクターが攻撃に当たっていないか判定しにいく」 という考え方ならば、 キャラクター(判定したいオブジェクト)の数によって処理が肥大化することもないですし、 例えば当たり判定用のマップなどを作って管理すれば、攻撃というイベントがあったらそこに座標と角度その他もろもろを登録するだけで、 キャラクターは自分の座標などを持ってメソッドにアクセスすれば、ひょっとしたら帰ってくるbool値だけで判断もできるということですね ただし、マップに当たり判定をガンガン追加していく方法は想像もつきませんが・・・ ※今まで攻撃イベン...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 判定は誰がする?
- 返信数: 19
- 閲覧数: 11690
Re: 判定は誰がする?
なるほど それならメソッドやコンストラクタの引数でキャラクターのアドレスを渡すよりも目的がハッキリ区別していて分かりやすそうですね。 でも、話が進んでしまって言い難いのですが、No.1の質問は 武器クラスが判定するか、判定クラスを作って「攻撃」という情報を送って判定させるかどちらのほうがいいのか というもので、No.1の補足すると 攻撃のアクションが行われたら武器の座標と角度や攻撃方法や、マネージャクラスから貰ったキャラクタのアドレスを使って 武器クラスがその場で判定クラスをインスタンス化してどのキャラクタにあたったかを判定するのか もしくは マネージャクラスが判定クラスを保持しておき、 武器...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 判定は誰がする?
- 返信数: 19
- 閲覧数: 11690
Re: 判定は誰がする?
C++の知識が乏しいのでよくわからないですが、
PosGettableから継承したEnemyクラスはPosGettableのインスタンスを持っているって事で、
マネージャークラスはEnemyクラスからPosGettableの成分だけポインタだけ取り出せるって事ですか?
継承というのはEnemyクラスのメンバにPosGettableのメンバが追加されるだけ・・って思ってたのですが・・・
PosGettableから継承したEnemyクラスはPosGettableのインスタンスを持っているって事で、
マネージャークラスはEnemyクラスからPosGettableの成分だけポインタだけ取り出せるって事ですか?
継承というのはEnemyクラスのメンバにPosGettableのメンバが追加されるだけ・・って思ってたのですが・・・
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 判定は誰がする?
- 返信数: 19
- 閲覧数: 11690
判定は誰がする?
簡単な質問ですいません。 今ゲームを製作中で、主に関数ポインタでマネージャークラスを駆使して作っているのですが疑問が生まれたので質問させてもらいます。 例えば class MainGameManager(){ private: CCharacter Character[10]; CWeapon Weapon[10]; public: func(); }; (大雑把ですが)このようなマネージャークラスを作ると、 武器クラスが、キャラクラスのアドレス貰って武器クラスが当たり判定すべきなのでしょうか? それとも 武器クラスから判定クラスに武器クラスの位置や角度を渡して判定させるべきで...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: シーン管理とは
- 返信数: 13
- 閲覧数: 7045
Re: シーン管理とは
とりあえず
・インスタンスの再利用
・「その7 ゲーム遷移の実装をあれこれ考えてみる」リンク
のふたつを利用しNo.1での質問が解決したので解決とさせて頂きます。
std::の利用はC++の勉強をして、実際にテストコードを書いたあとにゲームに組み込みたいと思います。
・インスタンスの再利用
・「その7 ゲーム遷移の実装をあれこれ考えてみる」リンク
のふたつを利用しNo.1での質問が解決したので解決とさせて頂きます。
std::の利用はC++の勉強をして、実際にテストコードを書いたあとにゲームに組み込みたいと思います。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: シーン管理とは
- 返信数: 13
- 閲覧数: 7045
Re: シーン管理とは
ソフト屋さんのリンクをひと通り全部見てみました。
これが相当わかりやすいですね。
「その7 ゲーム遷移の実装をあれこれ考えてみる」
http://marupeke296.com/GDEV_No7_StateImpliment2.html
↑から派生してちょっと複雑になるのですが↓のもわかり易かったです。
ただ、複雑になる反面、利点といえばテンプレートを使いまわすことができる、ぐらいでしょうか。
「クラス内メソッド遷移からswitch~caseを消すMethodExecテンプレート」
http://marupeke296.com/DXCLS_MethodExecTemplate.html
これが相当わかりやすいですね。
「その7 ゲーム遷移の実装をあれこれ考えてみる」
http://marupeke296.com/GDEV_No7_StateImpliment2.html
↑から派生してちょっと複雑になるのですが↓のもわかり易かったです。
ただ、複雑になる反面、利点といえばテンプレートを使いまわすことができる、ぐらいでしょうか。
「クラス内メソッド遷移からswitch~caseを消すMethodExecテンプレート」
http://marupeke296.com/DXCLS_MethodExecTemplate.html
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: シーン管理とは
- 返信数: 13
- 閲覧数: 7045
Re: シーン管理とは
ソフト屋さん、h2so5さん ありがとうございます。 インスタンスの再利用は初期化する時要素が多いと取りこぼしが怖いし面倒です。(←甘え ただ、これが一番簡単かもしれません。 1.の シーン管理クラスを作成して、それぞれのシーンのインスタンスを登録するというのはいいのですが グローバルな領域でstatic属性というかシングルトンで保持するのはわかるのですが std::mapを利用して参照するというのはよくわかりません。 管理クラスがシングルトンで唯一性が確保されているのなら、クラス定義をincludeするだけで 管理クラスのメンバであるそれぞれのシーンのインスタンスは参照できるのではないのです...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: シーン管理とは
- 返信数: 13
- 閲覧数: 7045
Re: シーン管理とは
返答ありがとうございます。
また、後日でいいのですがもうひとつ疑問があるので記入しておきます。
特定のシーンでクラスのインスタンスを保持しておき、他のシーンに変異した時に保持しておいたインスタンスを開放する
というのは現実的な手法なんでしょうか?
例えばアクションRPGなどで戦闘時以外では[バトル]クラスが持つであろうフィールド内最大人数や着地判定や当たり判定などは必要ないわけで
つまり、[バトル]クラスは戦闘画面突入時にインスタンス化されて初期化され、戦闘中のみ保持されるべきだと思うのですが・・・
また、後日でいいのですがもうひとつ疑問があるので記入しておきます。
特定のシーンでクラスのインスタンスを保持しておき、他のシーンに変異した時に保持しておいたインスタンスを開放する
というのは現実的な手法なんでしょうか?
例えばアクションRPGなどで戦闘時以外では[バトル]クラスが持つであろうフィールド内最大人数や着地判定や当たり判定などは必要ないわけで
つまり、[バトル]クラスは戦闘画面突入時にインスタンス化されて初期化され、戦闘中のみ保持されるべきだと思うのですが・・・
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: シーン管理とは
- 返信数: 13
- 閲覧数: 7045
Re: シーン管理とは
いえ、別にC++の機能を使ってもいいです。
色々試行錯誤していたらこのようになったのですが・・・
C++に似つかわしくない方法ということでしょうか?
自分の知識不足から来るものでもあると思います。
色々試行錯誤していたらこのようになったのですが・・・
C++に似つかわしくない方法ということでしょうか?
自分の知識不足から来るものでもあると思います。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: シーン管理とは
- 返信数: 13
- 閲覧数: 7045
Re: シーン管理とは
関数ポインタのほうがわかりやすそうです
関数ポインタでシーン管理するとなると、関数ポインタ配列の返り値でシーン変異をするのでしょうか?
そうすると、例えばenumで定義した{MAINGAME,RESULT}などの、結果表示画面などのデータの受け渡しはグローバル変数になるのでしょうか?
またループ中、「その関数が指定されている間だけ常に保持したい変数」などもグローバル変数になるのでしょうか?
関数ポインタでシーン管理するとなると、関数ポインタ配列の返り値でシーン変異をするのでしょうか?
そうすると、例えばenumで定義した{MAINGAME,RESULT}などの、結果表示画面などのデータの受け渡しはグローバル変数になるのでしょうか?
またループ中、「その関数が指定されている間だけ常に保持したい変数」などもグローバル変数になるのでしょうか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: シーン管理とは
- 返信数: 13
- 閲覧数: 7045
シーン管理とは
今作成中のゲームのメインループでswitchによるシーン変異をしているのですが、 管理方法を「シーン管理」に移行したいです。 しかし、調べてもswtich管理との共通点がよくわからないです。() 何かわかりやすいソースコードや説明サイト、 もしくは、我儘ですが下記のコードをシーン管理に準じた設計に変えてくれるととても助かります。 現在の↓ int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode(TRUE),SetGraphMode(X_WINDOW,Y_WINDOW,16),DxLib_Init(), SetDra...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
if(fabs(Angle - atan2(-(double)(HungUnitCharacter[i].GetPosY()-PosY),(double)(HungUnitCharacter[i].GetPosX()-PosX)))<PI/2){ tmp=fabs(Angle - atan2(-(double)(HungUnitCharacter[i].GetPosY()-PosY),(double)(HungUnitCharacter[i].GetPosX()-PosX))); }else{ tmp=PI*2-fabs(Angle - atan2(-(double)(HungUnitC...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
if(fabs(Angle - atan2(-(double)(HungUnitCharacter.GetPosY()-PosY),(double)(HungUnitCharacter.GetPosX()-PosX)))<PI/2){}
(現在の角度-○への角度)の絶対値がPI/2以下の時
180度(-180度)をまたがない状態で綺麗に表現できる条件分岐だと思います。
しかし180度を跨ぐとNo:6の画像みたいに判定してくれなくなります。
また、言うのが遅れましたが角度は0~PI*2 ではなく-PI~PIを使いたいです。
(現在の角度-○への角度)の絶対値がPI/2以下の時
180度(-180度)をまたがない状態で綺麗に表現できる条件分岐だと思います。
しかし180度を跨ぐとNo:6の画像みたいに判定してくれなくなります。
また、言うのが遅れましたが角度は0~PI*2 ではなく-PI~PIを使いたいです。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
math.hの関数の引数のY成分を符合逆にしたら欲しい結果がでました。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
あぁ・・・ISLe さんが書きました:数学関数とキャラクター座標のY軸方向は一致してますか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
角度をマイナスにするのはやめたほうがいいんですか
あ、そうするとやっぱり余りを求めることでうまく動きそうですね
あ、そうするとやっぱり余りを求めることでうまく動きそうですね
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
引数の順番ということでしょうか?
確かにatan2はy,xにひっくり返っていたので入力支援に従って記述しました。
もしくはY座標は画面下に行くに連れて大きくなるというのと
数学上ではY軸は画面上に行くに連れて大きくなるということでしょうか?
後者は意識してないですが・・・
確かにatan2はy,xにひっくり返っていたので入力支援に従って記述しました。
もしくはY座標は画面下に行くに連れて大きくなるというのと
数学上ではY軸は画面上に行くに連れて大きくなるということでしょうか?
後者は意識してないですが・・・
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
えーと、提示した角度Angleから範囲基準角度引いて、PI*2で割った余りをがPI/2以下の時 ってことだから・・・ printfDx("Fun(青線)の角度:%f\n",Angle); printfDx("○への角度:%f\n",atan2((double)(HungUnitCharacter[i].GetPosY()-PosY),(double)(HungUnitCharacter[i].GetPosX()-PosX))); if(fabs(fmod(Angle - atan2((double)(HungUnitCharacter[i].GetPosY()-PosY),(double)(H...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
えええ、解決してませんよ!
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
質問内容を図にするとこんな感じです。
画像の文章が間違ってて
「角度Funから+-PI/2の範囲にAngleがあるかを判定したい」
です。すいません
画像の文章が間違ってて
「角度Funから+-PI/2の範囲にAngleがあるかを判定したい」
です。すいません
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
角度がちょうどPIの時必ず-PI*2になってしまいますね
そこはわかりやすいように直しておきます。
まぁ実際はあまり変わらないでしょうけど・・・
そこはわかりやすいように直しておきます。
まぁ実際はあまり変わらないでしょうけど・・・
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
Re: 一周した時の(double)角度について
角度が180度を上回ったら-360度して-180度を表現しこのangleという変数が最初のif文に入って値が変わります。
ところが次にangle>=PIのif文に引っかかってしまうのではないのですか?
そのため値は常に-PI*2となるのではないでしょうか?
角度が180度を切ったら+360度して+180度を表現してます
なので、使用する値の範囲は2*PI~0(360度~0度)ではなく
PI~-PI(180度~-180度)までを使います。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 一周した時の(double)角度について
- 返信数: 20
- 閲覧数: 12130
一周した時の(double)角度について
角度がPIを跨ぐとき方向などはどのようにして確認したらいいのでしょうか? 角度のデータはdouble型なので -3.14~3.14の範囲で角度を表現しているのですが if(Angle<=PI){ Angle+=PI*2; } if(Angle>=PI){ Angle-=PI*2; } のようなコードを毎フレーム呼び出すと 範囲分岐に支障が出てしまいます。 #define Fan 1.50 if(Angle<Fan+PI/2 && Fan-PI/2<Angle){} //角度Angleが、角度Fanから±PI/2分の範囲だった場合 分岐条件側でうまく回避することはできないでしょうか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++で、静的メンバポインタ変数を定義することができません。
- 返信数: 4
- 閲覧数: 4426
Re: C++で、静的メンバポインタ変数を定義することができません。
ISLe さんが書きました:class CShotの定義の最後にセミコロンがないからですかね。
ありがとうございます。
解決しました。...orz
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++で、静的メンバポインタ変数を定義することができません。
- 返信数: 4
- 閲覧数: 4426
Re: C++で、静的メンバポインタ変数を定義することができません。
#ifndef DEF_Character #define DEF_Character #include "UnitBase.h" class CCharacter : public CUnitBase{ protected: //移動速度 double MoveSpeed; public: //システム void IniMoveSpeed(); //移動速度取得 double GetMoveSpeed(); void GetMoveSpeed(double*); //ゲーム void MoveFront(); void MoveBack(); void MoveLeft(); void M...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++で、静的メンバポインタ変数を定義することができません。
- 返信数: 4
- 閲覧数: 4426
C++で、静的メンバポインタ変数を定義することができません。
どうしたらいいでしょうか? Shot.h #include "Character.h" class CShot{ static CCharacter* PCharacter; public: void GetAdr(CCharacter* hoge); } #endif Shot.cpp #include "Shot.h" #include "Character.h" CCharacter* CShot::PCharacter; void CShot::GetAdr(CCharacter* hoge){ PCharacter=hoge; } このようにすると CCharacterは型名で...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
Re: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
マルチスレッドですか、何か敷居が高いですね・・・
知っているのは、一番最初に作ったインスタンスのアドレスを格納して、次回以降呼び出された時にインスタンスを返す、というものなんですけど
知っているのは、一番最初に作ったインスタンスのアドレスを格納して、次回以降呼び出された時にインスタンスを返す、というものなんですけど
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
Re: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
返信ありがとうございます。
ひと通りコードを書きこんでみたのですがこれならばできそうです!
staticで実装してたのですが、シングルトンのほうがいいのでしょうか、勉強も兼ねてシングルトンを使ってみます。
ひと通りコードを書きこんでみたのですがこれならばできそうです!
staticで実装してたのですが、シングルトンのほうがいいのでしょうか、勉強も兼ねてシングルトンを使ってみます。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
Re: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
結局、何がやりたいのかを知りたいです。 やりたい事は ユニットのステータス(UnitBase、数値のみで表現できる情報)と ユニットの画像(UnitGraphics、画像のハンドルを持ってリスト化したもの)を 一つ(UnitAction)にまとめてそこで描画したいです。 使い方はUnitBaseを手動でUnitActionに持っていく感じです (UnitBaseは構造体でも代用できるかもしれません・・・) 各クラスの保持している情報とやり取りするメンバ関数だけを整理してもらえませんか? なにか不思議な事をしているとしか思えません。 【不思議なこと】 ・UnitActionクラスがアクションの...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
Re: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
自分が口下手なのがはっきりしたので今さらながらコードを記述しておきます。 突然別の環境での話にしてしまいすみません。 ・UnitBaseで定義されたクラスをUnitActionクラスに(ひとつのみ)渡します。 ・UnitGraphicsには一つ一つに要素数「UNITGRAPHNUM」の画像ハンドル三次元配列を保持しています。 ・UnitActionではUnitGraphicsから貰った三次元配列からUnitBaseで取得した情報を使用して選択された画像を表示します。 ※UNITGRAPHNUMは一枚の画像を何枚に分けるかの数値定義です ここで>>1での質問なのですが しかしUnitGraphi...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
Re: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
すいません、よくわからないのですが
・AAAにはBBBしかアクセスできない
・AAAはグローバル変数である
→AAAを取得するにはBBBのインスタンスを作ることになる
ということなのでしょうか?
・AAAにはBBBしかアクセスできない
・AAAはグローバル変数である
→AAAを取得するにはBBBのインスタンスを作ることになる
ということなのでしょうか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
Re: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
>ごっちゃになってます
すいません・・・
(3)の、AAAのabcのメンバにGet関数を入れるというのが一番すっきりすると思います。
でもこのabcのインスタンスにアクセスするにはこのインスタンスを保持するアドレスを知る必要があると思うのですが・・・
すいません・・・
(3)の、AAAのabcのメンバにGet関数を入れるというのが一番すっきりすると思います。
でもこのabcのインスタンスにアクセスするにはこのインスタンスを保持するアドレスを知る必要があると思うのですが・・・
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
Re: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
すいません、説明不足というか、文章にうまく表現できませんでした。
したいことはクラス定義したファイルを別のファイルでインスタンスを作り、与えた情報をまた別のファイルで取り出せるか
ということなんですが、extern宣言などグローバル変数を使わないとやはりできないでしょうか?
したいことはクラス定義したファイルを別のファイルでインスタンスを作り、与えた情報をまた別のファイルで取り出せるか
ということなんですが、extern宣言などグローバル変数を使わないとやはりできないでしょうか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
Re: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
アドレス渡し?というのはできないのでしょうか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: クラス、変数の配列を別のファイルで参照したい時どうすればいいでしょうか?
- 返信数: 20
- 閲覧数: 10214
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: Dxlibのマウス取得が遅延する??
- 返信数: 4
- 閲覧数: 2555
Re: Dxlibのマウス取得が遅延する??
実行ファイルの「デスクトップ コンポジション」を無効にし、Geforceの遅延許容フレーム数を0にしたら治りました。
(といっても気にならない程度ですが)
BeetleさんSoft屋さんありがとうございました!
(といっても気にならない程度ですが)
BeetleさんSoft屋さんありがとうございました!
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: Dxlibのマウス取得が遅延する??
- 返信数: 4
- 閲覧数: 2555
Re: Dxlibのマウス取得が遅延する??
なるほど、OSが関係していたのですね
少し調べてみたのですが
http://www.ouma.jp/ootake/delay-win7vista-j.html
こちらではソフト側からAeroの無効・許容フレームの設定ができるらしいのですが、Dxlibでの関数では対応していませんか?
少し調べてみたのですが
http://www.ouma.jp/ootake/delay-win7vista-j.html
こちらではソフト側からAeroの無効・許容フレームの設定ができるらしいのですが、Dxlibでの関数では対応していませんか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: Dxlibのマウス取得が遅延する??
- 返信数: 4
- 閲覧数: 2555
Dxlibのマウス取得が遅延する??
マウスの動作が遅延します。 少なくとも、1/60秒以上遅れて移動してると思うのですが、どうしたらいいでしょうか? CDeviceInputクラス int CDeviceInput::GetMouseX(){ int x,y; GetMousePoint(&x,&y); return x; } int CDeviceInput::GetMouseY(){ int x,y; GetMousePoint(&x,&y); return y; } ※このメソッド(マウスのX軸だけ、Y軸だけ取得するメソッド)の作り方ってこれでいいのでしょうか? main.cpp int WINAPI WinMain(HI...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
なるほどー
では行列ではなくX,Y,Zで作ってみます。
ありがとうございました!
では行列ではなくX,Y,Zで作ってみます。
ありがとうございました!
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
行列のほうが速い~ ときいたので、何も考えず飛びつきました・・・ X,Y,Z,Xa,Ya,Za,Sizeとパラメータをメンバで持っといて、 毎フレームMATRIX変換、 もしくsoftyaさんのMV1SetRotationXYZとMV1SetPositionでそれぞれ設定したほうがいいんですね そっちのほうが2Dの延長で行ける気がしなくもない・・・ そこで疑問に思ったのですが 行列を使うのはどういうゲームが対象でしょうか? 今後フライトシミュレーションや結構動き回るゲームを作るつもりなのですが、将来的に行列は必須ですか? No1のリンク先で「行列の計算をするためにGPUがあるといっても過言では...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
そうなんですか では、回転のメソッドと平行移動のメソッドの2つを用意してそれぞれtmp積・tmp和と自動化したほうがいいですね で、描画の直前にtmp積(回転)→tmp和(移動)の順でハンドルに適用したほうがよさそうです。 (0,0,0)を中心に回転しているのならば回転による移動は行われないからです。 ①クラスBでモデルファイルをロードしてモデル・ハンドル1を保持。 ②クラスAにクラスBのモデル・ハンドル1をコピー。 ③MATRIX変数tmpPositionにこのフレームでの並行移動量を代入。 ③MATRIX変数tmpAngleSizeにこのフレームでの角度量と大きさを代入。 //↑ゲーム内容...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
あれ、既に存在するMATRIXに変化を加えるにはtmpはいらないのかな・・・
いや、でも直接MATRIXに回転を加えると初期位置を軸に勝手に移動するのでは・・・
試してきます
いや、でも直接MATRIXに回転を加えると初期位置を軸に勝手に移動するのでは・・・
試してきます
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
⑥は間違えました。
適用後のMATRIXは③で手に入れるので⑥で手に入れる必要はありません。
「tmpとPASの加算したものをMV1SetMatrixで適用し、それの描画とtmpの破棄」です。
PASは今の情報(前のフレーム)で、tmpはこれから動く(このフレーム)情報です
また、③から⑥以外では同一のモデルを使った他のクラス(ここでは敵、クラスC?)が変更します。
キャラクターと同じモデルを使用したクラスがあれば、その分だけ1フレームで書き換えと描画が行われます。
適用後のMATRIXは③で手に入れるので⑥で手に入れる必要はありません。
「tmpとPASの加算したものをMV1SetMatrixで適用し、それの描画とtmpの破棄」です。
PASは今の情報(前のフレーム)で、tmpはこれから動く(このフレーム)情報です
また、③から⑥以外では同一のモデルを使った他のクラス(ここでは敵、クラスC?)が変更します。
キャラクターと同じモデルを使用したクラスがあれば、その分だけ1フレームで書き換えと描画が行われます。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
実数と、行列の「適用する順番」での動きの違いは理解できました。 ありがとうございます。 あと、ちょっと脱線するかもしれませんが質問させてください。 ①”他のクラス”でモデルファイルをロードし、ハンドルを保持しておく。(配列に入れて列挙体で定義する ②キャラクタクラスのメンバに、”他のクラス”に保持してあるハンドルをコピーする。 ③そのキャラクターのシーケンスに入ったら⑥でMV1GetMatrix()で取得したキャラクタクラスのメンバ「PAS」に保持してMATRIXをメンバのハンドルに適用する。(1フレーム前のキャラクターを再現する) ④MATRIX型の「tmp」を宣言し、1フレーム内で行う動作...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
えーと、じゃあMATRIX変数をゲームのキャラクターのクラスメンバでPositionAngleSizeなんて名前と用途で持ってると・・・
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
(0,0,0)座標を中心にして回りますので、回転してから並行移動するとその場で回転してから平行移動します。 逆に平行移動してから回転すると(0,0,0)座標を中心に平行移動した距離分離れた距離で回転します。 ちなみに移動だけの順番を変えても影響はありません。 自分でためしてみるのが一番だと思います。 (0,0,0)というのはローカル座標ですか? 例で疑問になったのは 「並行移動して回転する」を毎フレーム行うと渦巻状に離れていくと予想したのですが 先のリンク先ではどうも回転を維持するようでした。 →毎フレーム宣言・代入しているだけでした。 →しかし回転軸座標の維持と回転角度がどうも矛盾するよう...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
Re: DxlibでのMATRIXがよくわかりません
自分の考え方だと両方共「自転しながら平行移動」になるのですが
ゲームを作る時初期座標だけ設定してあとは座標移動ですべてこなすのでしょうか?
また、
みたいになるのとするとMATRIXではダイレクトに指定した座標にモデルを置くことができないようなきがするのですが・・・ゲームを作る時初期座標だけ設定してあとは座標移動ですべてこなすのでしょうか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibでのMATRIXがよくわかりません
- 返信数: 22
- 閲覧数: 11722
DxlibでのMATRIXがよくわかりません
MATRIXについて調べてみたのですがいまいちよくわかりません。
MATRIXとは拡大率・角度・三次元座標
のそれぞれを複合して持てる型
という考えなのですが
そうすると順番によって動作が違う
というのが意味不明です。
xに5移動
yに-3移動
zに4移動
これらの順番をいくら変えようと1フレーム内で完結していれば
人間からはどうみても同じにしかみえないのではないのでしょうか?
それとも理解が浅いのであればわかりやすい解説をお願いします・・
参考にしたサイトです↓
http://i-libro.net/wpmu/blog/archives/618
MATRIXとは拡大率・角度・三次元座標
のそれぞれを複合して持てる型
という考えなのですが
そうすると順番によって動作が違う
というのが意味不明です。
xに5移動
yに-3移動
zに4移動
これらの順番をいくら変えようと1フレーム内で完結していれば
人間からはどうみても同じにしかみえないのではないのでしょうか?
それとも理解が浅いのであればわかりやすい解説をお願いします・・
参考にしたサイトです↓
http://i-libro.net/wpmu/blog/archives/618
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 3Dの着地判定はどうすればいいのでしょうか?
- 返信数: 1
- 閲覧数: 1485
3Dの着地判定はどうすればいいのでしょうか?
こちらの動画を見させてもらったのですが、
例えばメタセコで島を作った上でキャラクターを走らせる、
また、ビルや建物を設置した場合の1Fや2Fなどの判定方法がわかりません。
メタセコで作ったモデルと同じ頂点と線をプログラムで書き込んでいくんですかね・・・
[nico]http://www.nicovideo.jp/watch/sm9115910[/nico]
例えばメタセコで島を作った上でキャラクターを走らせる、
また、ビルや建物を設置した場合の1Fや2Fなどの判定方法がわかりません。
メタセコで作ったモデルと同じ頂点と線をプログラムで書き込んでいくんですかね・・・
[nico]http://www.nicovideo.jp/watch/sm9115910[/nico]
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: MMDで作成したモーションデータをDxlibで完全に引き継げない?
- 返信数: 6
- 閲覧数: 3564
Re: MMDで作成したモーションデータをDxlibで完全に引き継げない?
ちょっと試してみたところひじの角度だけは完全にIK依存みたいな感じがするのですが・・
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: MMDで作成したモーションデータをDxlibで完全に引き継げない?
- 返信数: 6
- 閲覧数: 3564
Re: MMDで作成したモーションデータをDxlibで完全に引き継げない?
わかりました。親切にありがとうございます!
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: MMDで作成したモーションデータをDxlibで完全に引き継げない?
- 返信数: 6
- 閲覧数: 3564
Re: MMDで作成したモーションデータをDxlibで完全に引き継げない?
こんな感じになりました。
Dxlibと互換性がないモデル(もしくは新しい要素を実装したversionのMMD)なのでしょうか?
versionは7.06です
Dxlibと互換性がないモデル(もしくは新しい要素を実装したversionのMMD)なのでしょうか?
versionは7.06です
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: MMDで作成したモーションデータをDxlibで完全に引き継げない?
- 返信数: 6
- 閲覧数: 3564
MMDで作成したモーションデータをDxlibで完全に引き継げない?
MMDで作成したモーションデータがうまく引き継げないのですが、どうしたらいいでしょうか?
アニメーションは再生され、ポーズも想定したものなのですが、肘の関節だけ曲がりません。
掲示板の趣旨に反しているかもしれませんが・・・
また、この質問は2chのDxlibスレでマルチポストしています。
http://toro.2ch.net/test/read.cgi/gamed ... 35/201-300
アニメーションは再生され、ポーズも想定したものなのですが、肘の関節だけ曲がりません。
掲示板の趣旨に反しているかもしれませんが・・・
また、この質問は2chのDxlibスレでマルチポストしています。
http://toro.2ch.net/test/read.cgi/gamed ... 35/201-300
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: モデルのアニメーションが再生が再生されません
- 返信数: 2
- 閲覧数: 1819
Re: モデルのアニメーションが再生が再生されません
すいません、自己解決しました。
model000.pmmファイルではなくmodel000.vmdファイルでした。
model000.pmmファイルではなくmodel000.vmdファイルでした。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: モデルのアニメーションが再生が再生されません
- 返信数: 2
- 閲覧数: 1819
モデルのアニメーションが再生が再生されません
アニメーションが再生されず、エラーもでないので手も足もでません。どうしたらいいでしょうか? ディレクトリは同じ階層にmodel000.pmmが入っています。 アニメーションの表示方法は ①指定されているアニメーションのトータル時間を取得する //float animation_total_time = MV1GetAttachAnimTotalTime(m_H_Model,m_attach); ②毎フレームカウントする //ms_animation_count++;(コンストラクタで初期化) ③毎フレーム/2のモーションを再生するためのフレーム変数に代入するする。 //now_animatio...