■ このスレッドは過去ログ倉庫に格納されています
Windowsゲームプログラミング 質問スレ
- 1 :うゆ ◆vvvK3Fcqdg :2008/11/06(木) 21:28:45 ID:lNn2skuQ.net
- ※回答する人も、質問する人も必ず読んでください
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
- 157 :148:2009/02/06(金) 23:19:27 ID:SU1u5PRJ.net
- >>150
ごめんなさい、回転行列がわかりませんorz
>>151>>152
私も同じような考えにたどり着きました
必死に考え直した結果こうなりました
まちがってるかな?
ttp://www.dotup.org/uploda/www.dotup.org21184.png
中心:緑丸
エンジン:青丸
出力方向:紫矢印
エンジンの出力ベクトルを中心点とエンジンを結んだ線とその垂直線を座標としたベクトルに分割し
赤を回転用のベクトル、水色を移動用のベクトルに分ける
あとは回転と移動をそれぞれ計算すればOK?
すいません日本語にも不自由しているようですorz
- 158 :名前は開発中のものです。:2009/02/06(金) 23:48:02 ID:T8ShVnXb.net
- >>157
それで合ってるよ。もっと正確に言えば、中心点ではなく重心。
あと、そこについてるのがロケットエンジンなら、普通は矢印は逆向きだな。
そこから真面目に回転速度を求めるには、「慣性モーメント」という知識が必要になる。
値は適当にでっちあげでいい。
- 159 :名前は開発中のものです。:2009/02/10(火) 15:41:10 ID:eV8ZtmO6.net
- .NETかMFCを勉強しようと思うのですが,
ゲーム開発だとどちらが役に立ちますか?
- 160 :名前は開発中のものです。:2009/02/10(火) 15:52:39 ID:Xj3fFujS.net
- どっちも微妙
言語はC++のみ?
- 161 :159:2009/02/10(火) 16:05:56 ID:eV8ZtmO6.net
- >>160
微妙ですか;
どの言語で学びたいというのは,特に無いですが,
C++がコード書いてる量多いです.
VBは入門書通して読んだので簡単なアプリケーションなら作れる程度で,
C#はJavaに似てるから読めるってくらいで,書いたことはないです.
- 162 :名前は開発中のものです。:2009/02/10(火) 16:12:06 ID:Xj3fFujS.net
- C++やってるなら、.NETはC#前提で考えたほうがいいかも。
MFCでゲーム部分で役に立つところは少ないと思うよ。素でAPI呼ぶのとかわらない。
どっちもウィンドウ作ったりイベントハンドラ使ったりするところは楽できるけど
そういうのを生かすゲームを作るのかどうかってとこだね。
言語とライブラリやフレームワークで選んで、それが.NETやMFCを使ってたら
それも覚えるって感じでいいんじゃないかな。
- 163 :159:2009/02/10(火) 18:33:00 ID:eV8ZtmO6.net
- 了解しました.ゲーム開発で使うといっても,
深い部分の機能まで扱う訳じゃないんですね.
一冊買って読もうと思ってましたが,
Webで調べて動かしてみる程度にしようと思います.
ありがとうございました.
- 164 :名前は開発中のものです。:2009/02/10(火) 21:26:47 ID:jpQUb+L2.net
- >>163
C++にSDKがシンプルで案外楽なんじゃないかな。
描画や音でハードなことやろうとしたらDirectXやOpenGL/OpenAL使えばいいしね。
- 165 :名前は開発中のものです。:2009/02/11(水) 12:06:33 ID:4NJho4Vs.net
- >>159
ゲーム本体作るなら、C++ + DirectX
ツール作るなら、.NET(C#)だな
- 166 :名前は開発中のものです。:2009/02/12(木) 20:13:23 ID:GF7pXsC2.net
- 3Dゲームには垂直同期とか異方性フィルタといったフィルタ機能が多く存在しますが、
こういったものの具体的なアルゴリズムが書かれてある書籍を教えて下さい。
よろしくお願い致します。
- 167 :名前は開発中のものです。:2009/02/12(木) 21:16:01 ID:qYzhx+29.net
- 君の「アルゴリズム」の定義は、おそらく一般的なそれとは異なっている。
- 168 :名前は開発中のものです。:2009/02/13(金) 03:30:08 ID:YfvPS2XS.net
- 異方性フィルタとか言い出す前に、
普通に素のモデルを画面に表示できるようになれって話だな。
- 169 :名前は開発中のものです。:2009/02/13(金) 10:16:54 ID:XaGVfN4Q.net
- >>167
どういうことですか?
- 170 :名前は開発中のものです。:2009/02/13(金) 14:18:20 ID:n2spZu5F.net
- >>169
垂直同期てなんですか
フィルタなんですか
アルゴリズムなんですか
- 171 :名前は開発中のものです。:2009/02/14(土) 17:18:16 ID:sx6BcV1l.net
- C++/DirectX でアクションゲームを作ってるのですが、色んなPCで同期をとるために経過時間を計測するのって、
一般的にどの関数使うんでしょうか?
あと、昔、DOSで作ってたころはVシンク割り込みでどうたらこうたら、ってやってたきがするんだけど、
これって今の液晶画面で計測できるもんなんでしょうか?
- 172 :名前は開発中のものです。:2009/02/14(土) 17:43:59 ID:9hSEub+0.net
- 時間の計測は QueryPerformanceCounter とか。
Windowsでは垂直同期の周期は環境によって全然違うので、
基本的には垂直同期に依存しないように作る。
- 173 :名前は開発中のものです。:2009/02/15(日) 00:36:23 ID:FJmkH997.net
- >>171
精度がミリ秒程度でよければ、timeGetTime。timeBeginPeriodで精度を上げるのを忘れずに。
高精度がいるなら、>>172
- 174 :名前は開発中のものです。:2009/02/15(日) 00:41:57 ID:brCH5Anb.net
- >>172
>>173
ありがとうございます。
多環境で同期をとるのにどの程度の精度が実際に必要かやってみないとわからないので、
教えていただいた関数をもう少し調べてやってみます。
- 175 :名前は開発中のものです。:2009/02/15(日) 19:09:59 ID:MYSF9VWq.net
- 垂直同期は
D3DRASTER_STATUS rs;
do{
pd3dDevice->GetRasterStatus(0, &rs);
・・・
}while(!rs.InVBlank);
とかやるといいらしい。
ループ内でスリープ入れないとCPU使用率が100%になっちゃうかな?
- 176 :名前は開発中のものです。:2009/02/15(日) 21:23:34 ID:A1rRuMYU.net
- メモ代わり。
MessageBoxがなぜか表示されない。グーグル先生曰く
WM_PAINTでBeginPaintとEndPaint処理をしてないからだと。
言われたとおりにしたら見事に解決した。
描画処理を別スレッドでやっててもWM_PAINTの処理は必要らしい。
windowsの中の人はよく分からんなぁ。
- 177 :名前は開発中のものです。:2009/02/16(月) 00:29:54 ID:7z4LXD+E.net
- WM_PAINTはDefWindowProcに流せば、中でBeginPaint/EndPaintを呼んでくれるはずだが。
- 178 :名前は開発中のものです。:2009/02/16(月) 08:35:55 ID:bKMsn7yg.net
- そこら辺はカスタムウインドウだかしない限りは自動で出来るはずだから、参考書でも眺めたら?と3年ほどプログラミングしてない学生が入ってみる
- 179 :名前は開発中のものです。:2009/02/16(月) 11:54:02 ID:0xRjldBE.net
- BeginPaint呼ばないと無効領域のクリアができないからだよ
クリアできないといつまでたってもWM_PAINT送り続けられる。
ValidateRectで消してしまうのも手だが。
- 180 :176:2009/02/16(月) 19:52:31 ID:RG1TxuqM.net
- >>179
ものすごく納得した。サンクス
自作のuiライブラリの処理が甘かったなぁ。
- 181 :名前は開発中のものです。:2009/02/22(日) 10:56:36 ID:JmJl5yfs.net
- オンラインで10×10マスのビンゴゲームをイメージして下さい。
参加者は、月1回オンラインで100個の数字を記入したシートをUPし、
毎日5個の数の発表を待ちます。
こんな感じのプログラムを創って貰うとき、何に注意して、どこに商談すればいいですか?
お願いします。
- 182 :名前は開発中のものです。:2009/02/22(日) 13:07:55 ID:9a/tyRQO.net
- なんだかすごい釣り針が…
- 183 :名前は開発中のものです。:2009/02/22(日) 15:53:56 ID:uv0okrQ5.net
- >>181
そのイメージの元となったビンゴゲームの開発元に
「絵をちょこちょこっと変えたバージョンを作って売ってください」って言うのが一番確実で手っ取り早い。
- 184 :名前は開発中のものです。:2009/02/22(日) 17:14:10 ID:9a/tyRQO.net
- >>183
こんなところで聞くようなイタイ業者にヒントも出すなよ。
色んな意味でろくな事にならないぞ。
- 185 :名前は開発中のものです。:2009/02/25(水) 15:43:56 ID:W/hwiF8T.net
- 仕様書をまとめたほうがいい
技術的には低の低
- 186 :名前は開発中のものです。:2009/02/26(木) 04:43:10 ID:EST0UxDP.net
- http://search.vector.co.jp/search?query=%83r%83%93%83S
- 187 :名前は開発中のものです。:2009/03/25(水) 20:42:40 ID:iHO/uHhQ.net
- ウィンドウを表示するプログラムを作っているのですがウィンドウが表示されず、
visual C++の挙動が変になります。(ずっと プログラム名(実行中)と表示され画面の配置も変になる)
どうすればよいのでしょうか?
コードは以下に晒します
#include <windows.h>
#define APP_NAME TEXT("Sample_MainWindow")
/* ウィンドウプロシージャ */
LRESULT CALLBACK WindowProc(
HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
){
switch(uMsg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
つづく
- 188 :つづき:2009/03/25(水) 20:43:23 ID:iHO/uHhQ.net
- int WINAPI WinMain(
HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR lpCmdLine, int nCmdShow
){
HWND hWnd;
WNDCLASS wc;
MSG msg;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND + 1;
wc.lpszMenuName = NULL;
wc.lpszClassName = APP_NAME;
hWnd = CreateWindow(
APP_NAME, TEXT("Window Title"),
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
100, 100, 400, 300,
NULL, NULL, hInstance, NULL);
/* メッセージループ */
while(GetMessage(&msg, NULL, 0, 0) > 0){
DispatchMessage(&msg);
}
return msg.wParam;
}
- 189 :名前は開発中のものです。:2009/03/25(水) 20:58:00 ID:cPG1Bp4Z.net
- showwindowが抜けてる、かも
- 190 :名前は開発中のものです。:2009/03/26(木) 03:35:13 ID:Q1jkMb06.net
- WS_VISIBLEがあるからShowWindowは必要ないかな
WNDCLASS構造体に値を設定しただけでRegisterClassで登録してないのが原因だと思う
- 191 :名前は開発中のものです。:2009/03/26(木) 10:22:58 ID:uoZMP3+M.net
- >>190 の通り。
RegisterClass(&wc);
をCreateWindowの前に。
- 192 :名前は開発中のものです。:2009/04/05(日) 21:54:31 ID:Ul2Xl6r0.net
- あんまりWindowsと関係無いのですが、C++でのメモリ確保方法について質問です。
ゲームでnewとdelを繰り返し使いまくると、やってられないから、
存在フラグを持って制御するように。
と、どこかで見た覚えがあります。
それならば、もうnewでメモリを動的確保ぜずに、
普通に静的宣言でいいのではないかと思ったのですが、
動的確保のメリットって何なのでしょうか?
私は仕事がハード畑一色の人なので、頭が固いです。
どなたか教えてくださいorz
- 193 :名前は開発中のものです。:2009/04/05(日) 22:34:27 ID:V3UuquCs.net
- ×ハード畑なので、頭が固い
○高卒なので、頭が悪い
- 194 :名前は開発中のものです。:2009/04/05(日) 22:38:51 ID:bmURRfR1.net
- >>192
例えばメモ帳を作るとき、読み込んだデータの長さは分からない。
こういうとき静的な確保だと、何メガバイト確保すればいいのかわからないし、
もし確保した量よりデータが大きければ扱えないし、小さければ、無駄になる
そこで、new/malocなどで動的に確保してやれば、必要な分だけ確保できる。
- 195 :名前は開発中のものです。:2009/04/05(日) 22:48:17 ID:8bGUAz8h.net
- >>192
使用メモリーが決まってて、制限以内なら静的確保で問題なし。
普通は全部持つ友もリーがはみ出るから、効率いい方法を探すだけ。
- 196 :名前は開発中のものです。:2009/04/06(月) 20:32:34 ID:wZso2H2m.net
- >>192
個人的には動的確保のほうが流れが分かりやすいけどね。
>>194のような柔軟性も持たせられるし。柔軟性を持つということは
コーディングでメモリ空間の大きさをやたら意識する必要も無くなる。
メモリ確保の速度の関係で、予め確保しておいたメモリ空間を使う
ってのはちょくちょく聞く話だけど、
そういう特別な事情が無い限り動的な確保が王道じゃないかなぁとは思う。
まぁ趣味でやるなら不正アクセスが無い限り自由にやりやがれって話ですよ。
- 197 :名前は開発中のものです。:2009/04/10(金) 05:55:47 ID:q4HGwHB4.net
- ゲームプログラミングの経験はあまりないのですが、
3DのMOを開発しようと思っています。
そこで開発環境についてお聞きしたいのですが、
簡単に調べて以下のようなものがあるのが分かりました。
・XNA
・Unrealなどのゲームエンジン
XNAはXbox360対応を無視して単にPC向け開発環境として見た場合、良い選択肢でしょうか?
またそういう用途で広く使われているのでしょうか?
Unrealなどのゲームエンジンは、やはりXNAに比べるとすばやく開発出来るのでしょうか?
どの程度自由度が制限されますか?
分かる方よろしくお願いします。
- 198 :名前は開発中のものです。:2009/04/10(金) 06:01:34 ID:q4HGwHB4.net
- あと、フリーのゲームエンジンでメジャーなものがあれば教えてください。
- 199 :名前は開発中のものです。:2009/04/10(金) 07:56:06 ID:xaOVHUcG.net
- RPGツクールでも使っとけ。
求めてるのはそういうお手軽にゲームつくれるツールだろ?
- 200 :名前は開発中のものです。:2009/04/10(金) 08:01:59 ID:q4HGwHB4.net
- そんなものを求めているとは一言も書いていません。
プログラミングの知識としては、OSアーキテクチャからアプリ・サーバ・WEB開発までいけます。
メジャーな開発環境はなんなのか、どんなものがあるのか
そういったトレンドを知りたいと思っています。
- 201 :名前は開発中のものです。:2009/04/10(金) 08:44:23 ID:3LDySn8E.net
- 生意気だから教えてあげないぷー
- 202 :名前は開発中のものです。:2009/04/10(金) 10:02:25 ID:o/eQJnMQ.net
- 俺ならXNA以外のエンジンを進める。XNAの欠点にXBOX用コントローラーしか
利用できない。XNA用のランタイムがほとんどのPCには入っていないので、
利用者に別途インストールをお願いしなければならない。XBOXゲーム機では
なんら問題ではないが。PCでは使いたくない欠点だ。
- 203 :名前は開発中のものです。:2009/04/10(金) 19:34:54 ID:ESPzFswh.net
- Ogreでも使ってろよクズが
- 204 :名前は開発中のものです。:2009/04/10(金) 19:48:05 ID:WdqvyJ6f.net
- >>197
Windowsの3Dゲーム開発で何が主流か?といわれたら、主流はない。
あえていうなら、DirectX。
XNAはありえない。
Ogreとかもないな。
UnrealやHalflifeのMODみたいな感じでゲーム開発使うのは海外では流行っているし、
情報あるから(ただし英語)いいかもしれない。
敷居も低い。
ただ、ゲーム開発の主流ではないと思うが。
- 205 :名前は開発中のものです。:2009/04/10(金) 19:48:54 ID:WdqvyJ6f.net
- > 敷居も低い。
1から3Dエンジンを作るよりも、って話ね。
- 206 :名前は開発中のものです。:2009/04/12(日) 10:37:36 ID:O+0G4WiN.net
- 別にPC前提ならXNAでもXBOXコントローラー以外も使えるけどな。
C#でやりたいというわけでもないなら、XNAじゃないほうがいいだろうな。
- 207 :197:2009/04/12(日) 11:22:43 ID:2pX9j9Yn.net
- レスありがとうございます。
個人でやるつもりなので
多少パフォーマンス面でデメリットがあったとしても
C#みたいなスピーディに開発出来る言語が良いんですよね。
その点、XNAはログイン処理とかまでフレームワーク化しているようで
おまけに基本的な事をやるにはサーバ要らずと言う点はスタートのし易さと言う意味では強力かなと。
>>203
Python OgreはPythonと言うだけで惹かれますね。
>>204
ランタイムだけでなくフレームワーク、エンジンレベルのものを使おうと考えています。
>>202>>206
貴重な情報ありがとうございます。
とりあえずXNA本を一冊読んで見ます。
- 208 :名前は開発中のものです。:2009/04/12(日) 17:48:24 ID:uJhs7hdp.net
- まて、XNAはフレームワークだろうけど、エンジンというほどじゃない気がw
OgreってのPython バインデイングもあるのね…。
せっかくだから、Panda 3DってのもPython+3Dエンジンだぜ
C#に拒否反応ないなら、(デプロイにユーザー開発者双方で手間かけてもいいなら)
Pythonとかでもいいよな。
- 209 :名前は開発中のものです。:2009/04/12(日) 22:03:27 ID:vkgd6Htu.net
- 質問です。2Dのゲームの場合絵を描くことについてですが
gifじゃないといけない理由ってありますか?
gifだと256色しかないんで別の拡張子で素材作りたいのですが。
pngとかjpgとかgifとか拡張子ありますがgif以外でもつくれるならば
別の拡張子で綺麗な絵柄で作りたいと思っています。
可能ならばメリットとデメリットってありますか?
- 210 :名前は開発中のものです。:2009/04/12(日) 22:28:24 ID:LCOFWzsh.net
- プログラム的な話で言えば別に色情報さえ読み取れるなら
どの形式だろうが或いは独自形式であっても問題ない
しかし、なにかのツクール系みたいなツールで作っていて
対応フォーマットがgifにしか対応してないっていうなら従うしかないんじゃない?
むしろgifのほうがライセンスの問題で使うべきではないんだが
DirectXであればbmp、png、jpg、tga、dds、あたりが標準で読める
- 211 :名前は開発中のものです。:2009/04/12(日) 22:44:13 ID:ZQ7DXobT.net
- DirectX != D3DX
- 212 :名前は開発中のものです。:2009/04/12(日) 22:45:13 ID:vkgd6Htu.net
- >>210
ありがとうございます、ツクール系ではなく普通に本勝って付録でついてる
サンプルプログラムを改造してゲーム作る予定です。
で、素材の絵を描いていたのですがドット打ちできないんで普通にフォトショップで
描いていたのですが不安になったんで質問させてもらいました。
アクションゲームを作ろうと思うのですがキャラクターのモーションとかも
pngやjpgでいけますか?gifアニメみたいにアニメーションにはできないと
聞いたのですが
- 213 :名前は開発中のものです。:2009/04/12(日) 23:35:32 ID:LCOFWzsh.net
- >>212
そもそもアニメーション情報を含めることのできる画像フォーマットを使ったとしても
ゲーム上でアニメーションさせるにはそのための機能を自分で実装しなくてはいけません
gifアニメーションで作ったとしても勝手に再生してくれるわけではないのですよ
一般的な方法でいうと
1枚の画像にアニメーションのパターンを全て含めて
画像のどの部分をどのタイミングで表示するのかを
プログラム側から指定してやることでアニメーションをさせます
プリーのツールでそういったアニメーションデータを作成してくれるものもありますが
それはあくまで画像の区切りやタイムテーブルのデータの作成を簡易にしてくれるものであって
それらを読み取ってアニメーションをさせる部分は自分で実装する必要があるのです
- 214 :名前は開発中のものです。:2009/04/12(日) 23:43:13 ID:vkgd6Htu.net
- >>213
ありがとうございます、それに関してはなんとなくわかります。(アニメーションは自分で実装)
でも描いてるうちに参考の画像見ると全部gifなんでgifじゃないといけない理由が
あるのかなあと気になっていたのです。
自分ドット打ちはできなかったんで・・・
- 215 :名前は開発中のものです。:2009/04/13(月) 00:03:20 ID:qsxqoxw3.net
- gifでないといけない理由はなにもない
単純にインデックスカラー対応で圧縮されてて
ファイルサイズが小さいからとかそんな理由と思われる
まさか、web上の素材サイトを参考にしてそう言ってるわけじゃないよね?
- 216 :名前は開発中のものです。:2009/04/13(月) 00:19:55 ID:bYodFX/G.net
- >>215
いや、mugenとかですね。
キャラの動きとかの研究にmugenのキャラを見てましたが全部gifだったんで
- 217 :名前は開発中のものです。:2009/04/13(月) 05:22:32 ID:DrRdSLAX.net
- 時代背景もあるんじゃないのか?
10年くらい前は256以下なら、pngよかgifくらいな時代だったはずだし(まあ、同時にgifライセンスうぜーって時期でもあったが)
俺はよくわからんので。
mugen詳しい人よろ
- 218 :名前は開発中のものです。:2009/04/13(月) 07:03:54 ID:kKYIuKnL.net
- おれは盲目的にbmpとpng(^-^;
さて
>サンプルプログラムを改造してゲーム作る予定です。
一応PGなら改造って言葉は使わずあくまで「参考にして」ってしとけ
たぶんそんな機会は訪れないと思うが足元すくわれるぞ
- 219 :名前は開発中のものです。:2009/04/13(月) 08:23:11 ID:GN8f0M0n.net
- どうせ出来ないんだからいいんじゃないの
- 220 :名前は開発中のものです。:2009/04/13(月) 15:20:22 ID:yYZDsjyV.net
- それを言っちゃあおしめえよ
- 221 :名前は開発中のものです。:2009/04/30(木) 14:07:29 ID:XSOMXuai.net
- XNAでインベーダーゲームを作ってるんだけど
敵キャラを下にゆっくり移動させるのにはどうしたらいいんだ?
ちなみに右に行って下
左にいってしたってかんじ
- 222 :名前は開発中のものです。:2009/04/30(木) 16:14:51 ID:Szb967NA.net
- if (mode == 右に動かす)
{
(敵を右に動かす処理)
if (一定量右に行ったか) mode = 下に動かす;
}
else if (mode == 下に動かす)
{
(敵を下に動かす処理)
if (一定量下に行ったか) mode = 左に動かす;
}
else if (mode == 左に動かす)
{
(敵を左に動かす処理)
if (一定量左に行ったか) mode = 下に動かすpart2;
}
else if (mode == 下に動かすpart2) // ←これは else でもいい
{
(敵を下に動かす処理)
if (一定量下に行ったか) mode = 右に動かす;
}
これじゃあかんの?
- 223 :名前は開発中のものです。:2009/04/30(木) 17:45:01 ID:6x5SV4ES.net
- Dictionaryを使えと何度いえb(ry
- 224 :名前は開発中のものです。:2009/05/02(土) 11:18:09 ID:1icd8u4m.net
- 指定RECTの領域を別RECT(複数)を見てその領域を除いた
複数のRECTに分割したいんだけど複雑すぎてどうすればいいのか
たとえば、指定が{0,0,100,100}で見るのが{21,21,79,79}だけなら
分割後は{0,0,100,20}{0,21,20,79}{80,21,100,79}{0,80,100,100}
の4つになるみたいにしたいんだけど、うーん
- 225 :名前は開発中のものです。:2009/05/02(土) 11:44:19 ID:3Ey8sJwq.net
- 分割するという発想じゃなくて
「指定のRECTを含まないRECTを一つ除外する」という処理を
再帰的に指定のRECTと同じサイズになるまで繰り返せばいいんじゃね?
- 226 :名前は開発中のものです。:2009/05/02(土) 12:21:12 ID:hJ68J4gV.net
- 面白い問題だと思ったが、メンヘラが出てきてしまった。
こういう奴は自分のネタ書き込みが実装できなくても、
他人のアイデアに延々ケチを付け続けるので、書き込むのが既にウザイ
- 227 :名前は開発中のものです。:2009/05/02(土) 12:28:05 ID:1icd8u4m.net
- なんだかよくわからない人がいますが
>>225さんありがとう、何とかなりそうです
- 228 :名前は開発中のものです。:2009/05/02(土) 13:38:05 ID:3Ey8sJwq.net
- ですよねー
実装もできないひとにアイデアだけ出されてもムカッとしますよね
すでに質問主さんも解決されてるようですが
念の為、簡単なソースを上げておきますね
http://www5b.biglobe.ne.jp/~mya_a/DirectX/main.html
- 229 :名前は開発中のものです。:2009/05/02(土) 14:23:04 ID:n7KvWJCZ.net
- すげー 前提無視すればお前の妄想でも
コード書けるだろうよw
本物のキチガイ歪みねーな
- 230 :名前は開発中のものです。:2009/05/02(土) 15:17:44 ID:AaWksVDK.net
- >224
指定RECTを複数RECTの座標軸で分断する
(例題の組なら9つに別れる)
分断されたそれぞれのRECTと複数RECTを判定して取り除く
残ったRECT同士で辺の共有を調べ、長さが揃えば結合する
こんな感じでどうよ
- 231 :名前は開発中のものです。:2009/05/02(土) 15:58:10 ID:1icd8u4m.net
- >>228
実はまだ解決できていなかったのでソースはありがたいです
>>230
なるほど、複数RECTの座標軸で分断して結合ですか
思い浮かばなかった
お二方どうもありがとう、どうにか実装してみます
- 232 :名前は開発中のものです。:2009/05/03(日) 01:41:43 ID:DXIo6YRI.net
- スルースキルの高さに感心した
- 233 :名前は開発中のものです。:2009/05/03(日) 22:48:03 ID:MdPMSTHC.net
- 考えられる最小構成でウインドウ作って画面描画とかは何もしないプログラムで
フレームレートを調べたらSleep(0)で2000前後、Sleep(1)で500前後でした
スペックは CoreDuo1.6Ghz GeForce7400go です
こんなもんでしょうか?
もっと凄まじい数値がでるかとwktkしていたのですが…
そして実際に2Dや3D描画をしてしまうと50以下の数値になってしまいます。
フレームスキップ無しではこんな程度なのでしょうか?
- 234 :名前は開発中のものです。:2009/05/03(日) 23:54:24 ID:fxWPMoUR.net
- みた感じノートのスペックだしそんなものでは?
- 235 :名前は開発中のものです。:2009/05/03(日) 23:56:09 ID:Xp9/OEVA.net
- はーどうぇああくせられーしょんできてないんじゃ
- 236 :名前は開発中のものです。:2009/05/04(月) 00:10:43 ID:y/3FOMzs.net
- >>233
Sleep(0)はともかく1の方に関しては、WinMainの頭にでも
timeBeginPeriod(1)って入れてみな。
- 237 :名前は開発中のものです。:2009/05/04(月) 00:12:46 ID:SSrJcNUp.net
- ちっぷせっとどらいばをさいしんにしてみるとか
- 238 :名前は開発中のものです。:2009/05/04(月) 00:57:21 ID:zCXNz15P.net
- 最近のモバイル版ゲフォには省電機能っぽい何かが無かったっけ
- 239 :名前は開発中のものです。:2009/05/04(月) 06:49:48 ID:ivjAH+EW.net
- >>そして実際に2Dや3D描画をしてしまうと50以下の数値になってしまいます。
どれくらいの量の描画だか分からないけど、常駐ソフトを数本起動してる気がしる。
CoreDuo1.6Ghz GeForce7400goでちょっと描画したら60切るとか普通ないでしょう。
- 240 :名前は開発中のものです。:2009/05/04(月) 11:13:52 ID:g3YbI5fi.net
- 電源プランを省電力とかにしてるとガツンと速度落ちたりするし
そもそもモバイル用GeFoってnVidiaとかPCショップが謳ってるほど性能高くないよ
メモリがDDR2だったりすることもあるしバス幅も64とか32とか
7400GoだったらCPUパワーでカバーできるFFベンチならある程度のスコア出せるけど
純粋にGPUパワーを図る3DMarkなら
ハイエンドノートの1/10とかデスクトップに比べたら1/15程度のスコアしか出ない
市販のソフトでもちょっとオブジェクトが増えたらすぐカクカクする
- 241 :名前は開発中のものです。:2009/05/04(月) 13:51:13 ID:+gA/YHQh.net
- [test]test
- 242 :名前は開発中のものです。:2009/05/04(月) 13:54:28 ID:st/gePPw.net
- やってみたやつを公開してスレの暇人にも試してもらえばいいじゃない
- 243 :名前は開発中のものです。:2009/05/04(月) 14:16:05 ID:kjiUunSo.net
- >>233
うちは、Core2DuoT7200no2GHz & GeForce7400goだが、
OpenGLでテクスチャ付ポリゴンを500枚くらい描画しても、
Sleep(0)で1000FPS超えるぞ。
60FPSに固定した場合は、一秒間に990msくらいはSleepしてられるよ。
- 244 :名前は開発中のものです。:2009/05/04(月) 17:48:30 ID:NkdQPUap.net
- CPUの拡張命令とかGPUの制御言語使えばよくね
もちろんハードの制約を意識しなければいけないが
- 245 :233:2009/05/04(月) 20:31:34 ID:VkgPC6sB.net
- http://down11.ddo.jp/uploader/download/1241436560.zip/attatch
こちらが実行ファイルとそのソースファイルです
みなさんのPCでの数値とかも知りたいです
- 246 :233:2009/05/04(月) 20:32:46 ID:VkgPC6sB.net
- パスワードは fps です
- 247 :名前は開発中のものです。:2009/05/04(月) 20:48:30 ID:+gA/YHQh.net
- 3D描画は
- 248 :名前は開発中のものです。:2009/05/04(月) 21:03:12 ID:/bA/nhvO.net
- 結果
Pen4 2.8G 1487 500
Core2 2.5G 3049 999
描画が無いから、frame per second じゃないなw
>>234が妥当な見解で、Sleep()はそう言う挙動をする物なんだな。
そして>>243から、233は自分の3D描画を見直す必要がありそう
- 249 :233:2009/05/04(月) 21:28:13 ID:VkgPC6sB.net
- http://down11.ddo.jp/uploader/download/1241439738.zip/attatch
パスワードは fps です
画面消去と裏画面フリップのみですが60fpsまで下がります
ちなみにDirectX SDKのサンプルSkinnedMeshは550fps近く出ているのが謎です
プログラムの組み方で変わるのでしょうか?
- 250 :名前は開発中のものです。:2009/05/04(月) 21:32:35 ID:kjiUunSo.net
- >>246
>>243ですが、
(0)2150、(1)950
といったところ。
そちらの環境では描画が、垂直同期になってるとか?
なんにしても、ゲームで60fps固定で動かしたい、とかなら、
別にゲームループ用のスレッド立ち上げて、そこではメッセージ処理させずに、
次のフレームまでの残り時間をSleep()とかにした方がいいかも。
- 251 :名前は開発中のものです。:2009/05/04(月) 21:35:17 ID:kjiUunSo.net
- >>249
コキコの入れ違いか。
なぜかDLできないので試していないけど、
60fpsに落ちるなら、まず間違いなく垂直同期がONになってるね。
- 252 :名前は開発中のものです。:2009/05/04(月) 21:46:32 ID:ivjAH+EW.net
- >>245
1000と350だった。Athlon(tm) 64 X2 6000+(3.0GHz)なんだけど、しょぼん。
SetWindowTextが遅いな。プリントしたら10000超えたよ。
>>249
垂直同期させない場合、
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE ;
にすると、そのままのが出るよ。
試してないけど。
- 253 :233:2009/05/04(月) 22:09:47 ID:kwNCoBb+.net
- なる程、試してみます
皆さんの数値も参考になりました
ありがとうございます
- 254 :名前は開発中のものです。:2009/05/04(月) 23:27:39 ID:NUebcNJ2.net
- 質問してもいいですか?
プログラムを勉強しようと思うのですが、最初は何から始めた方が良いんでしょうか。
本当に何も知らないので、できれば参考図書なんかをあげてもらえませんか?
お願いします。
- 255 :名前は開発中のものです。:2009/05/04(月) 23:33:39 ID:kjiUunSo.net
- >>254
まず言語はC++にしとけ。慣れてきてから色々制限のある言語だったら泣くに泣けないから。
コンパイラはVS2008EE無料あたりをインスコ
そしたらは「猫」でググる
乙。
- 256 :名前は開発中のものです。:2009/05/04(月) 23:53:33 ID:v8MyF9Tp.net
- 初心者はC++は非常に難しいのでは
とりあえずはCを大分理解できないと厳しいんじゃね
と思うんだが俺が馬鹿すぎるのかなあ
- 257 :名前は開発中のものです。:2009/05/05(火) 00:18:25 ID:2Wnl8Pwh.net
- 俺も初心者だけど、C++でクラスやテンプレートを読めるおかげで
ライブラリやネット上の公開コードとかの恩恵を受けられるのは大きいよ
総レス数 973
284 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200