検索結果 123 件

by Priest
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectPlayのパケットロスの可能性について
返信数: 3
閲覧数: 3809

Re: DirectPlayのパケットロスの可能性について

>> h2so5さん

ありがとうございます。
また検証用ができ次第お願いするかもしれません。

>> naohiro19さん

はい、そういった現状なのは承知の上です。
by Priest
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectPlayのパケットロスの可能性について
返信数: 3
閲覧数: 3809

DirectPlayのパケットロスの可能性について

こんにちは。 ネット対戦ができるゲームを作っているものです。 実はその通信にDirectPlay(のラッパーライブラリ)を用いています。 しかし、どうもパケットロスが発生している可能性があり ローカルの実験だとぜんぜん発生しないので DirectPlayを用いた開発を経験している方にお聞きしたいのですが DirectPlayはパケットロスを発生しうるのでしょうか? MicroSoftのDirectPlay発表時には「通信は保証される」とのことだったらしいのですが 当時の開発者の間では「怪しい」とのことらしいです。 (ラッパーライブラリ製作者様から聞きました) もし取り扱ったことがある方がいらっ...
by Priest
11年前
フォーラム: 作品お披露目掲示板
トピック: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver
返信数: 13
閲覧数: 30115

Re: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver

SSありがとうございます。

そのSSは過去のヴァージョンですね。
最新ですとマップが表示されるようになっています。

すみません、動画の方では随時更新しているのですが、こっちは手を加えていませんでしたね。

あとバグの報告どうもです。
直しておきます。
by Priest
11年前
フォーラム: 作品お披露目掲示板
トピック: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver
返信数: 13
閲覧数: 30115

Re: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver

ちなみに途中参加状態で戦闘には参加できません。現状は。
終わるのをまつことになります。

Naoさん

ん、それはバグかもしれません。
が、こちらでそんな症状は起こったことがないのでできたらSSを見せてくださいませんか?
by Priest
11年前
フォーラム: 作品お披露目掲示板
トピック: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver
返信数: 13
閲覧数: 30115

Re: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver

>>Tatuさん

先ほどは対戦ありがとうございました。

SSありがとうございます!お手数掛けさせてしまい申し訳ございません。
頂いた情報を元に直していこうと思います。

掲示されたご提案ご指摘は全て検討させて頂きます!
またゲーム内でお会いできましたら幸いでございます(*´ω`*)
by Priest
11年前
フォーラム: C言語何でも質問掲示板
トピック: スピードメーターの円について
返信数: 13
閲覧数: 6302

Re: スピードメーターの円について

SetDrawArea関数でメモリがある部分だけを描画範囲に指定するか
赤い直線を描く時に座標を求めていると思いますので,内側の座標を繋いで円を作るとかでしょうか.
by Priest
11年前
フォーラム: 作品お披露目掲示板
トピック: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver
返信数: 13
閲覧数: 30115

Re: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver

みけさん

あらら、そのバグは直したような気がしてたんですが
まだ直ってなかったようです。

詳しく見てみます。ありがとですー。

(追記)
おおう、ほんとだ!
ネット対戦時だけを見ててCPUの方を確認してなかった。
直します。

(追記)
手元の方で修正完了しました。
by Priest
11年前
フォーラム: 作品お披露目掲示板
トピック: 東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver
返信数: 13
閲覧数: 30115

東方二次創作ゲーム 「弾幕ごっこ」 ネット対戦対応ver

本作品は東方projectの2次創作ゲームです。 3D空間を自由にとびまわって敵を倒すゲームです。 C言語とDXライブラリとEffekseerとMMDとgDP(DirectPlay)を使って製作しました。 一通りのゲームシステムの構築やネット対戦を実装し、通信量の削減、バグ取りの過程を経て 体裁は整ってきたので、今までは日記の方で細々と報告してましたが こちらのほうにお引越しすることにしました。 それなりのスペックが要求されますが、一度遊んでみてはいかがでしょうか? 一回の対戦を終わらせるのに最短で17秒なので時間も取りません! ご一緒に対戦してみませんか? 最新紹介動画はこちらから! [ni...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: フォントを利用した文字の表示について
返信数: 4
閲覧数: 2938

Re: フォントを利用した文字の表示について

// 指定がないのでフォントハンドルをグローバル変数に int letter_m; // 関数の外でこうやってもできませんがそうやってませんか? // int letter_m = CreateFontToHandle("メイリオ", 40, 5, DX_FONTTYPE_ANTIALIASING_8X8); // スタート画面の処理 int gpstart(){ static int count; // カウントアップ count = (count+1)%90; // タイトル表示 DrawFormatStringToHandle(50,150,GetColor(255,255,255),...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: DXLib関数:Segment_Segment_MinLength()が最短距離を計算しない不具合について
返信数: 3
閲覧数: 3576

Re: DXLib関数:Segment_Segment_MinLength()について: 長さ0の線分≠点?

http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=3098

バグだったようです。
修正されましたので、必要な方はアップデートしてくださいね。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: DXLib関数:Segment_Segment_MinLength()が最短距離を計算しない不具合について
返信数: 3
閲覧数: 3576

Re: DXLib関数:Segment_Segment_MinLength()について: 長さ0の線分≠点?

ありがとです。

そうでしたか。
検証して明らかにおかしいとなった場合は御報告に伺おうかと思います。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: DXLib関数:Segment_Segment_MinLength()が最短距離を計算しない不具合について
返信数: 3
閲覧数: 3576

DXLib関数:Segment_Segment_MinLength()が最短距離を計算しない不具合について

結構どうでも良い話かもしれませんが、Segment_Segment_MinLength()について、 私はゲームの当たり判定にこの関数を使っています。 片方に弾の位置の線分、もう片方にキャラの位置の線分を渡しています。 これで、例えば5フレームごとに当たり判定を行うことにしても漏れなく判定できるわけです。 ただ、この関数、片方の線分の長さが0になると、最短距離を計算してくれません。 数学的には、長さ0の線分=点と解釈するのは間違っていますか? もし数学的に等しいなら、片方もしくは両方の線分の長さが0の時でも最短距離を計算してくれるよう要望を出したいのですが。 といっても、別にこちら側のプログラ...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の計算について
返信数: 2
閲覧数: 2025

Re: 配列の計算について

まず、どこがどう分からないのか教えてくださいませんか? ぱっと見ですが、いくつかです。 ・ i = (sumv -(sum * sum / count)) / (count - 1); で0で割る瞬間があります。(count==1の時) ・ aveとdevはfloat等の浮動小数点型ではなくていいのですか? ・ minは0ではなくて大きな数で初期化するべきではないでしょうか? 現状、入力と計算を同時にこなしている状態になっていて、バグが出やすい設計になっていると思われますので 入力を受け付け、配列markへ値を格納するところと配列markを使って計算を行うところをきっちり分けた方がいいと思います。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて
返信数: 7
閲覧数: 6049

Re: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて

DXライブラリ管理人様からご回答いただきましたので、上記URLにアクセスすれば詳しい内容を閲覧できることを記しておきます.

一言で申し上げますと,
DXライブラリはpmdモデルデータの"回転連動"に対応していないので
その設定を解除したうえでモーションを作成するように
とのことです.

以上,報告になります.
本件に関わってくださった各位に感謝申し上げます.
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて
返信数: 7
閲覧数: 6049

Re: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて

少し途方に暮れてしまったので…;

DXライブラリ管理人様に認知して頂くことでご助言を頂戴したく,下記URLにてマルチポストを行いました.
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=3051
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて
返信数: 7
閲覧数: 6049

Re: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて

トントン様

自前での検証ありがとうございます。
やっぱりそう見えますよね。。。

一度、MovelViewerのダウングレードを検討してみます。

softya様

腕には特にIKは使用しておりません。
なお、主に足にIKを用いてますが、そちらは難なく動いているようですね。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて
返信数: 7
閲覧数: 6049

Re: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて

トントン様

お忙しい中、貴方の貴重なお時間を割いていただいたことにまず感謝申し上げます。

MMDが私の想定の動きです。

001ですが、腕の開きが微妙に違いませんか?
MMD上だと割と閉じているのですが、ModelViewer上だと開きが大きい気がします。

ということは、やはり私の環境の問題なのでしょうか(´・ω・`)
状況が少しでも嬉しい方向に傾くよう努力してみます。

