検索結果 75 件

by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: 上と左右の当たり判定がおかしいです。
返信数: 3
閲覧数: 589

Re: 上と左右の当たり判定がおかしいです。

よかったねー!
バグなんてそんなものですよ。
是非、世界をあっと言わせるようなゲームを作って下さいね。
そしてそれを見た人がまた凄いの作ると思いたいですね。
お互いがんばりましょう!
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

原因が分かって良かったですね。
がんばって下さい。
一つ気に掛かった事なのですが、
CPUがプログラムを追っていく様を気にした方がいいように思えます。
ゲームの1ループがどう流れているのかとか、そういうのを気にしたほうがいいと思っています。
1/60秒の間のことです。
あきらめないでくださいね。
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

>コードを分離したら効率よく左右の当たり判定ができました
まずはusaoさんに「ありがとうございます」と言ってはいかがですか?
これは大切なことですよ。

>ジャンプができない上に地面に少し埋まりこんでから「着地しました。」と出ます。
ジャンプしてないのになぜ地面に埋まりこむのでしょう?

いえいえ、そこではありませんね。
ジャンプのプログラムの前に、
上に移動して、ぶつかったら止まる、
下に移動して、ぶつかったら止まる、をやってみてはどうでしょう?
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

だいぶ良くなってきたようですね!
おかしな部分がある時、簡略化は必須ですよ。
usaoさんの言う右だけ左だけのルーチンにすると分かってくるかもです。
頭の理論でずーっと考えてないで、なんでもすぐにやってみる!
僕はそれが一番良かったです。
トライアンドエラーを何百回何千回と繰り返しました。
きっとできる。なんでも、そういうことだと思います。
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

わー、たくさんの方に助けられて良かったね。
がんばって下さい!
応援していますよ。
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

ごめんなさい。
もう、返事は来ないと思っていたんですよ。
keito940さん、ほんとにやる気ですか?
その道は険しいですよ。
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

>内部処理上では落下したままなので
内部処理上で、衝突判定をして下さい。
ようやく見えてきましたね。

内部処理上と公開されているプログラムが別になっているのは好ましくありません。
今あなたが制作しているプログラムは一旦棚上げして、
四角い部屋にキャラクターを置き、右に移動させ、壁に当たったら、止まる。
こんなプログラムをいちから作ってみてはいかがでしょう?
それを、今回のプログラムに生かすのです。
どうでしょうか?
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

//キーが押される前の座標
SaveX = PlayerX;
SaveY = PlayerY;

if(MoveChecker() == 衝突している){
以下移動ルーチンには行かずreturn;
}

