検索結果 2636 件

by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 本格的なrpg マップ処理。
返信数: 86
閲覧数: 27380

Re: 本格的なrpg マップ処理。

マップチェンジ後に発生するイベントというのを用意してそこで各種パラメータを設定すれば、すべてイベントシステムに集約できると思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 本格的なrpg マップ処理。
返信数: 86
閲覧数: 27380

Re: 本格的なrpg マップ処理。

仮にドラクエのルーラのような魔法で家にワープしたら、次に家から出たとき、どこに出現するのでしょう。 普通にその家へと移動す為のイベントがある位置の一歩手前になります。 家は、イベント1なら1の家、2なら2の家に移動という風にするつもりで、 例えば2の家にワープしてその家から出たら、2のイベントの一歩手前に移動させます。 例が悪かったですね。 ある場所からワープすると入れる家があって、扉は出ることだけができるとしたら、家に入るイベントの場所は存在しないわけですが、その場合はどうなりますか? 家に入るイベントと家を出るイベントを完全に分けてしまえば良いと思うのですが。 関連付けてどんどん積み重ね...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の画像を左右に回転させる方法について
返信数: 14
閲覧数: 5251

Re: 敵の画像を左右に回転させる方法について

gsDraw2DPartExも検索するとバイドゥの質問サイトが引っ掛かりますが詳しい使い方までは分かりませんね。

転送先・転送元の順らしいことが分かります。
gsColor値は即値よりGSARGBマクロで求めるほうが良いのかもしれません。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: アクションパートとイベントパートの機能の分離についての考え方
返信数: 5
閲覧数: 2917

Re: アクションパートとイベントパートの機能の分離についての考え方

プレイヤにとっては、魔法で回復するのもアイテムで回復するのも同じ回復だということですね。

例えば属性付き魔法攻撃とか属性の相性とか耐性とか調べて…なんて処理をプレイヤが抱え込むとあっという間に複雑怪奇なコードになります。
属性、状態、ダメージ/回復、等を分解して並列に置くことで構造をシンプルに保てます。

アルゴリズムを外部に出すことによる拡張性向上もメリットです。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 本格的なrpg マップ処理。
返信数: 86
閲覧数: 27380

Re: 本格的なrpg マップ処理。

そもそもどうして家に入る前の位置が必要なのでしょう。
扉から出たら扉の前に立たせれば良いのでは。
家から出たときに最初に立っている位置は固定で良く、その位置はフィールドに配置した家が知っているはずの情報で、フィールド上のオブジェクト同士で連携する必要はないと思います。

仮にドラクエのルーラのような魔法で家にワープしたら、次に家から出たとき、どこに出現するのでしょう。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 多重インクルード防止
返信数: 3
閲覧数: 2090

Re: 多重インクルード防止

C言語は、(ヘッダファイルとの対比としての意味で)ソースファイルごとにコンパイルします。

多重インクルード防止は、ひとつのソースファイルをコンパイルするときに、ヘッダファイルが繰り返し展開されるのを防ぐ仕組みです。
ひとつのソースファイルをコンパイルするとき、その都度、必要なヘッダファイルはインクルードされなければいけません。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: メンバ関数ポインタにメンバ関数のアドレスを代入したい
返信数: 7
閲覧数: 3994

Re: メンバ関数ポインタにメンバ関数のアドレスを代入したい

弾幕シューティングが代表するような大量にキャラが発生・消滅を繰り返すゲームプログラムでは、メモリ割り当てによる速度低下が問題になるというのはわりと有名なテーマですね。 ゲームの場合、メンバの各塊を共用体でメモリ確保しておいて、Strategyパターンを使って処理するのが最適ではないかと思います。 メンバへのアクセスは面倒臭くなりますが。 ちなみにnew演算子をオーバーライドして事前に確保しておいたメモリに割り当てるようにすれば、new演算子やクラスとしての使い勝手そのままに、メモリ割り当てのコストだけを削減することもできます。 『メモリプール』のキーワードでネット検索するといろんなサンプルや情...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: C言語初心者です。どうがご教授お願いします。
返信数: 12
閲覧数: 4555

Re: C言語初心者です。どうがご教授お願いします。

こういうときこそC++/CLIを利用するべきではないのでしょうかね。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ステージをきれいに縦スクロールさせるには
返信数: 17
閲覧数: 7313

Re: ステージをきれいに縦スクロールさせるには

すみません。
件のコードは、副作用が単発なので問題ないですね。
勘違いでした。

問題になるのは以下のような場合でした。
void func(int a, int b);
int i = 0;
func(i+=5, i+=10);
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: このコードの意味を教えてください。
返信数: 11
閲覧数: 4889

Re: このコードの意味を教えてください。

継承によってIObserver<T>の性質を持つクラスObserver<T>を定義している、というふうに書いていたなら問題なかったでしょう。

「継承」と「性質を持つ」の両方を揃えないと、「性質を持つ」が「継承」に関する説明だということが曖昧になります。
意味が分かっているかどうかということではなくて、組み立て方や伝え方の問題です。

いきなり何を言い出すの、と他人に混乱を与えるような行動は、知識だけでは改善しません。
知識だけが先行するとむしろ悪化する場合があります。
プログラミングで言えば設計が上手いか下手かに関わってくる部分だと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ステージをきれいに縦スクロールさせるには
返信数: 17
閲覧数: 7313

Re: ステージをきれいに縦スクロールさせるには

No.6の投稿にあるコードの39行目 gsDraw2D( sStage1, 0, Stage1Y+=5); 呼び出されるgsDraw2D関数に、Stage1Yに5を加える前の値が渡るか、Stage1Yに5を加えた後の値が渡るか、分かりません。 Stage1Yに5を加える前の値が渡るかもしれないし、Stage1Yに5を加えた後の値が渡るかもしれません。 Stage1Yに5を加えた後の値が渡る場合は、39行目に対して40行目のgsDraw2D関数のY座標のオフセットは-680になります。 Stage1Yに5を加える前の値が渡る場合は、39行目に対して40行目のgsDraw2D関数のY座標のオフセッ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 子クラスの、親クラスのメンバ参照について
返信数: 5
閲覧数: 18999

Re: 子クラスの、親クラスのメンバ参照について

ちなみにJavaだと内部クラス(インナークラス:inner class)は外側とインスタンスで結び付くのでフイさんの思った通りのことができます。
外側と定義で結び付くクラスは、入れ子クラス(ネストクラス:nested class)と呼ばれ区別されます。
内部クラスも入れ子クラスの一形態ですけど。

C++も『内部クラス』ではなく『入れ子クラス』と言語規格には書かれています。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: インクルードのエラーについて
返信数: 28
閲覧数: 11284

Re: インクルードのエラーについて

ptolemy2 さんが書きました:エラー→ >main.cpp:4:39: error: Poco\Net\POP3ClientSession.h: No such file or directory
これってVC++のコンパイルエラーではないですね。

