検索結果 2616 件

by ISLe
4日前
フォーラム: C言語何でも質問掲示板
トピック: javaでPC向けシューティングを作りたいが・・・
返信数: 5
閲覧数: 228

Re: javaでPC向けシューティングを作りたいが・・・

ガラケー時代を中心に、80~90年代アーケードゲームの移植を生業としていた者からすると、「やはりJavaでは向いてない」と切り捨てられるのは悲しいものがありますな。

ちなみにわたしは、C/C++で作ったものの移植という形でJavaを覚えました。
学習に要した時間は4時間ほどです。
2Dゲームなら、AWTでイメージ描画、サウンド再生、この2つが分かれば十分ですね。

参考にするならこことかどうでしょう。
Javaでゲーム作りますが何か?
by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 1221

Re: アナログデータのリアルタイム描画

Windows 7と Windows 10ではデスクトップの描画の仕組みが違います。 新しいOSほど最適化が進んで自動的に無駄が省かれるようになっていきます。 1000サンプリングを10回に1回描画というと100Hz(fps)なので、モニタの周波数が60Hzであれば、モニタに映らないフレームがあります。 内部的な描画は行われますが、Windows 10は、映らないフレームをデスクトップに反映することをしません。 もしかしたら、それが描画速度の差に表れているのかもしれません。 周波数が144Hzあるようなモニタであれば、Windows 7と Windows 10で同様の動作になるかもしれません...
by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 1221

Re: アナログデータのリアルタイム描画

わたしなら ・データ受信処理は、データの受信だけして描画に必要なデータを溜めておく ・描画処理は、タイマーイベントで定期的に呼び出し、(タイマーの間隔は信用できないので)実際の経過時間を取得して描画範囲を求め、描画 というふうにします。 描画に時間が掛かれば、1回あたりの描画範囲が広がるわけです。 ウィンドウズはリアルタイムOSではないので、常に一定の間隔とか、ちょうどぴったりとかはできません。 できるだけ近づけることはできます。 デスクトップを操作したりとか、バックグラウンドで何か処理が動いたりとかで、プログラムの動作にかかる負荷が変わることがあります。 タイミングは実行中も常に変動するもの...
by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 1221

Re: アナログデータのリアルタイム描画

オフトピック
わたしの得意分野かと思ったのですが、回答するのが憚られる流れですな。
最近ここに来るの不定期だし、Builder使ったことないので具体的な回答はできそうにないし。
by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム開発に日常的に使っているものは何ですか?
返信数: 35
閲覧数: 1224

Re: ゲーム開発に日常的に使っているものは何ですか?

現場がUnityを使うのは、マルチプラットフォーム対応やチームでの作業にかかる開発や学習のコスト削減、さらにプラットフォーム側のアップグレード対応の保守にかかるコストの削減など、開発費の大幅な削減を期待できることがいちばんの理由ですね。 Unityにだってバグはあります。 低レイヤに詳しければ、アプリ開発しててバグに遭遇したとき、問題がアプリ側にあるのか、Unity側なのか、あるいは相性的なものなのか、判断できます。 低レイヤに詳しいと、証拠をそろえて改善方法を提案することも可能で、迅速な対応を期待できます。 単にUnity使ってゲームを作れますっていうだけだと、現場では一生下っ端で働きます...
by ISLe
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: VisualStudioの補完機能について
返信数: 2
閲覧数: 1170

Re: VisualStudioの補完機能について

「コードスニペット」で検索
by ISLe
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 4437

Re: 2Dの衝突判定がキッチリと出来ない、、

ズレるとめり込むといった現象は、当たり判定に複雑な前提条件を持ち込んだ末の条件漏れが原因で発生することがあります。 質問と一緒に提示されたコードからはそのようなニオイを感じます。 ループではキャラの周辺状況を取得するだけにして、あとから座標の補正をするようにすると、漏れにくくなります。 2D横スクロールアクションゲームの壁判定についての質問 RECT型を使ってのめり込み防止の実装について。 #ブロックひとつひとつに対して逐次補正する方法もあります。 #前者はスーパーマリオっぽく、後者はロックマンっぽい動きになります。 ループを回す範囲については、うちのブログの記事ですが… 【JavaSE】フ...
by ISLe
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DirectX9 デバイス消失の処理について
返信数: 3
閲覧数: 885

Re: DirectX9 デバイス消失の処理について

ソースコードがないのでまったくの想像ですが、スレッドコンテキストが一致していないとか。

例えば、メッセージループを回しているところと、ウィンドウプロシージャの中はコンテキストが異なるので、デバイスの作成がメッセージループを回しているところにあって、ウィンドウプロシージャの中でResetを呼び出しているような場合、機能しません。