//左に移動
if ((Input&PAD_INPUT_LEFT) != 0) {

としたら、どうでしょうか?

すみませんがMoveChecker内などは自分で変更してね。
また、分かりやすくするために、
右方向だけのプログラムに変更してみてください。
衝突したら「衝突した!」と画面に出して下さい。
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

//キーが押される前の座標
SaveX = PlayerX;
SaveY = PlayerY;

ここにMoveCheckerを入れて動くようにしたらいいのではないですか?

//左に移動
if ((Input&PAD_INPUT_LEFT) != 0) {

間違っていたらごめんなさいね。
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

僕の場合ですが、
描画してから衝突を調査してはいけませんよ。
描画する前に仮想座標で衝突を調査して大丈夫なら描画します。

例えばキーで移動する場合、
キーが押される前にxyz座標をold_keyに確保します。ここでは衝突していませんね。
キーが押されたら移動先xyz座標を仮想座標として衝突調査を行います。
衝突していたら、old_keyに戻して描画します。
xだけが衝突していてもxyz全てを戻すことが必要です。

一旦衝突させたままにしてしまうと、衝突していない座標を探すのが難しくなります。
by cattail
3年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが壁にハマってしまう
返信数: 75
閲覧数: 8847

Re: キャラが壁にハマってしまう

「めり込んでいない時の位置」をリアルタイムで保存しておくといいですよ。
めり込んだら、その位置に戻すだけでいいです。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: メッシュの面数の取得について
返信数: 9
閲覧数: 1084

Re: メッシュの面数の取得について

とりあえず、pAllocのことは置いておきまして、 D3DXLoadMeshHierarchyFromXで6番目の引数に&pThing->pFrameRootがあるので、 pFrameRootの奥の方に何かあるのかなと思って調べたら、構造体の奥にpMeshがありました。 それで以下のようにしてみましたが、同じく止まってしまいました。 いけるかなと思ったんですがダメでした。 もう少しやってみます。 D3DXLoadMeshHierarchyFromX(szXFileName, D3DXMESH_MANAGED, pDevice, &cHierarchy, NULL, &pThing->pFram...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: メッシュの面数の取得について
返信数: 9
閲覧数: 1084

Re: メッシュの面数の取得について

>へにっくす さん
何度もすみません、ありがとうございます。
リンクして頂いたページをじっくり読んでみたいと思います。
また夜中に目が覚めてピコーンと思い当たるフシがあったので、
上記ページと合わせながらこれから試してみます。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: メッシュの面数の取得について
返信数: 9
閲覧数: 1084

Re: メッシュの面数の取得について

>へにっくす さん ご返事ありがとうございます。 アニメーションメッシュ、スキンメッシュをロードするときはInitThing1関数を呼びだし、 それ以外をロードするときはInitThing2関数を呼び出しています。 今は、アニメーションメッシュなどの面数を取得したいのでInitThing1関数でロードしています。 また、アニメしないメッシュではInitThing2関数でロードし、こちらは面数は取れています。(ちょっと怪しいけど) キャラが歩くアニメのメッシュにシャドウボリュームで影を付けたいというのが目的なので、 InitThing1関数でロードしています。 色々やりましたが、ちょっと今は出来...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: メッシュの面数の取得について
返信数: 9
閲覧数: 1084

Re: メッシュの面数の取得について

えーと、 自分でも何が知りたいのかが段々分かってきました。 わーお、今さらですか、みたいな感じです。 上で、 >pAlloc ID3DXAllocateHierarchy はユーザーが実装しないといけないということなので、 >実装できたらメッシュ情報も取得できるようになるのでしょうか? と書きましたが、既にスキンメッシュは表示されていますので、実装はできていると思われます。 ほとんどコピペではありますが、各コンテナは実装されているようです。 そこで、自分の知りたいことは、そこからどうやってメッシュ情報を取り出すか、です。 本からコピペした以下のコードがあります。 //メッシュコンテナーを作成す...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: メッシュの面数の取得について
返信数: 9
閲覧数: 1084

Re: メッシュの面数の取得について

ネットを調べてみると、 D3DXLoadMeshHierarchyFromXの4つ目の引数 pAlloc が何かあるのかなと思います。 pAlloc ID3DXAllocateHierarchy はユーザーが実装しないといけないということなので、 実装できたらメッシュ情報も取得できるようになるのでしょうか? 引き続き調べます。 ただ、僕にはやたら難しく分からないまま読んでいる感じです。 //インスタンス MY_HIERARCHY cHierarchy; //xfile読み込み D3DXLoadMeshHierarchyFromX(szXFileName, D3DXMESH_MANAGED, p...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: メッシュの面数の取得について
返信数: 9
閲覧数: 1084

Re: メッシュの面数の取得について

>へにっくすさん
ご返事ありがとうございます!
コンパイルは通っていたのですが。
さっそく直してみましたら止まらなくなりました。
初歩的なことみたいですみませんでした。恥ずかしい!
ただ、メッシュが表示されていて、面数が0と表示されましたので、
pThing->pMesh は NULL だと思われます。
D3DXLoadMeshHierarchyFromXを使用した場合は、
pMeshに情報を入れるというか、メッシュ情報を取得する方法はあるのでしょうか?
これから少し調べてみます。
ちょっと先が見えてきたような気もするのでがんばります。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: メッシュの面数の取得について
返信数: 9
閲覧数: 1084

メッシュの面数の取得について

こんにちは、cattailです。 いつも教えて下さいましてありがとうございます。 また少し教えて頂きたいことがあります。 鎌田茂雄氏著のGAMECODINGとか逆引き大全500とかをコピペしながら勉強しています。 メッシュを表示したり、移動させたりできて、自分では出来てる感があったのですが、 やっぱりコピペ主体なもので理解できない部分が多々あります。 移動させるメッシュに丸い影を付けていたのですが、シャドウボリュームでやってみようと思っています。 メッシュの面数を取得したいのですが止まってしまいます。 レンダリングの最後の方の、 DWORD mensu = Thing[0].pMesh->Ge...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 1828

Re: デバイスロストを故意に起こす方法

やったやったーーー!キター!
yuni さん!
ISLeさん!
ありがとう!
やった!よかった!
フォントの開放でした。
めちゃめちゃ、ずーっと時間が掛かっていたので自分にはできないと思っていました。
でも、お二方と皆様のおかげで直せました。
あのブログの方もありがとうございます!
飛び上がって喜んでいます!
ほんとにありがとうございました!

でもまた教えて頂く時があると思います。
その時はよろしくおねがいします!
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 1828

Re: デバイスロストを故意に起こす方法

ISLeさん、ご返事ありがとうございます。 D3DERR_INVALIDCALLは、 HRESULT hr = pDevice->Reset( &d3dpp ); で、hrに入ってきました。 フルスクリーン切り替えを自分でやってみたのですが、 うまくいかなかったもので、Direct3Dのサンプルプログラムを探してみようと思います。 あと、yuniさんがおっしゃっていた、 D3DPOOL_DEFAULTで作成した全てのバッファですが、 スプライト作成時に20枚分で使用したのみで他は使っていないのでそこではないような気がします。 それで、ネットを見ていましたらフォントの開放をしていないと、 Res...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 1828

Re: デバイスロストを故意に起こす方法

なかなかデバイスロストが起こらないので四苦八苦しています。
やっと、エラー戻り値を確認できました。(深夜に起きた模様)

D3DERR_INVALIDCALL

です。
どういうことでしょうか? わからないです。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 1828

Re: デバイスロストを故意に起こす方法

ISLeさん、お久しぶりです!
お返事頂きありがとうございます。

実のところMSのHPを読んでもなかなか理解できなくて困っていたのです。
それは前の件でも一緒なので分かって頂けるとは思います…。
噛み砕いて説明して頂きありがたいです。

>IDirect3DDevice9::Resetが直ちに成功するとは限らないし
>解放処理に問題があればIDirect3DDevice9::Resetは成功しないので
>IDirect3DDevice9::Resetを何回か試行して成功するなら、問題はないはず。
わかりました。
開放処理を見直して、
再試行できるようにプログラムを変えて再挑戦してみます。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 1828

Re: デバイスロストを故意に起こす方法

yuniさん、ご返事ありがとうございます。 コードの説明不足でしたのでもう一度コードを載せました。 >D3DPOOL_DEFAULT で作成したすべてのバッファを解放しない限り、かならず失敗します。 ということですので、作成した全てを開放していないということになるのでしょうか? やっているとは思いますが、もしかすると見落としがあるかもしれません。 見直してみたいと思います。 //レンダリング終了 及び デバイス消失への対応 if(pDevice->Present( NULL, NULL, NULL, NULL )==D3DERR_DEVICELOST) {    //ここにスプライト、xfil...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 1828

Re: デバイスロストを故意に起こす方法

すみません。 あれから色々やってまして、 デバイスロストを起こす方法ではなくて、 デバイスロストの処理についてお聞きしたいことが出てきまして、 教えて頂けたらと思います。 デバイスロストが発生して、 リストアが可能な状態を確認して、 Resetするのですが、ResetからD3D_OKが返らず、 そのまま、色々なデータを再読み込みしましたが、そのまま復帰して正常に動作しています。 Resetって何をしているのでしょうか? d3dppをリセットしないと何か問題ありますでしょうか? //デバイスは消失しているがリストア可能状態 if(pDevice->TestCooperativeLevel() =...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 1828

Re: デバイスロストを故意に起こす方法

また3時間ぶりにデバイスロスト発生しました!
でも、リリースまでいくのですがその後が行きません。
色々考えてる案はあるのですが、なかなか試せなくて進まないのです!
全画面切り替えやったら必ず起こるのでしょうか?
やってみるしかないかな?
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 1828

デバイスロストを故意に起こす方法

こんにちわ。cattailです。 また教えて頂きたいことがあるのです。 デバイスロストからの復帰プログラムを作っています。 Microsoft Visual C++ 2008 DirectX9 Windowモード専用 です。 if(pDevice->Present( NULL, NULL, NULL, NULL )==D3DERR_DEVICELOST) { //ここにReleaseとRecoverを書いています。 } なかなかデバイスロストが起こらずトライアンドエラーが効率よくできません。 他のアプリを起動したり、IEを起動したり、ウィルスチェッカーを起動したりしますがデバイスロストは起こり...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

みけCATさん、
何度も何度もすみませんでした!
書いて頂いたコードでやってみます!

普段から簡潔なコードを心がけていないので、「あ、そうか」の連発で。
自分もそういうふうにコードを書いていきたいと思います。
ただ、ちょっと頭が付いていかないので限界もあるかもしれないです。

今作っているゲームにfloatの演算がたくさんあるので直すのが大変です!

皆様、ありがとうございました!
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

みけCATさん、
色々書いて頂いてすみません。

コード:

DWORD test = 0;
float b = 0;
 
b = test / 1000.0f; //testはミリ秒で1加算される変数
if(test >= 999999){
    test = 0;
}
書いて頂いた上のコードでは、加算される変数自体をDWORDで持って処理するということでしょうか?

それからまさに000.000にしたいので、test = 0;のあとにb = 0;として
実際に処理に使用するfloat変数をbにすればいいということでしょうか?
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

みけCATさん、
ありがとうございます!

int32_tをVS8では使えないのでしょうか?
DWORDで以下のようにしたらどうでしょうか?

コード:

DWORD a = 0;
float b = 0;

b = test;   //testはミリ秒で0.001加算される変数
b = b * 1000;
a = DWORD(b)


if(a >= 999999){
     test = 0.0f;
}
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

なんか混乱して停滞中です。

>1000倍した16384.0fは
>16384000ですので、
>12345678と8桁あります。
ということは、

if(test >= 16384.0f){
     test = 0.0f;
}

の16384.0も16384.000まで使用しているので有効ケタではないということでしょうか?
つまり、
0に+0.001をする有効ケタは、0.0から999.999までの最大6ケタで、

if(test >= 999.999f){
     test = 0.0f;
}

とすれば安心でしょうか?
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

softya(ソフト屋)さん、
おはようございます!
色々ありがとうございます!

>それで十分です。常に1000倍で表示だけ工夫すればよいでしょう。
>ただ、どこまで上限値が行くのかで64bit整数が必要になるかもしれません。
やってみる前から、すごく自信が出てきました!
これからやってみます!
後ほど報告させていただきますね。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

softya(ソフト屋) さん、
教えて頂きありがとうございます!
以下、間違っていると恥ずかしいですが笑わないでー。

>10進数では約7桁とアバウトになります。
7桁以上が表現できないからということでしょうか?

>有効桁を超えるので利用できません。
1000倍してintにして計算の時だけ比較する、のかな?

算数が不得意なのです。
明日、実際にやってみたいと思います。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

softya(ソフト屋)さん、
YuOさん、
ご返事頂いてありがとうございます!
浮動小数点の有効桁とか、浮動小数点の特有の誤差とか全然知りませんでした。
今ネットで検索して調べてみたのですが、本当の値と近似値とか難しくてまるでわかりませんでした。
大変恐れ入りますが、
+ 0.001f;
を誤差扱いで加算できなくならないようにするにはどうすればいいのでしょうか?
または、
if(test >= 16384.0f){
     test = 0.0f;
}
とやっても誤差内なのでしょうか?
申し訳ありませんが教えていただけないでしょうか?
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

どうも解決したみたいです!
ありがとうございました!
float型の上限が32768.000?なのか16384.000?なのかわかりませんが、
if(test >= 16384.0f){
     test = 0.0f;
}
でオーバーフロー?しないで動いています。
ちょっと懐疑的なところもありますが、解決とさせていただきます。
ありがとうございました。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

オーバーフローを起こした場合、値は無限大(infinity)になるというのは、
最大値で止まるということなのでしょうか?
メッシュをアニメーションさせているのですが、25分くらいでアニメが高速になり、50分くらいで止まってしまいます。
32768.000で止まる前に16384.000のときが25分のときとすると合ってるのかな?
符号付きだとそうなるのでしょうか?
if(test >= 16384.0f){
     test = 0.0f;
}
として実験中です。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

Re: float型のオーバーフローについて

超初級者さんご返事ありがとうございます。
お恥ずかしいことなのですが、
約10^38秒という意味が理解できないのです。
すごく長~い時間は桁あふれなんてしないということでしょうか?
ゲームで何時間かプレイしても大丈夫くらいでしょうか。

あ、今テスト中のプログラムが32768.000で止まりました!
これって、オーバーフローしてますか?
僕のプログラムの他の部分が悪いのかなあ?
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: float型のオーバーフローについて
返信数: 18
閲覧数: 5520

float型のオーバーフローについて

お久しぶりです。cattailです。
また少し教えて頂きたいことがあります。
float型のオーバーフローのことなのですが、

float test = 0.0f;

として、ミリ秒間隔で、

test = test + 0.001f;

としています。
オーバーフローを起こした場合、値は無限大(infinity)になるというのをネットで見つけたのですが、よくわかりません。
testのオーバーフローを検出するプログラムはどう書けばいいのでしょうか?
よろしくお願い致します。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 滑らかな画面スクロール(ゲームプログラミング)
返信数: 29
閲覧数: 16071

Re: 滑らかな画面スクロール(ゲームプログラミング)

こんばんわ!
滑らかなスクロール以前に、
①と②があるなら、
それができるようにやってみるといいです。
それが出来たら滑らかなスクロールをやってみる。
自分は一つ一つやっていったほうが分かりやすかったです。
だって、色々やると、何が何だか分からなくなりますしね。

僕なんかベーシックで同じコードを何度もコピーしまくって作ったゲームが
雑誌に載ってこの道です!
今でも勉強しまくりです。
お互いがんばりましょう。
ゲーム、いいよね。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 各国版のWindowsでの英数表示について
返信数: 8
閲覧数: 1197

Re: 各国版のWindowsでの英数表示について

サンプルプログラムまで用意して頂いて恐縮です。
色々試しながら作っていきたいと思います。
ありがとうございました!
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 各国版のWindowsでの英数表示について
返信数: 8
閲覧数: 1197

Re: 各国版のWindowsでの英数表示について

とりあえずArial + ANSI_CHARSETでやってみています。
これで解決とさせて頂きます。
ありがとうございました!
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 滑らかな画面スクロール(ゲームプログラミング)
返信数: 29
閲覧数: 16071

Re: 滑らかな画面スクロール(ゲームプログラミング)

入力に関わらず所定の時間間隔で描画すると、
RPGだとすると、海辺の波とか、川面とか滝、そう主人公の足踏みとか、動かせるよ。
リアルタイムで飛んでいくミサイルなんかをやってみるとメッチャ興奮します!
割り込みでなくても、ループでもいいですよね!
うーん!プログラムって楽しい!
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 各国版のWindowsでの英数表示について
返信数: 8
閲覧数: 1197

Re: 各国版のWindowsでの英数表示について

ご返事ありがとうございます。
参考にさせて頂きます。

全ての国の言語に対応できませんので、
共通語の英語で間に合わせたいです。
save、load、yes、noなど、簡単な単語が文字化けしなければいいかなと思っています。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 各国版のWindowsでの英数表示について
返信数: 8
閲覧数: 1197

Re: 各国版のWindowsでの英数表示について

ご返事ありがとうございます。
英字1byte文字はANSI_CHARSETかDEFAULT_CHARSETがいいようなので、
とりあえずANSI_CHARSETでやってみます。
GDIでCharSet不一致は最大のペナルティというのも全然知りませんでした。
でも、やってみるのはいいのですが、確認の方法が今は無いのです。
英語版Windows買って試してみようかな?
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 滑らかな画面スクロール(ゲームプログラミング)
返信数: 29
閲覧数: 16071

Re: 滑らかな画面スクロール(ゲームプログラミング)

win32APIで2DスクロールRPGを作ったことがあります。
キー入力は、タイマー割り込みの中で、
if(GetAsyncKeyState('W') & 0x8000){return 0;}
のようにしていました。
特に引っかかりはありませんでしたよ。
でも、タイマー割り込みの中なので注意は必要です。
このRPGはクリア時間20時間以上でしたが、特に問題はありませんでした。
GetAsyncKeyStateがwin32APIとして認められるなら、
問題は解決と思います。
是非、試してみて!
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 各国版のWindowsでの英数表示について
返信数: 8
閲覧数: 1197

Re: 各国版のWindowsでの英数表示について

ネットで調べているのですが、
Tahoma、Microsoft Sans Serif、Arialであれば大丈夫というネット上での記述を見つけましたが、
Unicode、マルチバイト、どちらのコンパイルでも大丈夫なのでしょうか?
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 各国版のWindowsでの英数表示について
返信数: 8
閲覧数: 1197

各国版のWindowsでの英数表示について

いつもお世話になっております。 また教えて頂きたいのですが、 directxで以下のように半角英数のテキスト表示したとき、英語版windowsなどの各国版のwindowsでも正常に表示されるものでしょうか? よろしくお願い致します。 D3DXCreateFont(pDevice,16,16,FW_REGULAR,NULL,FALSE,SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS,PROOF_QUALITY,FIXED_PITCH | FF_MODERN, "arial", &pFont ); char co[20]; sprintf_s(co,"ABCDEFG012...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の圧縮について
返信数: 12
閲覧数: 1843

Re: 配列の圧縮について

0 0 1 0 4
0 0 2 0 3
0 0 0 0 0
0 0 0 0 5
0 0 0 0 0

を圧縮する方法として
例えば、横方向に、

00104
00203
\05
\045
\05

になるようにすれば
圧縮率は低いですが損失が0でカンタンです。
また、縦に圧縮するともう少し良くなります。
この場合、ですけども。

全然ダメですね、ごめんなさい。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

ISLe()さん、ご返事いただきありがとうございます。
モデルの作り方から考え直していきたいと思います。
今使っているスキンメッシュじゃない大きなデータを表示させて実験してみようとも思っています。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

MicrosoftのMView.exeで例のスキンメッシュを表示してみました。
すると5秒間隔くらいで92FPSと55FPSの間を行ったり来たりします。
どうやらデータの作りに問題があることが濃厚です。

データを作り直して(どこが悪いかわかりませんが)FPS表示及びFPS速度が落ちても
同じように動作できるようになりましたらご報告します。
ありがとうございました!
とくにISLe()さん、色々ご教授いただきありがとうございました!
ISLe()さんのブログはお気に入りにしてFPS部分の再作成の時にじっくりと参考にさせていただきます。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

とりあえずメッセージループは以下のようにしてみました。 ゲームは同じように動いています。 //ゲームループ while ( TRUE ) { //メッセージをCALLBACK関数に送る if ( PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) ) { if ( !GetMessage(&msg, NULL, 0, 0) ) break; TranslateMessage(&msg); DispatchMessage(&msg); } else { //ゲームのメインループを呼び出す///////////////////// game_loop(); ///...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

ISLe()さん、細かい所まで教えて頂いて恐縮です。
windowsloop…てへへ、僕の造語ですね。
色々と直すところはありますが、
まずは、game_loop();をメッセージループから呼び出すことをやってみます。
単純にメッセージループの中に置けばいいのでしょうか?
Direct3Dチュートリアルのサンプルコードを見てきます。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

割り込み内での描画とその他移動などの処理を全てwindowsloop内に移し、 割り込み内ではアニメーション時間の進行のみを行うようにしました。 コードを簡略化して載せました。 windowモードで動いています。 メッシュが多くなると38FPS~15FPSを行ったり来たりして、 メッシュの少ない時は60FPSで動いていますが、たぶんココでも遅延してると思います。 やはり描画の遅延は相変わらずです。 描画のどこで遅延が発生しているのか調べていますがわかりません。 デバッガにそういう機能はあるのでしょうか? LRESULT CALLBACK WndProc(HWND hWnd, UINT msg,...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

分かり難くてすみません。
ドライバなのかさえ自分でもわかっていませんが、
MCIを使わない低水準な方法でMIDIを再生する、みたいなHPで見て作りました。
楽器の発音とか消音もプログラムでやるので1000回の割り込みは必要らしいです。

描画のどの部分が遅延してるのかさえわかりません。
コアな所は本とかネットから集めて自分なりに合成してるので、
理解していない部分も多いんですよね。
再起呼び出しに重複みたいのがあってそこに遅延する要因があるような気がするのですが、
頭がこんがらがってピョーンって感じです。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

FPS制御についての過去ログをご紹介して下さってありがとうございます。
よく読んで参考にしたいと思います。
ありがとうございます。

秒間1000回の割り込みについてですが、
以前、MIDI演奏のプログラムを書いていまして、
その時、秒間1000回の割り込みをかけてリアルタイムにデータを取得し発音させてその楽器名称、音階を表示していたのです。
FPSや描画には関係ありませんが、機能をそのまま受け継ぎたかったというのがあったのですが、
今回のゲーム制作には使わない機能なので無くしていこうと考えてます。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

ISLe()さん、何度もすみません。
1000回割り込みと割り込み内描画は考え直します。
自分の勝手な思い込みでやってしまっていました。

その他色々教えてくださってありがたいです。
Aeroテーマとかクラシックテーマとか、まるで知らないので調べてから、
対処したいです。でも、できるかどうかかなり怪しいのですが…。
同じところをやり過ぎて少々イヤになっているところです。

少しでも解決しましたらご報告いたします。
ありがとうございました。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

ISLe()さん、お返事を頂いてありがとうございます。 割り込み中の描画ですが、命令の順序以外では問題が起こる可能性はありますでしょうか? 今は秒間1000回の割り込み中に描画するのは最大60回になっています。 FPS60の時は15回(ほぼ)空で回して1回描画を繰り返す、というようにしています。こういうのはダメでしょうか? グラフィックボードの垂直同期を切って原因を探すということでしょうか? 恥ずかしながらあんまり理解できていないのですが、 垂直同期に合わせて描画しないといけないのでしょうか? 今はそういうことを全然やっていません。 上記「FPS60の時は15回空で回して1回描画を繰り返す」の...
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

とりあえず低い値15FPS+3前後を基準とすることで速くなったり遅くなったりはしなくなりました。
これでいいのかどうかはわかりません。
質問の説明がおおまか過ぎて、日記になってしまいました。すみません。
でもここに書いているうちに、何か今回のように別の考えが出てきたりして良かったです。
ありがとうございました。またよろしくお願いします。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Re: Direct3Dで描画が不安定になります

色々いじっていますが未だに解決していません。
もしかすると遅いPCの方がIntel HD Graphicsなので、
そもそも15FPSの能力しか発揮できないのかもしれません。
一番低い値を設定して動かすようにすればいいのかなと思っています。
それだと何だか自分の勘違いというか認識不足というかお恥ずかしいです…。
でも、ちょっとそれでやってみます。
by cattail
4年前
フォーラム: C言語何でも質問掲示板
トピック: Direct3Dで描画が不安定になります
返信数: 20
閲覧数: 2278

Direct3Dで描画が不安定になります

ごぶさたしています。またよろしくお願いします。 Direct3Dを使用してマップに人物を表示しています。 少しデータが大きくなっています。 timeSetEventを使用して秒間1000回の割り込みをかけてその中で描画していて、 FPSが落ちたら描画をスキップして描画回数を合わせるようにしています。 早いPCで60FPSほど出ている時は問題なかったのですが、 遅いPCで試すと最初は35FPSほどで動いているのですが、 画面を動かしていないのに、30秒から60秒くらいすると15FPSと35FPSを行ったり来たりするようになり安定しません。 timeSetEventの割り込み回数を減らしてみたり、...
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の暗号化について
返信数: 4
閲覧数: 1437

Re: 画像の暗号化について

DXライブラリにその機能があるのか分かりませんのではっきりしたことは言えませんが、
無いのであれば作るのも楽しいですよ。
カンタンな暗号化はファイルの読み書きができればすぐに試せますよ。
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の暗号化について
返信数: 4
閲覧数: 1437

Re: 画像の暗号化について

ファイルをxor_bufに読み込みdwBytesにサイズが入ったとしたら、

コード:

int i = 0;
while(i < (dwBytes / 4)){
xor_buf[i] = xor_buf[i] ^ 12345;
i = i + 1;
}
のような感じにすれば、バッファの中は暗号化されると思います。
暗号は12345です。任意で決めます。
ファイルをセーブするときに拡張子を.nezなどにすれば元のファイルも残ります。
解凍して使うときはもう一度12345でXORすれば元に戻って使えると思います。
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラに向かせた方向を維持させたい
返信数: 5
閲覧数: 861

Re: キャラに向かせた方向を維持させたい

softya(ソフト屋)さん、ありがとうございます。 座標差分でなんとかうまくいきました! fHeadingがfloatだったので、atan2fというのを使いました。 atan2f(y,x)ということだったのでatan2f(z,x)かなと思ってやっていましたが、 向きがおかしくて、atan2f(x,z)としたらうまくいきました! ここに気付くまで少し時間が掛かってしまいましたが、 やったーという感じです! ありがとうございました! この方法だと、キャラが一気にくるっと回らずに違和感無くゆっくり回すこともできるので これから挑戦してみたいと思います。 また分からないことがあったら教えて下さい! ...
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラに向かせた方向を維持させたい
返信数: 5
閲覧数: 861

Re: キャラに向かせた方向を維持させたい

softya(ソフト屋)さん、ご返事ありがとうございます。
atanという関数があるなんて知りませんでした。
XZ平面限定ですので試してみたいと思います。
でも数学が苦手なので先に三角関数を調べてみます。
atan2でXとYを渡せばいいのでしょうか?
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラに向かせた方向を維持させたい
返信数: 5
閲覧数: 861

Re: キャラに向かせた方向を維持させたい

色々調べているのですが、
もしかするとワールド行列から回転ベクトルを取り出すことは
できないのでしょうか?
そうすると、D3DXMatrixLookAtLHを使わず、
例えば、360度にレイを発射して衝突したらその角度をfHeadingに入れればいいのでしょうか?
試してみようと思います。
キャラに幅がある分少しずれてしまうかな?
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラに向かせた方向を維持させたい
返信数: 5
閲覧数: 861

キャラに向かせた方向を維持させたい

いつも教えて頂いてありがとうございます。 またお聞きしたいことがあります。 よろしくお願いします。 「GAMECODING(鎌田茂雄著)」という本を見ながら勉強しています。 キャラ1とキャラ2を表示して、キーを押したらキャラ1がキャラ2の方向を向く、 というプログラムです。 キャラはどちらも任意のキーで回転させられるようにしました。 D3DXMatrixRotationY(&pThing->matRotation,pThing->fHeading); fHeadingの値を変化させて回転させられています。 別の任意のキーが押され続けているときに、キャラ1がキャラ2の方向を向くように、 D3DX...
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++音げー制作にあたって
返信数: 9
閲覧数: 2547

Re: C++音げー制作にあたって

離されたときは、やはりだめですよね。ごめんなさい。 プログラムが正常に動くのを確かめるということでは、 作り手さんがまず安心できると思ったものですから。 if(CheckHitKey(KEY_INPUT_S) == 1 && soundnow == 0) { PlaySoundMem(sound_1,DX_PLAYTYPE_BACK); soundnow = 1; } とすれば一回だけは正常になりますよね。 PlaySoundで鳴り終っている事がcallbackかなんかで確認できるのでしたら、 そこで、 soundnow = 0; とすればいいのかな。 それでも音が重複して鳴らせるようになって...
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++音げー制作にあたって
返信数: 9
閲覧数: 2547

Re: C++音げー制作にあたって

キーが離されたら音を鳴らすようにすれば、とりあえず早く確認できると思います。

また、ちょっと工夫がいりますが、キーが押されたら音を鳴らして、
離されていないなら、次の音を鳴らさないようにすればいいのではないでしょうか。
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラの髪の毛を半透明にしたい
返信数: 5
閲覧数: 1693

Re: キャラの髪の毛を半透明にしたい

前髪も透明にできて顔が見えるようになりました!
あとはモノの前後関係ですがこれは作っていくうちに少しづつやっていきます。
これで解決とさせて頂きます。
本当にありがとうございました!
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラの髪の毛を半透明にしたい
返信数: 5
閲覧数: 1693

Re: キャラの髪の毛を半透明にしたい

慌ててお礼を忘れてしまいました。
助かりました、ありがとうございます!
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラの髪の毛を半透明にしたい
返信数: 5
閲覧数: 1693

Re: キャラの髪の毛を半透明にしたい

とりあえず透明になりました!
背景ポリゴンとキャラポリゴンのレンダリングの順番を変えただけで
髪の毛の透明は確認できました!
モノの前後関係やキャラの前髪を透明にしたら顔が見えるかとかはやっていませんが、
色々試してみます。
良かったです。何とか抜け出せそうです!
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラの髪の毛を半透明にしたい
返信数: 5
閲覧数: 1693

Re: キャラの髪の毛を半透明にしたい

ご返事ありがとうございます。
リンク先のページを拝見させて頂きました。
確かに「Zバッファの関係」のような気がします。
大変そうなのですぐには結果を出せないかもしれませんが、
今はキャラを最初にレンダリングしていますので、
背景ポリゴンを先にレンダリングさせてみます。
少しでも改善されましたら報告します。
ありがとうございます。
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: キャラの髪の毛を半透明にしたい
返信数: 5
閲覧数: 1693

キャラの髪の毛を半透明にしたい

DirectX10でキャラを表示し、 テクスチャーのアルファチャンネルを使って 髪の毛を半透明にしようとがんばっているのですが、 透明にしようとしている部分が白くなってしまいます。 いろいろやってもダメだったので、 同じように1枚の正方形ポリゴンで木の葉を作って葉の形のテクスチャーにすると透明になりました。 そこで、髪の毛の部分が白く塗られているのではなくて透明になっいて背景色が見えているのではと思い、 背景色を青に変えたら透明にする部分が青くなりました。 たぶんですが、透明になってはいるけど、キャラやキャラの後ろの背景のポリゴンが透過してしてしまっているように感じます。 木の葉の方は透明にな...
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: D3DXCreateTextureFromFileExについて
返信数: 3
閲覧数: 935

Re: D3DXCreateTextureFromFileExについて

自己解決しました。
大変お騒がせいたしました。
一週間以上も悩んでいたのですが、恥ずかしながら自分のプログラムのバグでした。
テクスチャを読み込む時はレンダリングしないようにしていたのですが、
現在レンダリング中のときはレンダリングを終わるのを待って読み込む、というのを見落としていて
フリーズしていたようです。
ここに書き込むことで冷静になれました。感謝です。
ご返事くださった方ありがとうございました。
がんばって作っていきます。
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: D3DXCreateTextureFromFileExについて
返信数: 3
閲覧数: 935

Re: D3DXCreateTextureFromFileExについて

ご返事ありがとうございます。 以下のようなソースになっています。 //初期化のとき if (pTexture[1] != NULL){pTexture[1]->Release();}//テクチャーのリリース if(D3DXCreateTextureFromFileEx(pDevice,"test1.jpg",160,160,0,0,D3DFMT_UNKNOWN,//「テクスチャオブジェクト」の作成 D3DPOOL_DEFAULT,D3DX_FILTER_NONE,D3DX_DEFAULT,0x000000ff,NULL,NULL,&pTexture[1]) != D3D_OK){ //エラー処...
by cattail
5年前
フォーラム: C言語何でも質問掲示板
トピック: D3DXCreateTextureFromFileExについて
返信数: 3
閲覧数: 935

D3DXCreateTextureFromFileExについて

はじめましてcattailと申します。 スプライトでノベルゲーム制作中です。よろしくお願いいたします。 D3DXCreateTextureFromFileExについてなのですが、 DirectXの初期化直後にテクスチャを読み込んで絵を表示できているのですが、 ゲーム中に別の画像をD3DXCreateTextureFromFileExで読み込むとフリーズしてしまいます。 D3D_OKが返っているのでエラーは出ていないと思います。 最初に全部読んでおくとうまくいくのですが沢山絵を使うとメモリが大変になってしまうので 一枚づつリリースして読み込み直して、というのをやりたいのです。 レンダリング中に読...

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