PSPSDKでビルド用のインクルードパスはmakefileを書き換えて設定する必要があるみたいです。
もしかすると環境変数INCLUDEに設定するだけで良いかもしれません。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: インクルードのエラーについて
返信数: 28
閲覧数: 11284

Re: インクルードのエラーについて

パスとは、ファイルシステム上の位置を示す文字列のことです。

特定のファイルを示すパスは、そのファイルのファイル名も含みます。
質問にある「インクルードしたいパス」は「インクルードしたいヘッダファイルのパス」と容易に読み替えられる気がします。

ファイルやフォルダの名前に、前後に空白を含む名前や、空白のみの名前は使えないので、設定内容が導入以前の問題です。

Vista以降なら、エクスプローラで右クリックから『パスとしてコピー』でフルパスをクリップボードにコピーできます。

(訂正)
『パスとしてコピー』はシフトキーを押したまま右クリックで表示するメニューにあります。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: アクションパートとイベントパートの機能の分離についての考え方
返信数: 5
閲覧数: 2917

Re: アクションパートとイベントパートの機能の分離についての考え方

わたしは、ネカさんが「アクションパート」とおっしゃる部分でもキャラの移動やエンカウント、ダメージなどすべてイベントとして実装します。
そうすれば「イベントパート」はシナリオデータを元に自動操縦するモジュールを動的に挟むだけです。

プレイヤはHPを憶えておくだけでHPを減らすかどうかは外部から制御するといったふうにするのが理想ですね。
そういった設計の話はこの掲示板で過去に何度か話題になってます。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: このコードの意味を教えてください。
返信数: 11
閲覧数: 4889

Re: このコードの意味を教えてください。

デザインパターンに見られるようにオブジェクトの性質を引き継ぐ方法は継承に限りません。 なので、性質を持つ=継承、とはならないのです。 解釈とか実装とか関係ないレベルの話です。 できるだけ他人に通じるように言葉を選びましょう、という話ですね。 継承と委譲の両方を知っていたら、ひとくくりに「性質を持つ」で表現しても大して変わらないなんてことは言えないと思います。 自分が知らないことを他人にとっても必要ないことのように置き換えてしまう(勝手な解釈をする)のはとても危険なことです。 実装継承は主にフレームワークレベルでよく使われているように思います。 つまりアプリケーションプログラマには見えないところ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: FPS制御で指定したFPS+1になる
返信数: 5
閲覧数: 3052

Re: FPS制御で指定したFPS+1になる

わたしが使っているのはこんなコードです。 #ブログで公開しているものをアレンジしました。 メリットは、フレーム数単位で最大遅延をコントロールできることと、何フレームすっ飛ばしたか戻り値で分かることです。 描画をスキップして動的にフレームレートを変化させたりする際のヒントにできます。 int adjustFPS(void) { static long long prevTime=getNowTimeUs(); static int frameCount=0; long long nowTime; long long timeDiff; if(fpslimit<=0)return 0; nowTi...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: エクスプローラのファイル検索
返信数: 8
閲覧数: 3195

Re: エクスプローラのファイル検索

すみません。勘違いですね。
プロジェクト上でどんなフォルダを作って分類していたか分からなくなった、ということですね。

VC++6ってフォルダという名前でフィルタが作られてましたっけ。

いまのVC++はフィルタとフォルダが区別されていて表示を切り替えて使います。
フォルダを作ると本当にファイルシステム上にフォルダが作られるのですよね。

フィルタはプロジェクトの情報なので元のプロジェクトを開いて確認するしかないですね。
分からなくなってからでは手遅れです。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: エクスプローラのファイル検索
返信数: 8
閲覧数: 3195

Re: エクスプローラのファイル検索

ソースファイルのプロパティにパスが表示されませんか。
VC++6だとプロパティダイアログだったかもしれません。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の開発環境を整えたいのですが、迷子に・・・
返信数: 10
閲覧数: 3735

Re: C言語の開発環境を整えたいのですが、迷子に・・・

せっかくなので、Eclipseの情報も。

MergeDoc Project
こちらのサイトでは日本語化も含めた一式の形で配布されています。
開発対象に合ったアーカイブを適当な場所に展開すれば、すぐに使えるようになっています。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ステージをきれいに縦スクロールさせるには
返信数: 17
閲覧数: 7313

Re: ステージをきれいに縦スクロールさせるには

39行目が未規定の動作を含むので、隙間が空くかもしれないし空かないかもしれないですね。
そもそもどうしてここで座標を更新しているのかという疑問もありますが。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: バイト数について
返信数: 4
閲覧数: 2796

Re: バイト数について

考え無しかどうかは分かりませんが、10KBという数値を切りが良いと思ったのでしょう。

ところでそこのページは、警告を無理矢理抑えこむなど危険な行為が目立ちます。
はっきり言ってコードだけでなくいろいろととても危険なので注意してください。

言語処理系が用意している正式な方法を使って、同じものを安全に実装できます。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: カメラの向いている方向にカメラを移動させたい
返信数: 15
閲覧数: 6772

Re: カメラの向いている方向にカメラを移動させたい

平行移動成分を使わないのは、MATRIXを弄るより、VTransformの代わりにVTransformSRを使ったほうが計算量が減るような気がします。 roteteを使った場合のコード書いてみました。 せっかくなので式をまとめて計算量を減らしました。 // ☆ float vx = 0.0f; float vy = 0.0f; float vz = 0.0f; if (keystate[KEY_INPUT_A]) vx = -MOVE_AMOUNT; if (keystate[KEY_INPUT_D]) vx = MOVE_AMOUNT; if (keystate[KEY_INPUT_W]) ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: timeBeginPeriodについて
返信数: 11
閲覧数: 10842

Re: timeBeginPeriodについて

sqlさんの作ったプログラムでtimeBeginPeriodを使っていれば、他のプログラムにも影響します。 DXライブラリを使ったプログラムを起動すると、同時に動いているすべてのプログラムに影響します。 timeBeginPeriod(2)とやったらSleep(1)でも2ミリ秒戻ってこない、というものではありません。 timeBeginPeriodは最低限欲しい精度を設定するもので、それより高い精度で動作する可能性もあります。 Sleepは、最短で指定した時間に戻るもので、それより遅く戻る可能性もあります。 ちなみに設定可能な精度を調べることはできますが、現在の精度を調べることはできません。 ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 他のソースファイルの操作関数を扱いたい
返信数: 31
閲覧数: 9471

Re: 他のソースファイルの操作関数を扱いたい

え、ですから可変長引数とはもっと別の問題だと思ったので、設計の仕方からおかしい事は自覚してましたよ 何がおかしいのです? 結局、可変長引数にしろってことですか? ソースコードはありがとうございます。 これは return の形で値を返したりできないのでしょうか? 最後の一文が何も分かってないことを顕著に表していますね。 そもそもこんな処理を書いてはいけないのですよ。 「改竄を気にするひとが書くコードではない」というのは全否定しているということだと分からないですか? C/C++の勉強からひととおりやり直してください。 掲示板のアドバイスで改善するレベルを遥かに超えています。 そもそも日本語がま...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: mallocを使うタイミング
返信数: 19
閲覧数: 6805