ありがとうございました。

>>表情
そうですね。 他に伝染しちゃいますねw
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて
返信数: 7
閲覧数: 6049

PMD+VMDのモーションデータのDxLibModelViewerの読み込みについて

こんにちわ。 一つ試して頂きたいことがあるのですが、こちらに添付したPMDとVMDのデータを用いて MMD上で再生されるモーションと、DxLibModelViewer上で再生されるモーションが異なる(DxLibModelViewer上でおかしくなる)現象が発生して困っています。 これは私だけの環境の問題なのか分かりませんので、環境がある方は再生してみていただけませんか? そのPMDで使用したいVMDは000,001,002,003,009,010です。 あとのは使用しません。 なお、添付したPMDデータは再配布可のものになっております。 私のDXライブラリのバージョンは3.10cです。 (追記...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリとEffekseerの親和性について
返信数: 4
閲覧数: 7439

Re: DXライブラリとEffekseerの親和性について

解決しました。 いろいろ修正した結果なのですが、 一番大きなミスがeffekseerの付属ヘルプに記載されていた、 (以下、EffekseerのHelp引用) "気を付けない点としては、Effekseerの描画はDXライブラリの仕様により、何らかの半透明の画像、もしくはそれに準ずる何かを描画した後でないと有効になりません。ゲーム中に組み込む場合は余程のことがない限り、問題にならないと思いますが、サンプルのような短いコードの場合は先に何かを描画します。 " を忘れていたことです。 // エフェクトの描画 void DrawBEffect(void){ // 情報取得 GRAPHHANDLE Ha...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリとEffekseerの親和性について
返信数: 4
閲覧数: 7439

Re: DXライブラリとEffekseerの親和性について

ありがとうございます。

そんな感じですよね。どこかが非同期なんでしょう…(´・ω・`)

とりあえず、その辺りを中心に捜査してみます。回答ありがとうございました。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリとEffekseerの親和性について
返信数: 4
閲覧数: 7439

DXライブラリとEffekseerの親和性について

こんにちわ。C言語とDXライブラリとEffekseerと用いてTPSのゲームの製作をしているものです。 先日も以下のようなトピックで投稿させていただきましたが、 その中で、もう少し問題点がはっきりしてから再度質問させて頂く旨の意志を提示させて頂いてました。 Effekseerについて http://dixq.net/forum/viewtopic.php?f=3&t=13226#p106016 問題点の本質としては、"エフェクトがうまく再生されない"ということです。 元のトピックでは[解決!]がついてしまっているので、結構スルーされてしまっているのではないかと不安になったので、 問題点がはっき...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerについて
返信数: 10
閲覧数: 9019

Re: Effekseerについて

さらに、もう一個有用な情報です。

mv1モデルデータに対して、モーションデータを取り除くと、正常に動作をすることが判明しました。
悪さをしているのは、モーションデータのような気がします。

ちょっと、私のレベルでは修正できないような問題の気がしております。

これら一連の現象に関して、なにか情報がありましたら、ぜひお願い致します。
NoMotionVer.png
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerについて
返信数: 10
閲覧数: 9019

Re: Effekseerについて

No9の問題に対して、少し進展がありました。 調査の結果、キャラクタの描画を無くすと正常にエフェクトが再生されるようです。 (他のモデルデータ、地形などは描画おkでした。) //キャラを描画 void DrawPlayer(void){ for(int i=0;i<PCNUM;i++){ if(!CheckCameraViewClip(Pc[i].Pos)){ MV1SetPosition(Pc[i].Handle.Model,VGet(Pc[i].Pos.x,Pc[i].Pos.y,Pc[i].Pos.z)); MV1SetRotationXYZ(Pc[i].Handle.Model,VGe...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerについて
返信数: 10
閲覧数: 9019

Re: Effekseerについて

無事、位置と角度は完璧に合わせてエフェクトを描画できるようになりました。 ただし、自分以外のキャラクタが、そのエフェクトを出現させた場合、 エフェクトの中心点がカメラの視野の外側に来てないと描画しないという現象が発生して困っています。 (エフェクトの中心点は発射位置です。) 以下のような感じです。 fail.zip // エフェクト用 static ::Effekseer::Manager* BManager = NULL; static ::EffekseerRenderer::Renderer* BRenderer = NULL; static ::Effekseer::Effect* B...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerについて
返信数: 10
閲覧数: 9019

Re: Effekseerについて

きたああああああ! hajimata.png 試行錯誤の末、ようやく角度が合いました。 原因は3点あり、そのうちの1つがかなり厄介でした。 1つ目は、Effekseer側とDXライブラリ側でカメラの視野角設定がずれていたこと。 2つ目は、Effekseer側とDXライブラリ側で座標系が違っていたこと。(しばらくeffekseer側は右手座標系設定でした) 3つ目についてですが、回転がうまくいかなかったことです。 先ほど行列を使うという案が出ていたので、それを使って変換をしたら動いたのですが、 それまでは、行列を使わずに、xyzそれぞれの軸に対して回転角度を指定して回転をしてくれる関数(Effe...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

はい、お疲れさまでした(*´ω`*)
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 棒グラフについて
返信数: 7
閲覧数: 3804

Re: 棒グラフについて

printf("\n"); で改行だけできますよ!
if文で適切なタイミングで呼び出してあげてください。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

for(j = n1 ; j <= n2 ; j++){ for(i = 1;i <= 9; i++){ printf("%3d",i); if(i%3==0){ putchar('\n'); } } putchar('\n'); } 実は、このコードのprintf("%3d",i);のiの式だけを適切なものに変えてあげればそれで目的の動作をするようになるのですよ。 // jは最初はn1(=2とする)で、 j <= n2 (n2=3とする)を満たす間、ループしますよね? // なので、繰り返しの最初の変数の値は、i=1, j=2ですね。 この時の、出力値として望ましいのは、"2"の段の"1"...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

作ったコードを全部見せてください。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

for(j = n1 ; j <= n2 ; j++){ for(i = 1;i <= 9; i++){ printf("%3d",i); if(i%3==0){ putchar('\n'); } } putchar('\n'); } さて、終盤ですね。 このコードでは、n1に2、n2に4を入れても、 1 2 3 4 5 6 7 8 9 と出てしまうと思います。 何故かというと、printf("%3d", i );だからです。 for(i = 1;i <= 9; i++) で、iの値が1から9まで増えていくからですね。 このように、iを使って1の段を表現しています。 2の段を表現するにはpr...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

for(i = n1 ; i <= n2 ; i++){ for(i = 1;i <= 9; i++){ printf("%3d",i); if(i%3==0){ putchar('\n'); } } } ああ、ごめんなさい。 変数iが両for文に使われてしまっていますね。 for(j = n1 ; j <= n2 ; j++){ for(i = 1;i <= 9; i++){ printf("%3d",i); if(i%3==0){ putchar('\n'); } } } のように片方をjに変えておきましょう。 あと、適切なところにputchar('\n');を追加しないと表示がおかしく...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerについて
返信数: 10
閲覧数: 9019

Re: Effekseerについて

ソースを覗いて、ヘッダ等で関数とその引数を確認した後に、じゃあこの関数は何やってるんだろ?ってcppの方を覗くと
Cerには見慣れないtemplateとかnewとか::とかバンバン出てきて、ドキッとしてしまいます.

行列も使用できるようですね.有難うございます.

今は分からないところが漠然としすぎてるので,ここ一点がわからん!ってなった時に改めて質問します.
もうちょっと試行錯誤します!

# 今までCで全部何とかなってきたので,言語の壁の厚さを感じたは初めてです.
# 使用を迫られてから学べばいいじゃん!と思っていましたが,ついにその日が訪れたのでしょうか.
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerについて
返信数: 10
閲覧数: 9019

Re: Effekseerについて

はい、それはごもっともで、少し覗いてみたのですが
ちょっとC++の解読が知識的に難ありだったので、何か文書の存在の情報があれば嬉しいなと思って投稿しました。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerについて
返信数: 10
閲覧数: 9019

Re: Effekseerについて

// エフェクト管理用インスタンスの生成 g_manager = ::Effekseer::Manager::Create( 2000 ); g_manager->SetLocation(g_handle, Pc.Pos.x,Pc.Pos.y,Pc.Pos.z);//位置 g_manager->SetRotation(g_handle, Bullet[i].Rot.x,Bullet[i].Rot.y,Bullet[i].Rot.z);//回転 g_manager->SetScale(g_handle,10.0f,10.0f,10.0f);//倍率 以上のように、各軸に対する回転角を受け付ける...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerについて
返信数: 10
閲覧数: 9019

Effekseerについて

普段、C言語とDXライブラリを用いてTPSのゲームを作っている者です。 本日、Effekseerというエフェクトを作ってDXライブラリのゲームにも組み込める神ライブラリを知って早速組み込んでみたのですが、 その関数群をどう扱ったらよいのか理解するのに難航しております。 画像のように、撃った方向とは違う方向にレーザーが射出しているので、 多分どこかの値がミスっているのでしょうが、 心当たりが多すぎてもうどうしようか悩んでいます。 (ちなみに、Effekseer抜きでは上手く動かせるので、 おそらく、Effekseer側とDXライブラリ側のカメラの投影行列や座標系の同期とかがおかしいんだと思います...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

for(i = 1;i <= 9; i++){ printf("%3d",i); if(i%3==0){ putchar('\n'); } } はい、これで、 1 2 3 4 5 6 7 8 9 は出来ましたね。 次は、これ全体を囲む感じで、for文を追加し、 ここまできたら、それを複数回(=n2 - n1 + 1)繰り返すプログラムに改良してみてください(for文を 3 2回使ってください) 何の段から?:2 何の段まで?:4 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 となるコードを書いてください。 今回追加するfor文は ...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

そうです.
というわけで,

for( i = 1 ; i<=9 ; i++ ){
  printf("%3d", i);
  if(その条件) 改行;
}

という形でも

1 2 3
4 5 6
7 8 9

は作れますね。

for文を2回使う方法、こちらの方法、どちらでもおkだと思います!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

エクセレントです.

では,それと同じ動作をする,だけどもうちょっとコンパクトなコードを目指してみましょう.
あなたがつくってくれたコードの一部分をピックアップして,
for(i = 1;i <= 3; i++){
  printf("%3d",i*1);
}
putchar('\n');

をさらにもう一個for文を使って,3回繰り返して,

1 2 3
1 2 3
1 2 3

と出力するプログラムを書いてみてください.
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

じゃあfor文の動作の理解を深めるために,for文で遊んでみましょう。

for文のかっこの中身をこうすると、どう出力されると思いますか?
for(i = 1; i<=9; i++)

123456789ですよね。

では、こうだとどうですか?
for(i = 1; i<=6; i++)

さらにはこれはどうですか?
for(i = 4; i<=6; i++)
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

そのようになるソースコードをここに張り付けてくれませんか?

追記:
1 2 3 4 5 6 7 8 9
と出力するソースコードは,ご存知の通り

for( i = 1 ; i <= 9 ; i++ ){
printf("%3d",i);
}

ですよね。

問題の
1 2 3
4 5 6
7 8 9
ですが,考え方としては,"(3文字の列の後に改行を入れる)を3回繰り返す"ことになりますね

では,前段階として,3文字の数字列の後に改行を入れて出力するプログラムを書いてここに張り付けてください。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 九九
返信数: 27
閲覧数: 16887

Re: C++ 九九

for(i = 1;i <= 9; i++){ for(j = 1; j <=9; j++) printf("%3d",i*j);      putchar('\n'); } # なんか表示が変になる つまり、あなたは1の段から9の段まで順番に出力することができているということですね。 では、その中の1の段だけを取り出して、 1 2 3 4 5 6 7 8 9 とだけ出力するプログラムを書いてみてください。 (for文を1回使ってください) 次に、 その文字を3つに区切って出力するプログラムに改良してみてください(for文を2回使ってください) 1 2 3 4 5 6 7 8 9 ここまでき...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームプログラミングの初心者程度の学習方法について
返信数: 26
閲覧数: 13600

Re: ゲームプログラミングの初心者程度の学習方法について

>楽しみにしてます。

…あ、あれ?アップするって言って、あれ?w
これはたいちうさんが作ってくれるでしょうね(チラッ

実はそのコードは今はいない大学の研究室のCDにしかないのですよ。
今は違う大学にいるので。取り寄せないといけませんね。でも、softyaさんなら6秒で作れちゃいそうです。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームプログラミングの初心者程度の学習方法について
返信数: 26
閲覧数: 13600

Re: ゲームプログラミングの初心者程度の学習方法について

Priestさん 動画拝見しました。 終盤草食動物が一気に増える所とか、見ていて飽きないですね。 大学で慌てて単位を掻き集めていた頃の数理生物学を思い出しました。 面白いので似たようなルールで私も作ってみます。 紹介してみた甲斐が今ここに! 実はこれには続きがあって、遺伝子を文字列で模した物を用意し、交配によってそれらが受け継がれていく様子を見れるようにしました。 それで、その遺伝子によって行動が変化するようにしました。 結果、優秀な遺伝子が残るというメカニズムっぽいものをこの単純なシミュレーションで示すことができました。 是非作ったら日記でアップするなりで見せてくださいね! こういった類の...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

おっと、そのおかしいと思った結果を貼り付けてみてください。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

おめでとうございます! 補足入れますね。 まず、#defineは関数外に出しておいた方がいいと思います。 調べたところ、#defineは関数の中にあっても、その#defineの下全てに反映されるようです。 ともあれ、何かをインクルードした後に#defineはまとめられた方がみやすいでしょう。 次にこれです。 value=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]); D=sqrt(value); 実は何とかの何乗をやるのに役立つ関数があります。 それはpow(a,b);でa^bとなります。なので、 D=sqrt( pow( x[i]-x[j] ...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

申し訳ないです。

先ほどlmいらないといいましたが、必要かもです。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

#include<math.h>
はソースコードに入っていますか?
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

-lmはつける必要はありません。 というか、こっちでコンパイルしてみたらできましたよ? 実行結果は以下のようになりました。 No.0: x,y=?3,4 No.1: x,y=?5,6 No.2: x,y=?3,2 No.3: x,y=?1,1 No.4: x,y=?5,7 sqrt(8.000000)=2.828427 sqrt(4.000000)=2.000000 sqrt(13.000000)=3.605551 sqrt(13.000000)=3.605551 sqrt(8.000000)=2.828427 sqrt(20.000000)=4.472136 sqrt(41.000000)=...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

エラーが出た時にはそのエラーコードを貼り付けてください。

とりあえず、32行目のprintfの"が全角です。
return文に;がないです。

初級者さんの手法だと今のif(i!=j)の比較がいらなくなるのもでかいですね。
ただこっちのほうが直感的かなぁと思ったのでこうしました。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

結果出力時にその最短距離も出力するようにすればいいと思います。

正常に動きましたか?

【追記】
main()のところをint main()に修正してください。
それに伴いmain関数の最後にreturn 0;を入れることをお忘れなくです。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

student A さんが書きました:組み合わせ(i,j)の保存とはどういうことでしょうか?
課題で
>2 点間で最も近い距離とその2 点の座標の組
を出力するよう求められています。

「最も近い距離」はMinimumdistanceを使って出力すればいいとして、では「2 点の座標の組」はどうしましょう?
というのがポイントです。

ここで、最短距離が更新された時にそのiとjの値をなにかの変数に保存しておけば、そこから、2点両方の座標が参照できます。
そうすれば「2 点の座標の組」の出力も可能ですよね。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

なかなかいい感じに仕上がってきましたね。 ですが、変数名にスペースを入れることはできないのでそれを修正してください。 そうすれば動くのではないかと思います。 完成したら色々補足入れますね。 【追記】 と、思ったら、 for(i=0;i<NUMPOINTS;i++){ printf("No.%d: x,y=?",i); scanf("%d%d",&x[i],&y[i]) の、 ・for文が閉じていません。 ・scanfに;がありません。 【さらに追記】 組み合わせ(i,j)の保存もしっかりとね! 【さらにさらに追記】 変数定義時に;がないところがあります。 【さらにさらにさらに追記】 scanf...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

なるほど!!iとjについてはわかりました。 iとjが等しくない時に距離が求められるようになりますよね!? ということは for(i=0;i<NUMPOINTS;i++){ for(j=0;j<NUMPOINTS;j++){ if(i==j){ D=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]) こんな感じでしょうか あ、i==jでは「iとjが同じ時」という意味になってしまいますよ! あと、Dの求める式も良いところまでいってますが、少しだけ違うようです。 >D(X1, Y 1,X2, Y 2) ={(X1-X2)^2+(Y1-Y2)^2}^1/2...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

scanf内が違うということですが、下のように直したのですがこれで大丈夫でしょうか? scanf("%d%d",&x[i],&y[i]): 少し違います。scanfは「ユーザーが""内の形式通りに入力した時に、%dの位置にあたる数字(だけではないけれど)を変数に入力してくれる」のような意味でとらえてください。 なので、仕様通りにx値とy値の間にコンマを入れるようにしなければならない場合、"%d,%d"のようにする必要があります。 例えば、scanf("%da%d",&x ,&y );とすると、4a5と入力することでxに4,yに5が入るはずです。いろいろやって試してみましょう。 また最短距離に...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

一つの座標点を一度に入力する方法としてはOKですが、満たすべき仕様的にはscanf内が少し違います。
それだと、
[入力]3 5
としないと、x=3 y=5となってくれません。改行もなくておkです。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームプログラミングの初心者程度の学習方法について
返信数: 26
閲覧数: 13600

Re: ゲームプログラミングの初心者程度の学習方法について

C言語を学び始めて3年がたったくらいにOpenGLに出会ってから変わりましたね。
正直これまでのコンソールで文字を出力して何が面白いんだこれは状態からの脱却でした。

私は何かうねうね動いてそれを見る系のが好きだったので、最初はライフゲームでした。
↓こんな感じの
[nico]http://www.nicovideo.jp/watch/sm14594073[/nico]

今思うと、この頃から3D指向でした。(ライフゲームを3Dにする必要はない。)
それで、少しゲームプログラミングから離れて、今は3Dシューティング製作に励む感じとなっています。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 大学のC言語の演習問題がわからないので質問します。
返信数: 30
閲覧数: 15069

Re: 大学のC言語の演習問題がわからないので質問します。

一つの座標点を一度に入力できるようにする方法 これは、 scanf("%d,%d",&x,&y); でいけます。""内のコンマの部分を変えれば、そういう風に入力しないといけない様にもできます。 最短距離の出し方がわからなくて困っています。 こういう風にしてみてください。 最短距離を格納する変数の定義; 最短になる組み合わせを格納する変数の定義; 最短距離をできるだけ大きい数で初期化; 組み合わせも使われてない数字で初期化; for(全ての座標点iについて){ for(全ての座標点jについて){ if(iとjが同じ点じゃなければ){ その組み合わせの距離aを求める; if(最短距離 > 距離a...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 移動スピードを上げたい
返信数: 20
閲覧数: 6043

Re: 移動スピードを上げたい

++や--の意味はわかりますか?
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 見ているモデルを中心にカメラを回転させたい(DXLib)
返信数: 45
閲覧数: 22788

Re: 見ているモデルを中心にカメラを回転させたい(DXLib)

動きとしてはOKだと思います。

では、実際にカメラとモデルを用意して、カメラがモデルを周回するプログラムを書いてみましょうか。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 47833

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

int IshiCount = WhiteLine( 1 , 1 , 1 , 1 , SIRO, 0 ); int WhiteLine( int x , int y , int Way_x , int Way_y , int Color , int count){ if(BanData[ y ][ x ] == WALL ){ return count; } BanData[ y ][ x ] = Color; WhiteLine( x + Way_x , y + Way_y , Way_x , Way_y , Color , count + 1 ); } こうでしょうか? 処理を追ってみま...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 見ているモデルを中心にカメラを回転させたい(DXLib)
返信数: 45
閲覧数: 22788

Re: 見ているモデルを中心にカメラを回転させたい(DXLib)

softya(ソフト屋) さんが書きました: 今気づきましたが、angleとangle2は起点が同じなのでこうですね。
softya(ソフト屋) さんが書きました: angle2 主人公からのカメラのいる方向(角度)
ということなので、angle2の起点はangleではないのですか?
主人公から見た角度なので常に真後ろ=180度の定数扱いにするのかなと思っていました。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 回転角度の取り扱いについて(DXライブラリ)
返信数: 9
閲覧数: 9403

Re: 回転角度の取り扱いについて(DXライブラリ)

4次元の世界の住人じゃなくてよかったですね!
もしそうなったら諦めてました。

ご指摘の内容も時々確認してみます。

ありがとでした!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 回転角度の取り扱いについて(DXライブラリ)
返信数: 9
閲覧数: 9403

Re: 回転角度の取り扱いについて(DXライブラリ)

なんということでしょう。完璧です。

本当にありがとうございました。
大きな原因としては、今までキャラの回転行列を弾の回転行列に乗算するのではなく、単純に加算していたことでした。
Perfect.png
つ:解決押し忘れです。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 回転角度の取り扱いについて(DXライブラリ)
返信数: 9
閲覧数: 9403

Re: 回転角度の取り扱いについて(DXライブラリ)

bullet.png
示したトピックでメルカトル図法という言葉が出ていましたが、
つまり上を向けば向くほど、画像のように弾の軌跡を変更しないといけないということでしょうか?
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 回転角度の取り扱いについて(DXライブラリ)
返信数: 9
閲覧数: 9403

Re: 回転角度の取り扱いについて(DXライブラリ)

行列を使ってみました。 状況は緩和されませんでした。 VECTOR Vector={0,0,1}; MATRIX Matrix=MGetIdent(); Matrix=MMult(Matrix, MGetRotX(Bullet[i].Rot.x)); Matrix=MMult(Matrix, MGetRotY(Bullet[i].Rot.y)); Matrix=MMult(Matrix, MGetRotZ(Bullet[i].Rot.z)); Vector=VTransform(Vector,Matrix); Bullet[i].NPos.x=Bullet[i].Pos.x+Bullet[i]...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 回転角度の取り扱いについて(DXライブラリ)
返信数: 9
閲覧数: 9403

Re: 回転角度の取り扱いについて(DXライブラリ)

よく考えたらそうでした。 ちょっと試行錯誤が入った計算式なので汚いかもしれません。 追記:貼りつける式をミスしました。 Bullet[i].NPos.x=Bullet[i].Pos.x+Bullet[i].Spd*sin(Bullet[i].Rot.x+1.0f/2.0f*DX_PI)*cos(1.0f/2.0f*DX_PI-Bullet[i].Rot.y); Bullet[i].NPos.y=Bullet[i].Pos.y+Bullet[i].Spd*cos(Bullet[i].Rot.x+1.0f/2.0f*DX_PI); Bullet[i].NPos.z=Bullet[i].Pos.z+...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 回転角度の取り扱いについて(DXライブラリ)
返信数: 9
閲覧数: 9403

回転角度の取り扱いについて(DXライブラリ)

c言語+DXライブラリで3次元シューティングを作っています。 まずは、こちらをご覧ください。 Fail0.png このように、キャラクタの向いている方向を軸として放射状に展開するような弾を撃ちたいのです。 垂直方向の角度がついていない場合、以上のように美しい円を描きます。 そして、真下(真上)を向いたときの射撃をしてみた画像です。 Fail1.png 全然美しくないです。 これを、どのような角度からのカメラから見ても最初の画像のような円形を描くようにしたいのですが難航しています。 弾の回転角度を計算する式は以下のようになっています。 Bullet[j].Rotは弾の向きです。 Vec2はキャラ...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 時間の取得について
返信数: 8
閲覧数: 3347

Re: 時間の取得について

ZEROXX さんが書きました: time_tにて、変数を使うことができますが、全てが連動しているため
ボタンを押した瞬間の時刻データを変数に置いておくことができない為
新たに"ボタンを押した瞬間の時刻データを変数に置いておく"用のtime_t型変数を宣言してあげればなんとかなりそうなものですけどどうなんでしょう?

C++はよくわからないので、Cの構造体で、

コード:

struct SAVEDATA {
    int Lv; // セーブ時のレベル
    time_t Time;  // セーブした時刻
};
みたいな記憶領域を作ってあげることで解決しませんか?
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 時間の取得について
返信数: 8
閲覧数: 3347

Re: 時間の取得について

インデントを揃えるというのはそうではなくて、こういうことです。 time_t t; time_t FFF; time_t GDS,SSK,GPSD; time_t time(time_t *timer); time_t ppp1,ppp2,ppp3; ・・・(この間、省略します) //時間取得 SSK=time(&t); FFF=SSK%60; SSK-=FFF; SSK=SSK/60; GDS=SSK%60; SSK-=GDS; SSK=SSK/60; GPSD=SSK%24-3; ppp1=GPSD; ppp2=GDS; ppp3=FFF; //マウスポインタの座標を取得 GetMouse...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列とポインタ
返信数: 6
閲覧数: 3441

Re: 文字列とポインタ

ポインタは難しいですからね。頑張ってください。

一件落着でしたら、解決!ボタンを押しておいてくださいね!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列とポインタ
返信数: 6
閲覧数: 3441

Re: 文字列とポインタ

tomo.xxx さんが書きました:このようにしたところ
警告: assignment makes integer from pointer without a cast
という警告が出たのですが、これは(str + i)が指すアドレスの中身にdstのアドレスを代入しようとするから警告が出るのでしょうか?
そうですね。
普通に使っていればそんなことはする必要はありませんけど、コード文法的には間違っていないので、
エラーは吐かない感じです。

それに、str+iはchar型(1byte)ですので、代入しようとするとdstのアドレス値が大きすぎて値が維持できない可能性が高いですね。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列とポインタ
返信数: 6
閲覧数: 3441

Re: 文字列とポインタ

*(str + i) = dst というのはdstのアドレスを*(str + i)に入れているのでしょうか? それともdstの中身 '-' を ' '(空白)に入れているのでしょうか? dstの中身 '-' を str+iが指すアドレスの中身にいれています。 ポインタ型として宣言された変数の代入の際には: *がついている時は、そのポインタが差すアドレスの中身に代入します。 ついていない時は、そのポインタが持つアドレス値に代入します。 宣言のときの*と、代入の時の*で混乱するかもしれませんが…。 int *a; a=3; // aは3番地を指すようになる *a=3; // aの指すアドレスの中...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 見ているモデルを中心にカメラを回転させたい(DXLib)
返信数: 45
閲覧数: 22788

Re: 見ているモデルを中心にカメラを回転させたい(DXLib)

softya(ソフト屋) さんが書きました: r 回転半径。カメラと主人公の距離の事で 500 とします。
angle 主人公の見ている方向(角度)
angle2 主人公からのカメラのいる方向(角度) つまり見ている方向であるangleの逆方向。
sin/cos三角関数。
cx 主人公とカメラのx方向の相対距離
cz 主人公とカメラのz方向の相対距離
これを全て図に書き入れて下さい。
ところで、これについてはできましたか?

【追記】
えっー!↓
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

Re: 分割コンパイル時のグローバル変数の使い方について

ありがとうございます!

やはり人によって意見が分散する話題になりますね。

現段階では私にはどちらがいいのか判断が下せませんが、そのような利点があることを頭の片隅に置いときつつ
作業を進めようと思います!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 見ているモデルを中心にカメラを回転させたい(DXLib)
返信数: 45
閲覧数: 22788

Re: 見ているモデルを中心にカメラを回転させたい(DXLib)

カメラの座標はx,zともにあらゆる値を取ります。
現在はxz平面上のみ考えるということでyは常に0になりますけどね。

【追記】
今気付いたのですが、私の描いた図だと回転方向が逆になってます。本当は時計回りなのでお間違えのないようにお願いします。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 見ているモデルを中心にカメラを回転させたい(DXLib)
返信数: 45
閲覧数: 22788

Re: 見ているモデルを中心にカメラを回転させたい(DXLib)

EIYUUさん
EIYUU さんが書きました: これは、xは、0でいいのでしょうか
どのxを指していますか?
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

Re: 分割コンパイル時のグローバル変数の使い方について

結合度的には同じってことでいいですよね?

ありがとうございます!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

Re: 分割コンパイル時のグローバル変数の使い方について

上記URLに書いてあるモジュール結合度でデータ結合になるように変更を加え続けています。
そこで疑問に思ったのですが、

コード:

Function(void){
 int GameFrame=GetGameFrame();

// 処理
}

Function(int GameFrame){

// 処理
}
上記の二つの関数はやっていることはほぼ同じなのですが、引数で渡す方法とGet関数を作って返り値で受け取るのはどちらが推奨されますか?
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

Re: 分割コンパイル時のグローバル変数の使い方について

ありがとうございます!
softya(ソフト屋) さんが書きました:変更後のやつで、とりあえず集めた感じのものが結構ありますね。
Num.cpp
Shader.cpp
Team.cpp
適切なところへまとめようと思います。
softya(ソフト屋) さんが書きました: あと、公開している構造体の多さも気になるところですね。
うまく隠蔽すると公開する構造体自体が減るはずです。
PCとか公開する必要がないんじゃないでしょうか? → データの抽象化が不十分でファイル間の結合度が高い証拠かと。
なんとかPCを隠蔽できるように試行錯誤してみます。

他のご指摘も順次対応してみようと思います!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

Re: 分割コンパイル時のグローバル変数の使い方について

お二人方の返答を参考にしながら修正してみたのですが、いかがでしょうか?

修正前と修正後のコードを添付してみます。
分割している意味がこれで出てきているのでしょうか?

もし変なところがありましたら教えて頂きたく思います。

修正内容:
extern宣言廃止
コードの分割に関して、オブジェクト指向を意識

【追記】
修正前にあたるものが修正し始めた時の中途半端なものでした。
main内がおかしいのでご了承を・・・。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 見ているモデルを中心にカメラを回転させたい(DXLib)
返信数: 45
閲覧数: 22788

Re: 見ているモデルを中心にカメラを回転させたい(DXLib)

ではヒントです。
この絵とsoftyaさんの掲示した変数要素の定義を見比べて、穴埋めをしてみてください。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

Re: 分割コンパイル時のグローバル変数の使い方について

softya(ソフト屋) さんが書きました: オブジェクトに必要な変数は出来るだけオブジェクト内のファイルスコープ変数にしてしまいます。
なるほど、とりあえずグローバル変数を消してからオブジェクトを整理するかと思ってましたが、逆なんですね。
やっぱり変ですよね。

理解しました。ありがとうございました!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

Re: 分割コンパイル時のグローバル変数の使い方について

現在、参照渡しや値渡しを駆使してグローバル変数撲滅作戦を遂行中ですが、 // プロトタイプ宣言 void GameInit(GAME *Game, MAP *Map, FONT *Font, GRAPHHANDLE *Handle, SHADER *Shader); void KeyConfigInit(KEYCON *KeyCon, KEYCON *PadCon); void PlayInit(GAME *Game, PC *Pc, CAMERA *Camera, TEAM *Team, NUM *Num, GRAPHHANDLE Handle, int PlayerID); void Pc...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

Re: 分割コンパイル時のグローバル変数の使い方について

涼雅さん

グローバル変数は使用するべきではないのですね。

なるほど、分割手法について、
Draw(描写), Control(プレイヤーやCPUの入力受付) , Move(キャラやカメラの移動), Shot(攻撃全般), Stage(フィールドの効果), Direction(演出), Main のように、行為に対して分割してしまいました。
オブジェクト思考という言葉は存じてますが、意識したことはありませんでした。

ありがとうございます!

softyaさん

ありがとうございます、参考にさせていただきます!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイル時のグローバル変数の使い方について
返信数: 14
閲覧数: 9057

分割コンパイル時のグローバル変数の使い方について

C言語でゲームを作っています。 ソースコードは複数に分割し、分割コンパイルとなっております。 main.cpp, draw.cpp, Stage.cppの3つのファイルがあるとします。 main.cppにグローバル変数として、構造体の実体が以下のように定義されています。 // 構造体実体定義 PC Pc[PCNUM]; CAMERA Camera; BULLET PcBullet[SHOTMAX]; MAP Map[MAPNUM]; GAME Game; KEYCON KeyCon,PadCon; SHADER Shader; FONT Font; DRAW Draw[DRAWMAX]; GR...
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)
返信数: 18
閲覧数: 9657

Re: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)

>冗長でメンテナンス性の悪い
そうですよね。。。

URLについてはあす以降にじっくりと拝見しようと思います。
見つけていただいてありがとうございます!

そういうの、リファレンスにどんどん乗せて欲しいところですが…w
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)
返信数: 18
閲覧数: 9657

Re: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)

すごい細かいことですが…、
先ほどの12,13ブレンドだと、上下動モーションの比率の差が出る影響で、上下動の幅にぶれが生じて変に見えてしまうかもしれません。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)
返信数: 18
閲覧数: 9657

Re: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)

softyaさん

検証の結果、12,13ブレンドでうまくいくことが確認できました!
長時間の検証にお付き合いいただき本当にありがとうございました。

次は行列ですか。 行列かぁ…。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドプロンプトで遊ぶポーカー
返信数: 9
閲覧数: 6656

Re: コマンドプロンプトで遊ぶポーカー

例えば、上記のコードだと、どのカードを交換するか入力させるところありますよね?
そのあたりに、もしPLAYER1だったら今まで通り入力を促し、PLAYER2だったらランダムにcの値を決めるようなif文を追加する方法があります。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: モーションを再生したい!(DxLib)
返信数: 6
閲覧数: 3972

Re: モーションを再生したい!(DxLib)

そのエラーの直接的な回答になるか分かりませんが、

PlayTime+=100.0f;

って進めすぎではないですか?
totaltimeを一瞬で上回って、Playtime=0;になっている可能性があります。

PlayTime+=1.0f;

位にしておきましょう。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドプロンプトで遊ぶポーカー
返信数: 9
閲覧数: 6656

Re: コマンドプロンプトで遊ぶポーカー

もし何も分からないのであれば、
いっそのこと、全部ランダムに行動するCPUをまず作ってみませんか?

初期段階として、配られたカード1枚1枚に対して残すか残さないかの2択をランダムに選択するCPUをば!
賢くするのはそれからでも良いと思います。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)
返信数: 18
閲覧数: 9657

Re: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)

梨樹さん

ありがとうございます!
実は行列を使った回転、移動、拡大縮小をやったことがないので、少し手間取りそうです。

softyaさん

その件については、まだ検証できていませんが、後ほど検証させていただきます。
結果は失敗した場合のみ動画でアップします。

>アニメーションを適用したモデルに、首のフレームからMV1GetFrameLocalWorldMatrixでマトリクス得て、これを回転、再びMV1SetFrameUserLocalMatrixでセットするで行けるかもしれません。
上記の通り行列になじみはありませんが、余力があれば検証してみます!
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の課題です
返信数: 2
閲覧数: 1708

Re: C言語の課題です

・二次元配列の中身は何か

コード:

int t[] [2] = { {101, 49},{102, 39},{201, 15},{301, 50},{0, 0} };
101,102,201,301が商品コード、49,39,15,50がそれぞれの価格になると思います。

・商品コードと価格をこちらで登録するのか
上記の通り、すでに登録された状態ですので、このデータを使って処理を行うことになります。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドプロンプトで遊ぶポーカー
返信数: 9
閲覧数: 6656

Re: コマンドプロンプトで遊ぶポーカー

とりあえず、エラーで動かないのは、
tehuda2の初期化し忘れです。

コード:

    for( i = 0; i<5; i++ ){
        tehuda1[i] = -1;
        tehuda2[i] = -1;
    }
とすれば動作します。

しかし、CPUの思考等は入ってないですね。
そちらを実装しましょう。CPUの実装の流れはどうですか?分からないところがあれば具体的にお願いします。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)
返信数: 18
閲覧数: 9657