入門者向けの解説とかで、ウィンドウプロシージャの中でいろいろやってるものがありますけど、ある程度大きなプログラムになると確実にハマるので注意が必要です。
by ISLe
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: コンソール上書き
返信数: 4
閲覧数: 942

Re: コンソール上書き

Win32コンソールAPIというものを使うとコンソール上のテキストの読み書きやカーソルの操作ができます。
が、個人的にはncursesライブラリを使うことをお勧めします。

ncursesライブラリはLinux由来ですが、Windows用のものもあって、マルチプラットフォームに対応します。

ncursesライブラリを使ったプログラム例
http://isle.cocolog-nifty.com/blog/curses/index.html
by ISLe
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: java すいません Hello world
返信数: 4
閲覧数: 950

Re: java すいません Hello world

Javaは最近、セキュリティ上の問題から、カレントディレクトリのclassを無条件でロードしないようになりました。
正確には、デフォルトのクラスパスに.(カレントディレクトリ)を含まない仕様に変更されました。

カレントディレクトリにあるclassファイルをロードしたい場合、-cpオプションでクラスパスを明示してください。
java -cp . Hello
by ISLe
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい
返信数: 5
閲覧数: 1326

Re: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい

ただ、個人的にglut関連のファイル(glut32.libとglut.h)をいじってたりしてはいないので、環境の違いは生じないように思います。 glutは、Visual Studio(あるいはWindows SDK)に含まれないので、そもそも環境に依存するものだと思います。 開発環境を更新したのに、(追加の)ライブラリを更新していないのであれば、不具合の原因はライブラリの互換性にあるのではないでしょうか。 #3に投稿されたコードにはglut関数が使用されていません。 OpenGL(gl)、glu、glut、wglの区別はできていますか。 こちらの環境では、wglDeleteContextを有...
by ISLe
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい
返信数: 5
閲覧数: 1326

Re: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい

こちらの環境では件のコードはウィンドウが表示されることなく終了しますが、glutDisplayFuncで描画関数をセットすると正常に動作しました。 #include <GL/glut.h> void display(void) { } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutCreateWindow("test"); glutDisplayFunc(display); glutMainLoop();...
by ISLe
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DxlibのFPSとリフレッシュレートについて
返信数: 5
閲覧数: 1928

Re: DxlibのFPSとリフレッシュレートについて

フルスクリーンモードでもカクつきますか? ウィンドウモードではWaitVSyncFlagをFALSEに設定しても、VSYNC同期が強制されます。 デスクトップがクラシックテーマであれば有効なのですが、Windows10ではクラシックテーマが廃止されました。 館のコードは、時間が余ったらウェイトを入れるだけで、時間が足らなかったとき(いわゆるコマ落ち)が考慮されていません。 リフレッシュレート60Hzで40FPSなら、コマ落ちするはずないじゃないかと思われるでしょう。 ところが、60分割のタイミングと40分割のタイミングを重ねてみると、待ち時間はバラバラになり、余裕がないときはコマ落ちが発生しま...
by ISLe
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: キャラクター同士の衝突判定について
返信数: 3
閲覧数: 1425

Re: キャラクター同士の衝突判定について

率直に言って、条件が複雑すぎてコードを読む気になりません。

とりあえず、キャラ本体と、攻撃判定の矩形を分離すると、ずっとシンプルなコードになると思います。
まず当たり判定を行い、その結果をもって、条件分けすることで、さらにシンプルになると思います。

・攻撃判定内にキャラがいたら
※当たり判定自体はキャラ同士と同じようにできる
→攻撃してなかったら攻撃の開始処理
→攻撃している最中ならダメージ処理
といった具合に。
by ISLe
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DxlibのFPSとリフレッシュレートについて
返信数: 5
閲覧数: 1928

Re: DxlibのFPSとリフレッシュレートについて

リフレッシュレートが60Hzのとき、60を超える値をFPSに設定しても、実際のFPSは60で頭打ちになりません?
by ISLe
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: プログラミング初学者の基礎的疑問
返信数: 11
閲覧数: 2789

Re: プログラミング初学者の基礎的疑問

いまはインターネットを使って膨大な情報にリーチ可能です。 「知っている」ことと「できる」ことは乖離が進み、「知っているけどできない」ことはどんどん増えていくでしょう。 でも「知っている」ことは強みです。 それだけで、いまはできなくても将来の備えになります。 とは言え、やみくもに膨大な情報に触れるだけで良し悪しを判断できなければ選択できません。 >機能すればそれでいいって感じでも最初のころはいいのでしょうか? 学ぶ上では、むしろ効率の悪いコードに触れることは貴重な体験となるでしょう。 >こちらの1~定数jまでの数値をかぶらないように配列に格納して表示するプログラム…なんかどことなく効率が悪いよう...
by ISLe
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: プログラミング初学者の基礎的疑問
返信数: 11
閲覧数: 2789