Re: mallocを使うタイミング

改ざんという言葉の意味が分かっていらっしゃらないようですね。 家の警備を警備会社と契約しても、窓も鍵も開けっ放しで家を空けた隙に泥棒に入られた場合、警備会社は保障してくれないと思いますけど。 課金ゲームの話も、運営は、使った形跡がある、という返事をしてきたのではないでしょうか。 『あなたのPCが』ハッキングされたことが原因だったら、大手だろうが個人だろうが保障しませんよ。 セキュリティ以前に契約についても勉強する必要があるのではないでしょうかね。 このままゲームの運営なんてしたら、チートやハックなんてなくても簡単に破産しますよ。 日本語が通じないようなのでこれ以降のやり取りは遠慮させていただき...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 低性能PCはプログラミングに向かない?
返信数: 10
閲覧数: 4116

Re: 低性能PCはプログラミングに向かない?

IE10ということは少なくともVista以降ですよね。
Vista以降が動くメモリ4GBのPCは低性能なのでしょうかね。
プログラミングには十分な性能だと思いますが。

古いPCのOSをアップグレードしたということも考えられますが、そういった情報はないですし。

不具合を放置するひとは、PCの性能以前に性格がプログラミングに向いていないと思います。

自分のやりたいことややっていることを母国語できちんと説明できるようになると、プログラミングの上達もはやくなりますよ。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: timeBeginPeriodについて
返信数: 11
閲覧数: 10842

Re: timeBeginPeriodについて

ふつうはプログラムの最初のほうで設定して最後のほうで解除すると思います。 ※1か※2かというのは、C_GameWindowクラスにとってtimeBeginPeriodが重要かどうかで決まるのではないでしょうか。 と言っても、そもそもDxLib_Init関数を呼んだ時点で精度が1ミリ秒に設定されるはずで自前でやる意味がありません。 Sleepは絶対に使ってはいけないというものではありません。 新・ゲームプログラミングの館にも以下のように書かれています。 FPS制御以外の部分で 、Wait、Sleep系関数が含まれていたらその設計は間違いです。 ※下線は加筆 ScreenFlip関数はモニタのリフ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerのエフェクトが描画できない・・・
返信数: 4
閲覧数: 3045

Re: Effekseerのエフェクトが描画できない・・・

こちらに書いてある内容を参考に変換行列を設定するコードを追加してみてください。
http://seesaawiki.jp/w/boxer_programmer ... 4%A4%A4%C6
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerのエフェクトが描画できない・・・
返信数: 4
閲覧数: 3045

Re: Effekseerのエフェクトが描画できない・・・

Effekseerに関係するコードはこれがすべてですか?

Effekseerに対して変換行列を設定する必要があるらしいのですが、該当するコードはあるのでしょうか。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: Debug実行時は問題なくRelease実行時にエラー
返信数: 8
閲覧数: 4911

Re: Debug実行時は問題なくRelease実行時にエラー

デバッグビルドだと、不正なアクセスを検出しやすいように、初期値のない変数が特定の値で埋められたり、メモリが連続しないようにあいだをあけて配置されたりします。

そういうのを検出するツールがあります。
たいてい高価なものですが。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: タスクバーに表示されるアプリ(自分)のメニューから"ウインドを閉じる"をグレーアウトする方法はありますか?
返信数: 2
閲覧数: 1815

Re: タスクバーに表示されるアプリ(自分)のメニューから"ウインドを閉じる"をグレーアウトする方法はありますか?

コード:

/* hWnd 対象のウィンドウハンドル */
HMENU hMenu = GetSystemMenu(hWnd, 0);
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);  /* 無効化 */
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_ENABLED); /* 有効化 */
ウィンドウメニューの『閉じる(C)』項目およびウィンドウを閉じるボタンは上記でコントロールできます。

しかしジャンプリストの『ウィンドウを閉じる』を無効化することはできないようです。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: Debug実行時は問題なくRelease実行時にエラー
返信数: 8
閲覧数: 4911

Re: Debug実行時は問題なくRelease実行時にエラー

EKISUKE さんが書きました:この部分で0を割っていました。
s32(signed int) i = 0からfor文を開始していたためでした。
0『で』割ることは問題ですが、0『を』割ることは何の問題もありません。

問題は15行目でf[-1]に書き込んでいることですね。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 学校での宿題でコードはかけたのですが正しく動作しません!ご教授をば・・・・
返信数: 51
閲覧数: 16885

Re: 学校での宿題でコードはかけたのですが正しく動作しません!ご教授をば・・・・

アルゴリズム云々以前に、
・各要素を32ビット値(を持つ変数)に書き込む関数あるいはマクロ
・32ビット値(を持つ変数)から各要素を読み出す関数あるいはマクロ
を作って使うようにしたら、このプログラムのしていることがもっと分かりやすくなるのではないでしょうか。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: Effekseerを使おうと思ったのですが
返信数: 2
閲覧数: 1231

Re: Effekseerを使おうと思ったのですが

バージョン0.60で名前空間名の変更があったようです。
https://sites.google.com/site/effekseer/

35行目(とたぶん89行目も)の
EffekseerRenderer

EffekseerRendererDX9
に変更すれば良いのではないかと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタの操作でつまづきました
返信数: 14
閲覧数: 5642

Re: ポインタの操作でつまづきました

単純にひどいコードなので、このまま終わるとそれは本のせいかもという疑惑が残ります。

むしろusaoさんの指摘に賛成です。
せめて見た目だけでもきちんとして欲しい。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタの操作でつまづきました
返信数: 14
閲覧数: 5642

Re: ポインタの操作でつまづきました

本(の著作者)の名誉を傷付けるのはフォーラムルール違反ではないかと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

遅いのが自分のせいではないということを証明できれば良いということなら、現状を受け入れるだけで済みます。 darwBitmapが遅い端末もあるでしょう。 このプログラムが高速に動く端末なりエミュレータなりを使いましょう。 いろいろ試されたそうですが、こちらの提案がどのように実験されてどのような結果になったのか、GC_FOR_ALLOCは解消したのか、具体的なところはさっぱり分かりません。 こちらから見たら何もなされていないのと同じですから新たに申し上げることは特にありません。 darwBitmapを単発で呼び出して遅いのであればJNIを使っても遅いはずです。 Google Playで公開されてい...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: メニュー画面の作り方 (C++編)について
返信数: 2
閲覧数: 1855

Re: メニュー画面の作り方 (C++編)について

(BaseScene*) は mScene が BaseScene* 型で new Menu(this) がMenu* 型なので キャストしている(アップキャストなのでなくてもいい) アップキャストなのでなくてもいい、というか書いてはいけないと思います。 元記事はアップキャストを明示する目的で書いたのかもしれませんが、そのような思考の過程をコードに持ち込むのは良くないと思います。 仮に基底クラスを別の名前のものに差し替える場合、変更する手間が増えるだけです。 this は SceneMgr のポインタだけど Menu(ISceneChanger* changer); と Menu のコンスト...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 素材を一つの実行ファイルの中にまとめるのって
返信数: 5
閲覧数: 2911