Re: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)

返答ありがとうございます。

こちらでさらに検証したところ、
上下動のモーションは歪みに影響はないことが分かりました。

首の回転について、例えば、
x軸回転: 4.5度
y軸回転: 80度
z軸回転: 7.8度

x軸回転: 5.3度
y軸回転: -80度
z軸回転: 6.2度

のように、y軸回転以外の角度が微妙に違うと変形を起こしてしまうようです。
これを、
x軸回転: 0度
y軸回転: 80度
z軸回転: 0度

x軸回転: 0度
y軸回転: -80度
z軸回転: 0度
とすると、上下移動があってもうまく回ります。

つまり、複数軸の回転が重なるとおかしくなるような気がします。
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドプロンプトで遊ぶポーカー
返信数: 9
閲覧数: 6656

Re: コマンドプロンプトで遊ぶポーカー

具体的にはどのようなエラーが出ますか?

ヘッダファイルも貼ってくださるとこちらも検証できます。

とりあえず、226行目とかおかしくはないですか?
by Priest
12年前
フォーラム: C言語何でも質問掲示板
トピック: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)
返信数: 18
閲覧数: 9657

Re: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)

顔以外をデフォルト位置にして、顔を90度と-90度に傾けたものを用意しアニメーションさせると、右向きと左向きが交互に出ました。

そして、それぞれを45度,-45度にしてみたところ!
首が回りました!

【追記】
しかし、元のデータでうまくいかなかった原因はなんでしょうか?
回転以外のパラメータが変に影響してしまうのでしょうか。
そういった意味では、この実装は厳しそうですか?

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