Re: プログラミング初学者の基礎的疑問

かなり昔の話だけれど、ガラケー用のゲームで、20体程度のエネミーの群れから3体を選んで隊列を作るという処理があった。 iアプリ版では、3体すべて全体からランダムに選出していたが特に問題はなかったものを、そのまま別のケータイに移植したところ、ウォッチドックに引っ掛かって端末に強制リセットが掛かるという致命的な不具合が発生した。 たまたま知っていたから、すぐに原因を見つけて修正できたけれど、知らなかったらその機種でのリリースは延期や中止にもなりかねなかった。 今回の質問の内容は頻出で、こういう質問掲示板を巡回していればたびたび目にして、使う機会がなくてもなんとなく覚えてしまう。 質問があるときだ...
by ISLe
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ変数
返信数: 14
閲覧数: 4727

Re: ポインタ変数

>かずまさん ご指摘ありがとうございます。 宣言に現れる*単体の名称は存在しないわけですね。 脊髄反射的に騒ぎ出す人は、「アドレスを格納してないポインタ変数を 使って、ポインタの指している先のオブジェクトを参照しちゃいかん」と 言っているつもりなんでしょう。 int i, *p, **pp; という宣言があった時、 p = &i; や pp = &p; は何も問題ないが、 *p = i; や i = *p; という使い方をしちゃいかん、 と言っているのでしょう。 代入演算子= の左オペランドや、単項演算子& のオペランドは、 未初期化の一時変数であっても何も問題ありません。 そうですね。 どう...
by ISLe
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ変数
返信数: 14
閲覧数: 4727

Re: ポインタ変数

前言時の*はポインタ宣言子。変数名(直接宣言子)には含まれない。 int i, *p, **pp; iは、『int』という型の値を保持できる変数。 pは、『int』+『へのポインタ』という型の値を保持できる変数。 ppは、『int』+『へのポインタへのポインタ』という型の値を保持できる変数。 iを使って、intという型の値を『直接』やりとりできる。 pを使って、intへのポインタという型の値を『直接』やりとりできる。 ppを使って、intへのポインタへのポインタという型の値を『直接』やりとりできる。 これらが一時変数であった場合… 初期化されていないiを読み出そうとすると、未定義の動作となる...
by ISLe
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ変数
返信数: 14
閲覧数: 4727

Re: ポインタ変数

ただちょっと疑問がありまして、int型変数のアドレスもintに内包されるので 64ビット実行環境だとintが32ビットでアドレスが64ビットだったりすることがあります。 C/C++言語において、アドレスの表現は、コンパイラ側で勝手に決めていいということ以外は規定がありません。 あと、アドレスをprintfの%dで表示するということにおいては、PCがぶっ飛んでも不思議ではないことだというふうに定義されています。 まあ、たいていは、コンパイラなりOSなりが、PCがぶっ飛んだりするような大事には至らないように対処してくれます。OSが起動しなくなるくらいはたまにあることですが。 %pで表示するにして...
by ISLe
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [c++]自分自身のインスタンスを定数で持つ
返信数: 3
閲覧数: 1683

Re: [c++]自分自身のインスタンスを定数で持つ

コンパイル時定数とするため以下のように記述できます。

コード:

struct ColorCode {
	int r, g, b;
	constexpr ColorCode(int r = 0, int g = 0, int b = 0) : r(r), g(g), b(b) { }
	constexpr ColorCode(const ColorCode& cc) : r(cc.r), g(cc.g), b(cc.b) { }
	static const ColorCode Red;
};
constexpr ColorCode ColorCode::Red = {255, 0, 0};
by ISLe
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Vitual Studio 2017のUSBへのコピーについて
返信数: 2
閲覧数: 2101

Re: Vitual Studio 2017のUSBへのコピーについて

Visual Studio Installerを起動して、詳細→修復、と選択してみてください。

Visual Studioは、インストールの際、WindowsのOS機能を開発向けに書き換えたりしているので、外部メディアにコピーして持ち運びできるようにはなっていません。
OSの機能に関するファイルに勝手に触ると(下手するとWindowsごと)動かなくなります。

Visual Studioと比べたら機能的に劣りますが、USBメモリで持ち運ぶ用途にはVisual Studio Codeをお勧めします。
Visual Studio Codeはインストーラ版とポータブル版の両方が用意されています。
by ISLe
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Eclipseが起動しません
返信数: 2
閲覧数: 2077