Re: 素材を一つの実行ファイルの中にまとめるのって

一個のファイルにまとめるだけなら、コマンドプロンプトで copy /b a.bin+b.bin+c.bin archived.bin とかすれば結合できます。 ファイルの先頭からの開始位置はズレるのでfseek関数等を使って読み取り開始位置を移動させてから読み込みます。 結合してしまえば、既にファイル名を必要としません。 各データに対するファイル先頭からのオフセット値を結合ファイルの先頭に付加しておけば連番でアクセスできます。 圧縮したいときは結合する前に個々のファイルを圧縮します。 zlibを使えばふつうにファイルから読み込むのと同じように使えます。 ライセンスもとても緩いです。 検索すれば...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 本格的なrpg マップ処理。
返信数: 86
閲覧数: 27380

Re: 本格的なrpg マップ処理。

こちらのトピックが参考になるのではありませんか?
同じ二次元配列を複数つくる
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

Bitmapの描画しかしていないのなら描画部分のパーセンテージが高くて当たり前なのでは?
むしろ何もしていないはずの他の部分に2割以上掛かっていることのほうが気になりますが。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作のプログラムを起動することによるOSのフリーズについて
返信数: 4
閲覧数: 2194

Re: 自作のプログラムを起動することによるOSのフリーズについて

ウィンドウが点滅するとかエクスプローラーの名前変更が解除されてしまうというのは、ユーザー操作なしにアクティブなウィンドウが変更されるためですね。 コンピュータウイルス等のマルウェアに感染しているかもしれませんね。 また、ウイルス対策ソフトがマルウェアと判定しないソフトウェアにもPCに負荷を掛けるものが数多く存在します。 フリーソフトウェア等とバンドルされていて気付かずに一緒にインストールしてしまうといったことがあるかもしれません。 セキュリティを専門に扱っているサイトだと、専用のプログラムで出力したプロセスの一覧などのテキストを貼り付けるとアドバイスしてくれる掲示板があったりします。 あるいは...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲーム ステージについて
返信数: 8
閲覧数: 4433

Re: シューティングゲーム ステージについて

みなさんはどのように作られているのでしょうか。 ステージを管理する関数は作りますが、コード上でまとめるためではありません。 実行時におけるオブジェクトのライフサイクルを制御するためのものです。 キャラはステージに依存せず、出現や消滅はイベントとして実装します。 敵キャラが、プレイヤーに倒されて消滅するのも、ステージの終わりに強制的に消滅するのも、同じ消滅です。 強制的に消滅させなければステージが変わってもずっと画面の中を動き続ける、そんなふうに作ります。 関数内で関数を呼び出すというのはスコープ?というものを使うらしく、こっちのほうが複雑になってしまう気もします。 上に書いた実装をするには、...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: cocos2d-xでアニメーションStopについて
返信数: 1
閲覧数: 2500

Re: cocos2d-xでアニメーションStopについて

変数は、それが宣言されたブロックの終わりまでが有効な範囲です。 34行目で宣言されたsprite変数は、49行目までが有効範囲です。 なので55行目では使えません。 解決方法としては前のトピックと同様で、メンバ変数にしてください。 C/C++の基本事項なので、入門書等で基礎をしっかり勉強されたほうが良いかと思います。 ついでに先回りしておきますが、countはボタンが押されたときにしかカウントされません。 アニメーションは、ユーザー操作とは無関係に、設定した時間間隔で並行して再生されるはずです。 アニメーションの生成は、GameSceneクラスの初期化処理で行いましょう。 ボタンが押されたとき...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: マウス操作の選択画面
返信数: 14
閲覧数: 5320

Re: マウス操作の選択画面

わたしならこういう実装をするというサンプルを書いてみました。 元のプログラムから一部の動作・仕様を変更しています。 #include "DxLib.h" #include <string> #include <vector> class Menu; class MenuItem { friend Menu; std::string caption; int x, y; int state; public: enum { STATE_NORMAL, STATE_ACTIVE, STATE_PRESSED, }; MenuItem(int x, int y, const char *caption...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 本格的なrpg マップ処理。
返信数: 86
閲覧数: 27380

Re: 本格的なrpg マップ処理。

とりあえずh*wを動的に扱う方法を勉強するなりアドバイスを受けるなりするのが良いのではないでしょうかね。

マップデータをプログラム内に固定で持たず、大きさの異なるマップ間を移動する処理を考えてみてください。

その際マップの中身はプログラムで適当に生成すれば良いかと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: マウス操作の選択画面
返信数: 14
閲覧数: 5320

Re: マウス操作の選択画面

わたしなら、MenuクラスはMenuElementのコントロールを行うクラスにすると思います。

MenuElementを回す処理はイテレータを用いれば、(テンプレートで)配列でもvectorでも同様に扱えるし、newだのポインタだの気にしないで済ませることも可能かと。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

少し疑問が思い浮かんだのですがJavaのGCはnew句で生成したインスタンスのみに作用するのでしょうか? ゲームの設計として、最初にしかnewしていなくて、触らなければ一切newされないように作っています。 自分で生成する以外にもライブラリなどが生成したオブジェクトも対象になります。 オブジェクト型変数は参照を保持しているだけなので変数の存在自体は影響ありません。 どこからも参照されなくなったオブジェクトが定期的に回収されます。 自分が書いたコードでなくてもどこかで大量にnewしているということなので、対策が必要です。 (追記) 通常のヒープメモリの回収であれば、GC_CONCURRENTと...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 7820

Re: マップデータにおける動く足場などのギミックの扱い

イマダニ さんが書きました:やっぱりスクリプトってRPG寄りなんですね。
念のためですが、トピックの主旨がマップということなので、それに関連した用途が話題に出ているというだけですよ。

AIとか、あらゆるジャンルで有効な使い方もたくさんあります。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

03-09 19:01:21.184: D/dalvikvm(1012): GC_FOR_ALLOC freed 2047K, 41% free 12938K/21763K, paused 29ms 03-09 19:01:31.906: D/dalvikvm(960): GC_FOR_ALLOC freed 2047K, 41% free 12977K/21763K, paused 18ms 03-09 19:01:41.189: D/dalvikvm(8985): GC_FOR_ALLOC freed 2048K, 41% free 12945K/21763K, paused 73ms ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

実機を持っていないのでエミュレータで検証してみたのですが、描画による速度低下は特にありませんでした。 環境固有の問題でしょうか。 画像サイズを小さくする 転送先矩形を指定して描画する public void drawBitmap (Bitmap bitmap, Rect src, Rect dst, Paint paint) 以上を変化があるかどうか試してみてください。 それで変わらなければわたしにはもう手の打ちようがありません。 画像の変形が重要であればOpenGL(GLSurfaceView)の使用を検討してください。 余談ですが、画像サイズがあまりに大きいと思いました。 最近のスマホ事情...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: cocos2d-xでカウンター(カウントアップ)
返信数: 4
閲覧数: 3341

