【初心者】スレを立てる前にココで質問を【Part11】
■ このスレッドは過去ログ倉庫に格納されています
0001スレ立て挑戦
2006/01/20(金) 13:16:04ID:AUyOArlHスレッドを立てる前にはローカルルールを読みましょう。
http://pc8.2ch.net/gamedev/
※ >>980 を踏んだ人は次スレ立てをお願いします。
その他は>>2-10ぐらい
0354名前は開発中のものです。
2006/03/09(木) 02:42:31ID:/oVDHdrTよくわからんのですが、こんな感じですか?
do{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}else{
Sleep(1);
}
}while(timeGetTime() < time + 16.67f); // 60 FPS (1000 / 60 = 16.67)
0355名前は開発中のものです。
2006/03/09(木) 03:01:10ID:rOVZGputSetTimer、PostMessage辺りかな。
0356名前は開発中のものです。
2006/03/09(木) 11:08:39ID:KxJsUriB0357名前は開発中のものです。
2006/03/09(木) 22:19:37ID:4T2dc8xK0358名前は開発中のものです。
2006/03/09(木) 22:26:18ID:ulH8Z7Si2,3ミリsec余裕でずれる
0359名前は開発中のものです。
2006/03/09(木) 22:26:48ID:ulH8Z7Si0360名前は開発中のものです。
2006/03/09(木) 23:30:36ID:4T2dc8xKこれだときちんと他のアプリ立ち上げたり負荷掛けたときだけCPU使用率が高くなる。
0361名前は開発中のものです。
2006/03/09(木) 23:58:32ID:ZV0n2FwRttp://rina.jpn.ph/~rance/directx8/03/01.html
0362名前は開発中のものです。
2006/03/10(金) 00:15:34ID:49EtE12l0363名前は開発中のものです。
2006/03/10(金) 00:32:26ID:4IHmwG2s0364名前は開発中のものです。
2006/03/10(金) 02:32:08ID:W8Q8Lboi//メッセージループ
while( 1 )
{
if ( PeekMessage(&msg,NULL,0,0,PM_NOREMOVE) ){
if ( GetMessage( &msg, NULL, 0, 0 ) == 0 ) { break; }
TranslateMessage(&msg);
DispatchMessage(&msg);
}else{
MainLoop();
}
}
void MainLoop()
{
/*このあたりにCPU使用率を下げるための処理*/
/*OKならゲーム処理*/
}
0365名前は開発中のものです。
2006/03/10(金) 03:16:46ID:pNEIOb2s0366名前は開発中のものです。
2006/03/10(金) 08:37:58ID:eDyAepNdパク(ry
0367名前は開発中のものです。
2006/03/10(金) 09:05:16ID:bSuzl4Hg思いっきりスピンロックしやがる実装がザラだからなあ。
Direct3D9Exあたりから待機関数あるみたいだけど。
0368名前は開発中のものです。
2006/03/10(金) 18:35:08ID:OkL0RMkqダメ。
そんな事するから、重いウィンアプリばっか出てくるんだ。
タイマーをうまく使うべし。
精度が悪い場合は、timeSetEventを使う。
0369名前は開発中のものです。
2006/03/10(金) 21:42:10ID:eHf1wg1Nx’=x×cosΘ−y×sinΘ
y’=x×sinΘ+y×cosΘ
コレがでてきたんで
tex[0].x = 120;
tex[0].y = 240;
tex2[0].x = kai[0].x * cos(90) - kai[0].y * sin(90);
tex2[0].y = kai[0].x * sin(90) + kai[0].y * cos(90);
って書いたんだけどうまくいかないんです。
tex[0]は画像貼り付けた四角のポリゴン?の頂点の内のひとつです。
tex2の値使って描画してます。
0370名前は開発中のものです。
2006/03/10(金) 21:56:37ID:eHf1wg1Ntex2[0].x = tex[0].x * cos(90) - tex[0].y * sin(90);
tex2[0].y = tex[0].x * sin(90) + tex[0].y * cos(90);
こうでした
0371名前は開発中のものです。
2006/03/10(金) 22:20:47ID:IHVI/h/s0372名前は開発中のものです。
2006/03/10(金) 22:21:35ID:6klj+UjH多分のその三角関数の引数はラジアン。
0373名前は開発中のものです。
2006/03/10(金) 22:26:21ID:eHf1wg1Nint s;
s = 90 * RAD;
tex2[0].x = tex[0].x * cos(s) - tex[0].y * sin(s);
tex2[0].y = tex[0].x * sin(s) + tex[0].y * cos(s);
こうしてみましたがやっぱり失敗・・・どっか他の所なのかなぁ
0374名前は開発中のものです。
2006/03/10(金) 22:33:40ID:gqVEhWf1あと、いきなり90度じゃなくて5度くらいで試すとか。
0375名前は開発中のものです。
2006/03/10(金) 23:41:44ID:eHf1wg1N5度とかにするとまったく動かないです
#defineRAD (3.14159f/180.0f)
int s;
static int a = 0;
s = a * RAD;
tex2[0].x = tex[0].x * cos(s) - tex[0].y * sin(s);
tex2[0].y = tex[0].x * sin(s) + tex[0].y * cos(s);
a ++;
ってしてみたらカクカク回転はしてました・・・
0376名前は開発中のものです。
2006/03/11(土) 00:01:33ID:eHf1wg1Nレスくれた人ありがとうございました、そしてスマンでした。
0377名前は開発中のものです。
2006/03/11(土) 01:44:45ID:j9qMi4THその辺りのことは自分で作っていくうちに効率的な方法を思いつくんですか?
それとも何かサイトや本を参考にして覚えるんですか?
0378名前は開発中のものです。
2006/03/11(土) 01:57:36ID:DfEpN4C20379名前は開発中のものです。
2006/03/11(土) 06:49:28ID:j9qMi4TH0380名前は開発中のものです。
2006/03/11(土) 11:34:21ID:OQA38ARh負荷をかけないで待機するのが目的だったらMsgWaitForMultipleObjectsをおすすめするぜ
あたらしいメッセージが届くか、タイムアウトするかの両方で待つことができるんだ
あとメッセージキューは一回の検査で空っぽになるまで中身をとりだしちゃお
あとWM_CHARを評価しないならTranslateMessageを呼ぶ必要はないぜ…確か。
0381名前は開発中のものです。
2006/03/11(土) 12:42:56ID:5vZF79TYD3D使ってゲームループを回すとフルスクリーン時だけCPU使用率が100%近くに
なってしまいます。
http://pc8.2ch.net/test/read.cgi/tech/1132965206/125-128
切り分けたところ、なんかフルスクリーン時のPresent()が重すぎなように見えます。
なおPresent()の引数は全てNULLを渡してます。
原因がわかる方いたら教えて下さい。
コノトオリ orz
0382名前は開発中のものです。
2006/03/11(土) 12:52:37ID:LLveNUqFそんなこと考えるまでもない。
0383名前は開発中のものです。
2006/03/11(土) 13:37:03ID:5vZF79TY確かにプログラマが考慮する内容じゃなさそう
D3DPRESENT_DONOTWAITやD3DPRESENT_INTERVAL_IMMEDIATE指定しても結局
全力ループ組まなきゃいけなさそうだしこれは許容するしかなさそうね
0384名前は開発中のものです。
2006/03/11(土) 13:42:30ID:9yFKHnii僕は自分オンリー。
むしろ基本のメッセージ処理なやり方って思っている。
Peekを使うのは、ウィンアプリの前にコンソールでやっていて、
そっちじゃないと分かりづらいというのもあるのかな。
>>380
その場合は、それ用のコールバック関数を作ってしまう。
0385名前は開発中のものです。
2006/03/11(土) 14:09:22ID:OQA38ARhIMMEDIATEを指定してあとはwindowモードのときと同じように休んでいけばいいだけなんじゃないの?
0386名前は開発中のものです。
2006/03/11(土) 14:42:37ID:5vZF79TY寝ぼけてますた、その通りですな…
CPUの負荷とティアリングを天秤にかける事になりますが、これは切り替えスイッチ
でも入れる事にします。
マリガトウ
ノシ
0387名前は開発中のものです。
2006/03/11(土) 16:11:14ID:vpzIn0S1一応下げとくか
0388名前は開発中のものです。
2006/03/11(土) 18:44:39ID:DfEpN4C20389名前は開発中のものです。
2006/03/11(土) 20:55:46ID:vpzIn0S10390名前は開発中のものです。
2006/03/11(土) 20:57:30ID:Rn1ZTT4U0391名前は開発中のものです。
2006/03/11(土) 22:32:49ID:dYMZfRdKついでに
・次回のvsyncタイミングを予測してその3msくらい前までsleepしてからvsyncを待つ
モードも作っておいてオプション設定で切り替えできるようにしておくとか… 俺はやったことないけど
0392名前は開発中のものです。
2006/03/12(日) 00:54:48ID:WdX+GBZM>俺はやったことないけど
つか多分自分でゲームループ組んだ事ないだろ?
その書き込みで判る
0393名前は開発中のものです。
2006/03/14(火) 20:42:16ID:kIo9Nngk{
HBITMAP haike;
haike = (HBITMAP)LoadImage(NULL, TEXT("./ggxx09.bmp"), IMAGE_BITMAP, WIDTH, HEIGHT, LR_LOADFROMFILE);
SelectObject(bufa, haike);
StretchBlt(hdc, 0, 0, WIDTH, HEIGHT, bufa, x, y, WIDTH, HEIGHT, SRCCOPY);
}
///////////////////////////////////////////////////////////////////
case WM_PAINT:
main = BeginPaint(hWnd, &ps);
haikei(main, bufa, x, y);
EndPaint(hWnd, &ps);
return 0;
/////////////////////////////////////////////////////////////////
DWORD WINAPI ThreadProc(LPVOID lp)
{
while(1) {
HWND hWnd;
hWnd = ((ThreadParam*)lp) -> hWnd;
InvalidateRect(hWnd, NULL, TRUE);
Sleep(200);
}
return 0;
}
0394↑のやつです
2006/03/14(火) 20:42:56ID:kIo9Nngk0395名前は開発中のものです。
2006/03/14(火) 21:04:56ID:WZQXg5CUWM_PAINTが発行されてから処理されるまでの間に垂直回帰と衝突し、
画面を書き換えながらデータを書き換えることになるから。
0396名前は開発中のものです。
2006/03/14(火) 21:37:47ID:vD4YSUxpチカチカする原因は背景消去のイベントが先に発生しているから。
いちいちWM_PAINTを発生させなくても、その場で書き替えれば解決する。
0397394
2006/03/14(火) 21:59:27ID:kIo9Nngk解決しました!ありがとうございます。
とりあえず、マルチスレッドのなかにGetDC()〜で書き込むことにしました。
>>395
すみません。液晶モニタです・・・。
0398名前は開発中のものです。
2006/03/14(火) 22:41:10ID:hFZrRBrc0399名前は開発中のものです。
2006/03/15(水) 00:52:52ID:bI4tObHl0400名前は開発中のものです。
2006/03/15(水) 19:47:42ID:1YotSJ4J0401名前は開発中のものです。
2006/03/15(水) 21:34:45ID:8Czfqo270402名前は開発中のものです。
2006/03/16(木) 07:21:50ID:Y/eNDDcTこことかかなあ?
ツール・スクリプト総合スレッド
http://pc8.2ch.net/test/read.cgi/gamedev/1012824335/
0403名前は開発中のものです。
2006/03/17(金) 17:38:12ID:8gDgsZth0404名前は開発中のものです。
2006/03/17(金) 17:44:59ID:X0dS9tB60405名前は開発中のものです。
2006/03/17(金) 22:57:51ID:xNtfEtiQ0406名前は開発中のものです。
2006/03/17(金) 23:08:20ID:Exobc+7Y0407名前は開発中のものです。
2006/03/18(土) 02:35:11ID:Su4tUZqNそこで皆様に質問です。
フレームバッファはブラーができ1るように3枚ぐらいもっとけとか描画は標準で2D→3D→2D→3Dの4つぐらいの
プライオリティ持っとくでしょとか3Dサウンド・ジョイスティックはいるとか視野角で描画するかしないかとか
ゲームのシステムにこれぐらいあれば大体足りるんじゃねなものを教えていただきたいです。
なにぶん経験が浅くどこまでをいれてどこまででとめておくのか判断がつきにくいので皆様の経験からアドバイス
いただければ幸いです。
ではよろしくお願いいたします。
0408名前は開発中のものです。
2006/03/18(土) 04:21:14ID:nGKJ4ycD0409名前は開発中のものです。
2006/03/18(土) 05:19:24ID:Su4tUZqN2D→3D→2D→3Dの順番でのプライオリティ
マウス・キーボード・ジョイスティックの入力
3Dサウンド(OGG・WAVE・MIDI形式に対応)
ムービーの再生ぐらいです。
主に描画周りで必要なものが聞きたいです。
0410403
2006/03/18(土) 07:23:59ID:95DqdFycレスありがとうございます。そしてすみません。
VC++で、
変数 x を用意して、LoadImage()を使い、
x=1の時はこのファイルをロード、
x=2の時はそのファイルをロード、
っていうのを、IF文を使わないでやる方法はありませんか?
(例えばJavaScriptの document.write("char" "+ (x) +" ".bmp"); みたいな感じでできればいいなと。
例の文がおかしかったらすみません。参考書見ながらです。)
改めてお願いします。
0411名前は開発中のものです。
2006/03/18(土) 07:43:03ID:ZGA0kyS7まずはC言語からやり直すべきだと思う。
>(例えばJavaScriptの document.write("char" "+ (x) +" ".bmp"); みたいな感じでできればいいなと。
もちろんこういうふうにできる。
0412403
2006/03/18(土) 07:57:01ID:95DqdFyc朝早くからどうもです。
できるんですか。
確かにC言語の文法をちゃんとやったほうがよさそうですね。
とりあえずその辺の項目が載ってるところらへんから読んでみます。
ありがとうございました。
0413名前は開発中のものです。
2006/03/18(土) 08:34:32ID:Ipz2AxPZ0414名前は開発中のものです。
2006/03/18(土) 10:42:29ID:4kSs+7jLオブジェクト(モデル)に対してグレアとかを使えるようにしたいんですが
複数のオブジェクトに使おうとした時にテクスチャにモデルかいてそのうえから
テクスチャはっつけてみたいなことをしてたらパフォーマンスがグレアを使用する
モデルの数分落ちるんですがそこらへんで何か対策やいい組み方ありませんでしょうか?
0415名前は開発中のものです。
2006/03/18(土) 16:31:55ID:yz7lWDB4Direct3Dにもパレットはあるが、機能がショボくて使いにくいので
2Pカラーは別データとして持つか、自分でパレットから変換して
使った方がいい。
0416名前は開発中のものです。
2006/03/18(土) 16:41:45ID:YpJRhIuV念のため言っておくとC言語ではできない。
0417名前は開発中のものです。
2006/03/18(土) 19:29:01ID:g+aAvW/Y0418名前は開発中のものです。
2006/03/18(土) 20:10:43ID:4wfna6z8エラーも出ず、普通に実行可能。
0419名前は開発中のものです。
2006/03/19(日) 00:24:36ID:uMD9RJsO0420名前は開発中のものです。
2006/03/19(日) 00:51:09ID:p7gnp8J4高校の教科書をおさらいしたあとは、
受験用じゃなく、ゲーム制作に関する書籍を読めば良いんですよね?
0421名前は開発中のものです。
2006/03/19(日) 01:49:18ID:GldnoIovいや、もっと割合が多いか?
0422名前は開発中のものです。
2006/03/19(日) 13:06:38ID:SjrbRmrHそれでもDirectX使ったほうが便利なの?
DirectXって派手な演出向けかと思ってるんだけど・・
0423名前は開発中のものです。
2006/03/19(日) 13:15:52ID:10+JNBXY0424名前は開発中のものです。
2006/03/19(日) 13:16:29ID:C5ZIma6z今までのDirectX使ったコード流用できるとかじゃなければ
別に使わなくてもいいと思うけど。
やりやすいほうでいいんじゃない。
0426名前は開発中のものです。
2006/03/20(月) 10:19:21ID:PMTGalObどんな原因が考えられますか?
0427名前は開発中のものです。
2006/03/20(月) 10:38:42ID:zTZlIC7i92.6%の確率でちゃんと初期化していない変数がある。
0428名前は開発中のものです。
2006/03/20(月) 10:54:59ID:PMTGalObおお、本当だ!解決しました!
ありがとうございました。
0429名前は開発中のものです。
2006/03/20(月) 16:45:48ID:kRMPXFjJコリジョンてのがちょっとよくわかりませんが、
あんまり高等な知識は必要ないってことでいいんですよね?
0430名前は開発中のものです。
2006/03/20(月) 17:28:00ID:cO2KdBDH衝突
collision detection
当たり判定
0431名前は開発中のものです。
2006/03/20(月) 17:49:26ID:kRMPXFjJってことは、むしろ数学のほうが遙かに重要なのか。
0432名前は開発中のものです。
2006/03/20(月) 18:20:36ID:jUMh4ML30433名前は開発中のものです。
2006/03/20(月) 19:56:44ID:ppKGyeLEこのゲームのエミュレーターサーバーを建てあげたいと
思ってます ttp://www.universalcentury.net/
まず何をしなければいけないか教えてください
0434名前は開発中のものです。
2006/03/20(月) 20:12:10ID:09TKgzyFまず質問に適した板とスレを探してからググルことを覚えるのと
「スレ違いかもしれませんが・・・」と言えば何してもいいと思ってるのを直す
0435名前は開発中のものです。
2006/03/20(月) 20:13:20ID:ppKGyeLE0436名前は開発中のものです。
2006/03/20(月) 20:20:15ID:/6hGTyX+じゃないと法的プレッシャー受けるだろ。
0437名前は開発中のものです。
2006/03/21(火) 00:44:46ID:TQgpKT+/エミュ鯖は犯罪だと理解する知能
0438名前は開発中のものです。
2006/03/21(火) 00:45:36ID:6PZPzHnr0439名前は開発中のものです。
2006/03/21(火) 00:50:03ID:RlAF5sQFダウト。
国内では判例がないのでグレーゾーン。
0440名前は開発中のものです。
2006/03/21(火) 08:36:02ID:v/XFEo4Jネットでの配布は公的な配布になり、エミュは二次創作になるから、
エミュを配布するには原作者の許可が必要だとオモ。
0441名前は開発中のものです。
2006/03/21(火) 09:01:36ID:ljH6QT8kそうすれば白黒はっきりするし
0442名前は開発中のものです。
2006/03/21(火) 17:27:40ID:CCrWP9uH企業から警告来ただけでみんな公開を辞めるから裁判にならないだけ。
違法の判例がないがかといって合法の判例があるわけでもない
0443名前は開発中のものです。
2006/03/21(火) 18:33:16ID:eiX902+O警告きたら辞めればいいやみたいなのがポンポン乱立するようなら、見せしめの可能性もある。
0444名前は開発中のものです。
2006/03/21(火) 19:04:55ID:fu1FQ/EMいわゆる二次創作ってのは、
著作物(創造的な表現で成る無形財産)の二次利用のことだろう。
で、二次創作の問題として話題になるのは基本的には著作権の侵害。
じゃあエミュ鯖のプログラムの場合はどうかというと
これ単体を配布しても著作権侵害にあたらないと考えるのが妥当だ。
なぜならこれ単体では絵も音も出ない。創造的な表現をしてくれない。
外部からの入力に応答して出力を返すだけ。つまりオリジナルの
ロジックを模倣しているだけであり、ロジックには著作権はない。
エミュ鯖で問題が生ずるとしたら、実用新案とか特許だと思われ。
>>439
だから白でも黒でもないから灰色なんだろ。
犯罪かどうかは人柱が証明するということで。
0445名前は開発中のものです。
2006/03/21(火) 19:09:15ID:fu1FQ/EM× >>439
○ >>442
0446名前は開発中のものです。
2006/03/21(火) 19:39:11ID:eiX902+O0447名前は開発中のものです。
2006/03/21(火) 20:01:10ID:3oAhIv5kあったな、ポケモン事件・・
0448名前は開発中のものです。
2006/03/21(火) 20:30:22ID:fu1FQ/EM繰り返しになるが、ロジックを模倣しているだけなら
著作権侵害には問えない。ちなみに同一性保持権は
著作権の一部。
配布パッケージの中に著作物の一部とか著作物を流用し
改変した(と立証できる)ものを含めるような厨なケースなら
同一性保持権の侵害で逝ける。
例えばプレステのエミュの中にBIOSイメージを入れて配布とか。
0449名前は開発中のものです。
2006/03/21(火) 20:46:36ID:fu1FQ/EM0450名前は開発中のものです。
2006/03/21(火) 22:22:14ID:niLQPGvoそこまで細かい話になると、さっぱり分からん。
個人的には即売会で売るのが犯罪にならないならば、特に気にならん。
0451名前は開発中のものです。
2006/03/21(火) 22:24:57ID:NZ2LYj5a鯖を即売会で売るのか?w
いやまあ、法律はよく分からん、という事だと思うけどさ。
0452名前は開発中のものです。
2006/03/21(火) 23:54:04ID:CCrWP9uH0453名前は開発中のものです。
2006/03/22(水) 03:04:40ID:2Rhu187Z規模にもよるけど某MMOの擬似サーバならDELLのデスクトップで十分だったよ
#色々と手は加えたけどね
■ このスレッドは過去ログ倉庫に格納されています