Re: Eclipseが起動しません

「Eclipse 4.7 Oxygen 3a というall in one Eclipse」というのは、MergeDoc ProjectのPleiades All in One Eclipseのことでしょうか? その場合… 1. eclipse.exeのあるフォルダが、Pleiades All in One Eclipseでは、C:\pleiades\eclipseとなるはずであるが、C:\eclipseとなっている。 2. 4.7 Oxygen 3aをダウンロードしたとあるのに、メッセージの内容は4.3 Keplarである。 という不可解な情報が読み取れるのみです。 ダウンロードした「Ecli...
by ISLe
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Bluetoothとの通信について
返信数: 3
閲覧数: 1910

Re: Bluetoothとの通信について

CreateFileにCOM10以降(2桁以上)のポート番号を指定するときはファイル名の先頭に\\.\を付加する必要があります。
"COM25" を "\\\\.\\COM25" に変えてみてください。
by ISLe
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 2D横スクロールアクションゲームの壁判定についての質問
返信数: 6
閲覧数: 2229

Re: 2D横スクロールアクションゲームの壁判定についての質問

現状のコードに対するアドバイスではないのですが、下のコードはこの掲示板に以前投稿したものです。 結果としてrcResultの各メンバに上下左右それぞれめり込んだ量が入ります。 左右あるいは上下ともに値が入っているとき、合計がキャラの幅以下なら壁に挟まれていて、キャラの幅を超えていれば壁の中にいる状態です。 良かったら参考にしてみてください。 RECT rcMover = { /* 当たり判定するキャラの座標で初期化 */ }; RECT rc, rcResult; CopyRect(&rcResult, &rcMover); { // 当たり判定の対象の数だけ繰り返し // 四角いブロックの場...
by ISLe
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIのバッファリングについて
返信数: 3
閲覧数: 1972

Re: Win32APIのバッファリングについて

ボタンのちらつき対策にはウィンドウスタイルにWS_CLIPCHILDRENを加えてください。
ウィンドウズが勝手にボタンを避けて描画してくれるので高速描画でもへっちゃらです。
by ISLe
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: WICを使用した画像表示で、一定サイズ以上だとエラーとなる
返信数: 4
閲覧数: 2247

Re: WICを使用した画像表示で、一定サイズ以上だとエラーとなる

MSDNの方で回避策は教えてもらえなかったのでしょうか。 D2D1::RenderTargetProperties()が返すパラメータは、ハードウェアが使えるときはハードウェアを使い、ハードウェアが使えないときにソフトウェアを使う、という設定なので、これを、常にソフトウェアを使うように明示すれば、 サイズの制限に関しては 大幅に緩和できます。 こちらの環境(※)では、ソフトウェアを使うように明示することで、ID2D1RenderTarget::GetMaximumBitmapSize()の戻り値が、16384 → 8388608 に変化しました。 ※Windows 10 bit、6GBメモリ、...
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: 暗闇の中での光源が複数ある場合
返信数: 2
閲覧数: 1903

Re: 暗闇の中での光源が複数ある場合

これでいかがでしょう。 //背景画像(640×480) int test = LoadGraph("test.png"); //背景と同じサイズで、白から黒に円形でグラデーションしている画像 int mul = LoadGraph("mul.png"); // グラデーション画像の合成用スクリーン int handle = MakeScreen(640, 480, FALSE); // グラデーション画像をオフスクリーンで合成 SetDrawScreen(handle); // 合成用オフスクリーンを描画対象に ClearDrawScreen(); SetDrawBlendMode(DX_BL...
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ウィンドウ表示の仕方
返信数: 7
閲覧数: 3327

Re: 複数ウィンドウ表示の仕方

数値を並べて表示したい場合、こんなふうにメモ帳を利用することもできます。 矢印で囲った部分。DXライブラリと関係なく使えます。 #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetAlwaysRunFlag(TRUE); ChangeWindowMode(TRUE); if (DxLib_Init() != 0) return 0; SetDrawScreen(DX_SCREEN_BACK); while (...
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ウィンドウ表示の仕方
返信数: 7
閲覧数: 3327

Re: 複数ウィンドウ表示の仕方

わたしがお薦めするのは余分な書き換えをしなくて済むOutputDebugString関数。
printfのような書式を使いたいならこんなのを一回作っておくといい。
出力は、VisualStudioの出力ウィンドウや、DebugViewなどで確認できる。

とは言え、DirectXで背景やキャラと重なって見えない、とあるのでログ的なものではない予感。

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