Re: cocos2d-xでカウンター(カウントアップ)

コピペミスかシグネチャが消えてますが、showCounterLabelメンバ関数の中では、 CCLabelTTF* m_countLabel = ~ と宣言してますね。 これをメンバ変数にして欲しいのですが。 つまり int m_countLabel; ではなく CCLabelTTF* m_countLabel; です。 showCounterLabelメンバ関数の中は、 CCLabelTTF* m_countLabel = ~ を m_countLabel = ~ に変更してください。 以上でコメントアウトしているコードのコンパイルエラーが解消するはずです。 showCounterLabel...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: BorlandC++ Compiler 5.5 でのDLL呼び出しでのエラー
返信数: 3
閲覧数: 1939

Re: BorlandC++ Compiler 5.5 でのDLL呼び出しでのエラー

HolyWings さんが書きました:デバッガに表示されているアセンブラコードを見てみると
"fdivr QWORD PTR [ebp-0x8]"
このコードで止まっているので0除算だと思います。
[ebp-0x8]というアドレスはスタックフレームでしょう。
何らかの理由でスタックが破壊されて、浮動小数点数として正しくない値にアクセスしている可能性はないでしょうか。

そもそもBorland C++ Compiler 5.5はいまとなってはC++の規格に対する準拠度が非常に低いので、浮動小数点数演算に対する扱い等が異なる可能性もあります。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: VC++2008EによるOSのフリーズについて
返信数: 4
閲覧数: 2557

Re: VC++2008EによるOSのフリーズについて

とりあえずアンチウイルスソフトあたりを疑ってみるもの良いかもしれません。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の中央値を求めるアルゴリズムについて
返信数: 17
閲覧数: 32869

Re: C言語の中央値を求めるアルゴリズムについて

質問者さんは、この手順で中央値が求まることの証明が欲しいということなのでしょう。

コードを読むのに非常に邪魔な欲求ですし、関数原型だけが公開されていれば何の疑問も持たずに使うのでしょうけど。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: cocos2d-xでカウンター(カウントアップ)
返信数: 4
閲覧数: 3341

Re: cocos2d-xでカウンター(カウントアップ)

cocos2d-x は使ったことがなく、ネットで調べて想像で書いてます。 まず、ラベルテキストを変更するのにCCLabelTTFオブジェクトへのポインタが必要なので、showCounterLabelメンバ関数のpCount 一時変数をメンバ変数に変更してください。 もっと適切な名前に変更したほうが良いでしょう。 m_countを加算したあとに以下のコードを追加すればラベルのテキストが変化すると思います。 CCString* levelString = CCString::createWithFormat("Count %03d", m_count); pCount->setString(lev...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

板野 さんが書きました:①の画像リソースの格納方法と呼び出しはHashMapかMapを使用して格納しています。
手元にソースコードが無いのでうろ覚えですが、こんな感じです。
それだと検索を2回行っているのが無駄ですね。
その部分は関係ないかもしれませんが、細かい無駄が積み重なるとガベージコレクションに響いてくるので注意すべきかと。

画像イメージの自動拡縮は回避されているのでしょうか。

うろ覚えですが、描画先領域を指定するメソッドのほうが速いと聞いたような気もします。


可能であれば、現象を確認できる最小構成のプロジェクト一式を提示していただけると良いのですが。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 同じ二次元配列を複数つくる
返信数: 21
閲覧数: 7739

Re: 同じ二次元配列を複数つくる

建てたばかりの初期の家のデータ、追加した家具等、家具を配置した家のデータ、これらをすべて同じ配列で扱う必要がありません。

追加した家具は、家具の種類と位置の一覧であれば良い。

家に入ったとき、作業用の領域に、初期の家のデータをコピー、その家の家具の一覧から家具を配置、という処理を行えば、作業用の領域に、家具を配置した家のデータ、が完成します。

家ごとに覚えておく必要があるのも、追加した家具の情報だけです。


つい最近、ゼルダの伝説の迷宮に関連して同じような投稿をしたトピックがあります。
あちらも概念の説明だけでしたが。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ソースコードエラーについて、アドバイスを下さい。
返信数: 9
閲覧数: 4587

Re: ソースコードエラーについて、アドバイスを下さい。

ご厚意に甘えて、配列が欲しいところでは配列として関数原型を宣言したほうが意図を明確にできるというメリットはないでしょうか。 わたしは実装に沿うよりも設計の意図を伝えるほうが重要である気がします。 私もそう思います。ただ、あーてぃさんはそのようなセマンティクスのレベルで迷われているのではなく、シンタックスのレベルでご質問されています。そのため型をより意識して頂けるように冗長な書き方をご紹介しました。 ただ、C言語で(シンタックス上の)「配列」は渡せないわけですから意識せざるを得ません。敢えて隠す必要はなく、そのことを理解した上でご自身の分かりやすいように書けるようになって頂くのがこの掲示板の趣...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ソースコードエラーについて、アドバイスを下さい。
返信数: 9
閲覧数: 4587

Re: ソースコードエラーについて、アドバイスを下さい。

別に気には障っていません。 申し訳ございませんでした。もしよろしければ後学のためにご教授お願いします。私の理解では関数にシンタックス上の配列を渡すには、配列へのポインタ〔C++では参照の方が便利だと思います〕を渡すしかないと思っておりました。 void func(int (*ary)[4]) { // *aryは配列 int i; for(i = 0; i < 4; ++i) { cout << (*ary)[i] << endl; } } この宣言ではサイズを渡しているのでしょうか。 C言語では警告止まりですし。 より汎用的とおっしゃっていますが、この宣言に変えることで、直後にあなたが提案さ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: android開発
返信数: 12
閲覧数: 3825

Re: android開発

最初から問題になるのは、マルチタッチとかモーションセンサなどのユーザーインターフェース部分ですね。

実機を個人で用意するのには限界がありますから、一般公開目指すなら、どのみち臨機応変に想像力で個別対応するスキルは必須です。


わたしは、スマホだとAndroid開発環境を興味本位でいじってるだけですが、PS2やガラケーの仕事で実機に一度も触れること無く制作したことがあります。
制作中だけでなくリリースされたあとも含めて実機で動いているのを見たことがないタイトルがいくつもあります。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

板野 さんが書きました:①の時点でBitmapの変数を置いてるので、そのせいかもしれません。
返り値を直接渡したほうがいいですか?
それはまったく関係ないでしょう。


②の行を追加した途端に重くなるということは、②の行をコメントアウトするだけで軽くなるということですか?

Bitmapを1枚描画するかしないかだけでそんなに変わるはずはないと思うのですが。

gameManager.getFont()の中身は問題ないのでしょうか。

画像リソースのプロジェクトへの格納方法や読み出し部分のコードも気になるところですが。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのプログラムの流れ
返信数: 5
閲覧数: 2258

Re: DXライブラリのプログラムの流れ

むしろ@が表示されないようなコーディングをしてしまうほうが危険だと思いますけど。

カーソルを動かしているあいだその制御ループから抜けないということでしょう?
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ソースコードエラーについて、アドバイスを下さい。
返信数: 9
閲覧数: 4587

Re: ソースコードエラーについて、アドバイスを下さい。

ところで double Average(double stu[]){ の部分ですが、C言語では関数の引数として宣言した「配列」は「ポインタ」に置換されてしまいます! double Average(double* stu){ となってしまいます。誤解のないようにこのように宣言すると分かりやすいと思います。この際stuは配列ではありません。もはやポインタとなってしまっています。 ところで&stu[0]ですが、C言語では配列変数stuを適切な位置でポインタに変換してくれます。今回の場合は、Average関数にstuをそのまま渡した場合、stu自体はポインタではなく配列ですが、C言語さんのご厚意によ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: wordの改行について
返信数: 17
閲覧数: 4109

Re: wordの改行について

PrintWhatYouLike.comを利用すると、必要な部分だけを抜き出し行間を詰めたりしたものをPDFやHTMLに出力できるのですが、件のサイトのページはマークアップが腐っていてせっかくの便利ツールがまともに使えませんでした。

ワードで改行がおかしくなるのも腐ったマークアップのせいですね。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム開発におけるスクリプトの扱いについて
返信数: 6
閲覧数: 4587

Re: ゲーム開発におけるスクリプトの扱いについて

わたしは、スクリプト言語というふうに使われるスクリプトと、ゲームコンテンツの実装としてのスクリプトは意味が違うと思います。 前者は、ソースコードの記述から実行までの一形態を表すもので用途を限定するものではありません。 ネイティブな実行形式を生成するスクリプト言語処理系もあり得ます。 後者はusaoさんが書かれたような、コンテンツに必要な命令群を処理するものです。 独自に規定されたバイナリを処理するものは仮想マシンと呼ばれます。 #特定のCPUのニーモニックに対応したバイナリを処理するものになるとエミュレータと呼ばれるものになります。 よってゲームにおけるスクリプト利用というのは、仮想マシンの機...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Studioで作ったライブラリのヘッダーファイルについて
返信数: 6
閲覧数: 3455

Re: Visual Studioで作ったライブラリのヘッダーファイルについて

ソリューションにライブラリプロジェクトがあれば、特にインクルードパスやライブラリパスをオプションで設定などしなくても自動的に参照されませんでしたっけ。

デプロイとしてならば何らかのインストーラー的なものを利用するべきかと思うのですが。
その作業の必要性に疑問です。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 7820

Re: マップデータにおける動く足場などのギミックの扱い

マップの描画に関しては、背景か背景でないかの2種類しかない。

ギミックはキャラと同じという話は既に出てますけど、壁を壊すと通路が現れるような背景を書き変えるギミックとか、入り口を入って次のマップでプレイヤーキャラが立っている位置を決めるギミックとか、見えるものだったり見えないものだったり、動くものだったり動かないものだったりしても、マップ上に存在するオブジェクトの単位は1種類しかない。

まずそういったあたりを押さえてからじゃないと、Luaとかでスクリプトを導入すると複雑さを増すだけではないかと思いました。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Studioで作ったライブラリのヘッダーファイルについて
返信数: 6
閲覧数: 3455

Re: Visual Studioで作ったライブラリのヘッダーファイルについて

そのインクルード用のディレクトリは完成品を入れる場所ではないのですか?

ライブラリのプロジェクトとゲームのプロジェクトを別に作ってソリューションでまとめ、完成したら上書きするというふうにしたほうが良いのでは。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: エミュレータで動くゲーム制作
返信数: 2
閲覧数: 3613

Re: エミュレータで動くゲーム制作

1. エミュレータは仕事関係でもいろいろ作ったことがあります。 エミュレートしたい対象のハードとそこで動くソフトを自作できるレベルの知識は最低限必要です。 エミュレータを作って動かす対象のプラットフォームについても特殊な知識が必要です。 再現度によってピンキリの部分もありますが、ふつうのゲーム制作ではほとんど使わないような技術を使います。 なので資料はリファレンスマニュアルだけを読み込んで自力で実装できるくらいの能力も必要ですね。 2.は既にsoftyaさんが書いているので略。 3. 上に書いたようにエミュレータはプラットフォームごとに作らなければいけません。 しかもふつうにゲームを作るよりも...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Studioで作ったライブラリのヘッダーファイルについて
返信数: 6
閲覧数: 3455

Re: Visual Studioで作ったライブラリのヘッダーファイルについて

ライブラリを更新するたび手動でコピーする、という操作の具体的な内容が分かれば回答できるかもしれません。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 7820

Re: マップデータにおける動く足場などのギミックの扱い

既存のトップビューのマップエディタを改造せずに利用する方法を紹介したつもりでしたが。
タイルマップのデータはタイル画像のインデックスですが、その値をどのように使うかは自由です。
マップを作るときに決めておいた絵を出すだけでなく、敵が湧くポイントを指定したりとかいろいろ応用できます。

マップが表示された瞬間から動いているようなギミックならスクリプトは不要です。

softyaさんがスクリプト制御したほうが良いと言っているのは、例えば、特定のアイテムを持って特定のコマンドを入力すると開かずの扉が開く、とかそういう条件判定の部分だと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップデータにおける動く足場などのギミックの扱い
返信数: 13
閲覧数: 7820

Re: マップデータにおける動く足場などのギミックの扱い

実装方法は既に説明されているので省略。

タイルに合わせて配置できるギミックなら、マップ画像として、回転するギミックなら円を描いた矢印のもの、上下移動するなら上下に矢印が向いたもの、という感じでマップを作成し、作成したマップデータからギミックデータに変換するツールを作って変換するというふうにすれば、トップビューのマップエディタを利用できます。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

動かしてしばらくするとメモリ不足になるようであれば、どこかでリソースを複製しているのでしょう。
複製を繰り返すと参照されなくなったメモリをガベージコレクタが頻繁に回収するので、メモリ不足に関係なく全体的に処理が重くなります。

Bitmapの複製でなくてもオブジェクトの作成を繰り返すとガベージコレクタが頑張って処理を重くしてくれます。
提示されたコードからはそういうことをしていそうな雰囲気を感じます。

提示されたコードではその辺りのことは分かりませんが同じような質問がちょっと前にありました。
共有のリソースとかマルチスレッドとかは関係ないと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: すごい漠然とした質問ですが……
返信数: 5
閲覧数: 2161

Re: すごい漠然とした質問ですが……

難しい話の前に、まず考え方を180度変える必要があると思います。 例えば3DでFirstPersonShootingを作るとして、プレイヤーキャラと敵の銃弾の当たり判定を考える場合、プレイヤーキャラの処理で敵の銃弾の中から当たっているものを探したり、敵の銃弾の処理でプレイヤーキャラと当たっているかどうかを判定したりするのはアウトです。 どんどん無関係な処理で膨れ上がっていく典型的なパターンです。 プレイヤーキャラと敵の銃弾が当たっているかどうか判定をするのは、どちらにもアクセスできる第三者のオブジェクトです。 プレイヤーキャラも敵の銃弾も、自分がそこにいると教えられた地点を覚えるだけで、どんな...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibの3D、ライトについて
返信数: 3
閲覧数: 3693

Re: DxLibの3D、ライトについて

けっこう前のことですが、この手のは仕事でやりました。
最近のハードではどうなのか分かりませんが、台の演出にライト機能は使いませんでした。
光源織り込み済みテクスチャとの切り替えとか、スポット処理は半透明テクスチャとか。
半透明テクスチャも使い過ぎると重くなります。

台をリアルに再現することが至上ということであれば話は違ってきますが。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: AndroidのSurfaceViewでのmatrix処理が非常に重い
返信数: 21
閲覧数: 10610

Re: AndroidのSurfaceViewでのmatrix処理が非常に重い

motionList.getMotion(motion).getMotionFrame(animationTimeLine)
この部分を逐次求める必要ないのではないでしょうか。

motionList.getMotion(motion).getMotionFrame(animationTimeLine).getMotionNode(i)
というのも効率が悪いような気がします。
イテレータを用意して効率良く順次処理すべきかと。

Matrixはまったく関係ない気がします。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: RPGゲームのセーブ、ロード方法についてです。
返信数: 4
閲覧数: 2059

Re: RPGゲームのセーブ、ロード方法についてです。

ストーリーの進行上、元の場所には戻れない、という場合、元の場所以前に関するフラグをセーブする必要はありません。
そのようにしてセーブデータのサイズを減らすこともできます。

あと座標をそのままセーブするとマップの変化に対応できないのでお勧めしません。
セーブポイントに番号を振ってその番号を記録しましょう。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dゼルダ風マップスクロールの仕組みについて知りたい
返信数: 8
閲覧数: 3444

Re: 2Dゼルダ風マップスクロールの仕組みについて知りたい

たかお さんが書きました:おっしゃる意味がよくわかりません。ゼルダはマップデータを分割しているのではなく、
現在使用しているマップデータに次のエリアのマップデータを上書きしているということでしょうか?
ゼルダであればそもそも静的なマップデータをベタな形で持っていることはないはずです。
別に用意した作業用や表示用の領域を適切なタイミングで上書きします。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dゼルダ風マップスクロールの仕組みについて知りたい
返信数: 8
閲覧数: 3444

Re: 2Dゼルダ風マップスクロールの仕組みについて知りたい

もともとはファミコンのBG専用ビデオメモリの存在がアルゴリズムを決めたと思います。

タイルを書き変えてマップを変化させる演出に対応するため、いまでも仮想のBG専用ビデオメモリを実装することはよくあります。
むしろスクロールする場合マップデータはコピーして使うのが原則で、そのまま画面表示に対応させることはあまりありません。

元のマップデータが分割されているかどうかとは別のことです。
逆に言えば、元のマップデータを分割しようがしまいが関係ないので仕様変更に強いということです。
単純にマップデータのサイズを大きくするだけでは仕様変更に弱くなります。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド電卓
返信数: 12
閲覧数: 6314

Re: 逆ポーランド電卓

例えば123という文字列が入力されたとき、'1'を読み出して数字と判定、戻したあと123という文字列をscanfで一気に数値として取り込みます。
二桁以上の数をバラバラに処理しなくて良いところがメリットだと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: デストラクタ、メモリ解放について
返信数: 6
閲覧数: 3285

Re: デストラクタ、メモリ解放について

ウィンドウズのアプリケーションプログラムなら、終了時にヒープメモリが解放されるのは保障されます。 ただし、標準ライブラリからアクセスできる(CRTが管理している)部分に限ります。 DXライブラリはハードウェアリソースにアクセスしているので、その部分はどうなるか分かりません。 DirectXのシステムがその辺り保障してるかもしれませんが、保障されているから書かなくていいことにはなりません。 そもそも再利用のためにdeleteがあるわけですし、リソースを解放しないプログラムはソースコードも再利用性を失います。 解放していないコードを参考にして大きなプログラムを作ったら大変なことになります。 確保と...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: リング型のゲージの作り方
返信数: 2
閲覧数: 1913

Re: リング型のゲージの作り方

扇状ではなくリング状にしたいということであれば、DrawCircleGaugeで使用する画像をリング状にしておけば良いだけなのではないでしょうか。
(動作確認は取ってません。)
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダーファイルでの変数について
返信数: 3
閲覧数: 3066

Re: ヘッダーファイルでの変数について

質問の例の場合、 hoge.cにインクルードされた外部変数hogeの宣言は仮定義となります。 main.cにインクルードされた外部変数hogeの宣言は仮定義となります。 これらがリンクされるとき、仮定義しかないので定義がひとつ作成され、それを参照する実行ファイルが作成されます。 hoge.cppにインクルードされた外部変数hogeの宣言は定義となります。 main.cppにインクルードされた外部変数hogeの宣言は定義となります。 これらがリンクされるとき、定義が複数存在するのでリンクエラーとなります。 ちなみに仮定義は、プログラム全体で定義がひとつだけ存在するとき、例え0に等しい初期値でなく...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダーファイルでの変数について
返信数: 3
閲覧数: 3066

Re: ヘッダーファイルでの変数について

仮定義というのは、コンパイル単位の最後まで仮定義のままだったら、0に等しい初期値を持った定義があるとみなしてコンパイル単位ごとにコンパイルするというもの(規格では同じ規則で動作するという記述)であって、さかのぼってextern付きの宣言とみなしたり定義に変わったりするものではありません。 staticが付いた宣言も初期値がないものは仮定義です。 内部結合と外部結合が同時に指定されることにはなりません。 externの付いた宣言は内部結合の外部変数を参照することもあります。 プログラム全体で仮定義しか無かった場合、定義がひとつ作成されます。 プログラム全体で定義はひとつだけ存在できます。 C++...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: どうしても表示できない文字がある
返信数: 12
閲覧数: 10675

Re: どうしても表示できない文字がある

namari さんが書きました:今にして思えばこれに加えてそもそも文字を潰さないために2文字採用することが頭から抜けてましたね。
2文字採用ってどういうことでしょう。
'\n'は1文字(シフトJISで1バイト)ですけど別の話でしょうか。

DrawFormatStringが改行してくれないから自前で分割するというのは分かります。
その際に元の文字列の改行コードを別の表示できる文字に置き換えるメリットが分からないのです。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: どうしても表示できない文字がある
返信数: 12
閲覧数: 10675

Re: どうしても表示できない文字がある

わざわざ表示できる文字を潰して採用するメリットを教えて欲しいです。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 解像度とウィンドウサイズについて
返信数: 6
閲覧数: 3949

Re: 解像度とウィンドウサイズについて

当初のコードはDxLib_Initを呼ぶ前にダイアログボックスを表示しているので、いったんフルスクリーンに切り替わることはありませんね。

Win7 64bit + GeForce GTS 250 (ドライババージョン334.89)の環境ではフルスクリーンに切り替わります。

最近は16ビットカラーをサポートしないグラフィックボードがけっこうあるそうなのでそのせいなのでは。
SetGraphModeに32ビットカラーを指定したらフルスクリーンに切り替わりませんか?
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ベクターがメンバにある構造体の保存について
返信数: 20
閲覧数: 11944

Re: ベクターがメンバにある構造体の保存について

実装に触れていること自体が問題なのですからNo.13は存在自体が問題です。 No.16にそう書いたつもりですが。 規格を満足した上で d に直接 f や f2 を入れる方法が存在するかどうか何て考えたこともなかった。 逆に fwrite(&d, sizeof(data), 1, fp); で実体が書き込まれた環境があっても、先のサイズからの推定から、これが汎用性のあるコードと考えていいか疑問を待たなくてはいけませんね。 ちょっと言葉が足りなくて誤解を与えたようですね。 単に実行を促すのは良くないと思います。どう考えられるかを提示した上で実行を促すのがよいでしょうね。 わたしは気に入らないのでは...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: cygwinで自作ライブラリのリンク
返信数: 4
閲覧数: 3467

Re: cygwinで自作ライブラリのリンク

march3 さんが書きました:(なぜこんな仕様なんだろう。ファイル名の互換くらいCygwin側で考慮してもらいたい・・・)
もし実行ファイルにexe拡張子が付かないとCygwinのシェルからしか実行できなくなりますね。
ウィンドウズ環境の中で同時利用できないならCygwinを使うメリットはないと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ベクターがメンバにある構造体の保存について
返信数: 20
閲覧数: 11944

Re: ベクターがメンバにある構造体の保存について

単にサイズから推定すればそうではないかと提示したにすぎません。 手元の実装で実験して推定したことを、いかなる条件下においても適用できる、とおっしゃっているとわたしが読み取るのは自由ですよね。 それを禁止したり回避したりする策を講じていないのは、誤解するのは誤解するやつが悪いとの考えですか? 「なぜ生まれたか」と言われれば、質問者さんに聞いていただかないと私からは答えようがないです。 質問文を読む限り質問者さんはサイズを確認して推定していないようです。 仮に、「push_backしたデータは出力されないようです。その 理由は出力されたサイズを確認したから です。」と質問文が続いていたら、正にそ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ベクターがメンバにある構造体の保存について
返信数: 20
閲覧数: 11944

Re: ベクターがメンバにある構造体の保存について

zeek さんが書きました:となると d に直接 f や f2 を入れていないと推定するのは、ごく自然な思考かと思うのです。
ごく自然な思考だとすれば、このトピックはなぜ生まれたのでしょうか。

実装によって判断するということは、例えばウィンドウズでは文字列リテラルを書き換えられるのでウィンドウズで文字列リテラルを書き換えるのは当然という主張があれば認めるということでしょうか。
認めるなら認めるでわたしはかまわないと思いますが、すべてにおいてそうであると誤解を招くような表現は避けるべきだと考えます。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 1upの方法について
返信数: 4
閲覧数: 2037

Re: 1upの方法について

市販のゲームでも一気に得点が増えると1回しか1UPしないバグってけっこうありますよね。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: アンドロイドアプリのメモリ管理
返信数: 2
閲覧数: 1963

Re: アンドロイドアプリのメモリ管理

無駄にイメージを複製しまくっているのが目に付きます。 イメージをオリジナルのピクセルサイズで扱う Androidはイメージを読み込むとき端末に合わせて自動的に大きさを変換するので、大量にメモリを消費することがあります。 drawable-nodpiフォルダにイメージを格納すれば自動変換されません。 同じ内容のイメージで複数のBitmapを作成しない BitmapFactory::decodeResourceのたびにイメージを展開するためのメモリが消費されます。 同じリソースIDのBitmapはひとつだけ作成して参照するようにしましょう。 Bitmapを直接Canvasに描画する BitmapD...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: ベクターがメンバにある構造体の保存について
返信数: 20
閲覧数: 11944

Re: ベクターがメンバにある構造体の保存について

環境依存だというのならたまたまvectorがfwriteしてfreadすると復元できる実装になっている可能性を無視できるのでしょうか。
その可能性がゼロだということを証明する必要があるのではないでしょうか。

仮に可能性がゼロだということを証明できたとして、環境依存というのは単にポインタの大きさの違いとかそういうことになるのでしょうかね。

『常に可能性を考慮する』ことを補強するための例であれば良いですが、ただの一例をすべてがそうだと思わせるように示すのは完全に間違っているとわたしは思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: cygwinで自作ライブラリのリンク
返信数: 4
閲覧数: 3467

Re: cygwinで自作ライブラリのリンク

Cygwinで作ったlibhoge.soの中身は既にDLLですね。 単に-lオプションで探すファイル名のパターンがLinuxとCygwinで異なるというだけです。 -lオブションを使わずに $HOME/lib/libhoge.so と直接ファイル名を指定したらリンクできることを確認しました。 実行にも問題がないようです。 -lオプションを使いたいのであればファイル名をCygwin流に合わせる(libhoge.so→libhoge.dll)必要があります。 4.8.2とのことなので、ファイル名の頭のlibは付けても付けなくても-lオプションで見付けてくれます。 実行ファイル名はライブラリに埋め込...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: torやプロキシについて
返信数: 11
閲覧数: 4019

Re: torやプロキシについて

個人的に嫌なだけなのにすべからくブロックしろとおっしゃるのがおかしいということですよ。
したいならあなただけがすればよろしい。

プロキシがすべからくブロックされたら(特に個人で)ネットサービスを開発するのがたいへん困難になるのではないでしょうか。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: フルスクリーンに切り替えると落ちる
返信数: 13
閲覧数: 7329

Re: フルスクリーンに切り替えると落ちる

ふつうにフルスクリーンモードで起動できないことに気付いて調べたら、これはウィンドウズのバグ(というか仕様?)だそうです。

過去ログにもありました。
マルチモニターでのフルスクリーン

デスクトップコンポジションを無効にしてフルスクリーンモードで動作できたとしても、サブモニタに表示される内容がプライマリモニタの一部になってしまう不具合が発生することがあります。

IDirect3D9::GetAdapterCountメソッドが2以上の値を返すとき、マルチモニタ環境だと判定できます。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。コマンドプロンプトを用いてできないです。
返信数: 7
閲覧数: 3845

Re: 初心者です。コマンドプロンプトを用いてできないです。

環境変数のINCLUDE,LIBにそれぞれインクルードパス,ライブラリパスを設定しておくともっと楽にできる場面が増えると思います。 わたしはユーザーディレクトリに環境設定用のバッチファイル等の個人的な実行形式を置くフォルダを用意して実行パスを通してます。 例えば、Visual Studio Express 2013 for Windows DesktopでDXライブラリを使う場合、次のようなバッチファイルを作っておいて、コマンドプロンプトを開いてから実行すれば、clコマンドで特にオプションを指定しなくてもDXライブラリを使ったソースファイルをコンパイルできるようになります。 @echo off...

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