1 :
デフォルトの名無しさん:
2 :
デフォルトの名無しさん:2001/03/26(月) 02:27
向こうにもレスしちまったが、これじゃダメなん?
#define FRAME_INTERVAL 16;
bool isLooping = true;
DWORD gate_time = 0; // 1回目は問答無用で更新
MSG msg;
while(isLooping)
{
DWORD tick = timeGetTime();
if( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
{
if(msg.message == WM_QUIT)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
if(tick > gate_time)
{
tick(); // 更新
gate_time = tick + FRAME_INTERVAL;
}
RenderVisuals(); // 描画
}
}
フリーソフトのゲームかな。
こんなところばかりこだわってゲームの中身を作らず、
ぽしゃるプロジェクトが多いんだろうな、という例でしたね。
4 :
デフォルトの名無しさん:2001/03/26(月) 04:01
tickが重なってる、、、鬱だ。
tick_timeにでもしておいてくれ
5 :
デフォルトの名無しさん:2001/03/26(月) 04:06
俺だったらゲームのメインルーチンはノーウエイトでグルグル回して
描画を1/60秒おきに更新するよう作る。
>>4 RenderVisuals()
でやってる内容がどうかで決まりますよ たぶん。
tick();
で、キャラクターの移動をやってるなら、
プログラム的には問題ないでしょうけど、たぶん。
(約 1/60 で「キャラクター」が動いてるようになる)
キャラ移動、レンダー、待ち ってのが私のゲームプログラム
方法だから。
やっぱ、移動計算、レンダー って順番で繰り返したいんですよ。
レンダーを二回やって、移動計算とやるのなら
計算二回、レンダー2回やって行きたいと。
(ただ、VGAが遅すぎる物を使っているからってのも有るけど)
勘違いだったらすまぬ。
>>5 もしかして、WM_TIMER とか 1/60で発生させるような作り方ですか?
グルグル回すって、描画前にいったい何回の処理をしているのか
気になったものですから。
7 :
デフォルトの名無しさん:2001/03/26(月) 05:15
>>3 同意。プロが作るゲームだってそんなの厳密になんか
やってないのに、素人程度でこんなの頑張ったって少しだって
ゲームに反映することはありえない。それに2,4,5,6が今
話してる内容はリフレッシュレートスレにさらに追求した形が
書いてあったはず。理論をプログラムに直せないなら厨房決定。
己等の腕じゃこんなことにこだわってる場合じゃない。
あと話すにしても垂直同期を考慮する場合としない場合とで
大きく話がかわる。少なくともそれをハッキリしろ。
いや、あのね、確か1の要求が更新を1/60でやって、
描画だけガンガンまわしたいって事だと受け取ったからああ書いただけで。
俺はもうちょっと別な方法使ってるよ。
いわゆるdtを掛けてやるやつね。
>もしかして、WM_TIMER とか 1/60で発生させるような作り方ですか?
Flipを使用すれば、そこで自動的にウェイトが入る(はず)から、
プログラム側でわざわざタイミングを取る必要が無いってことでしょ。
移動処理はdt掛けてやるから、描画が一回間に合わなくても、
補正されるし。
>>7 前スレから読み進んでください。
俺はリフレッシュレートスレよんでたし、一応あそこ参考に実装しました。
しかし、今回1の出してきた情報はメッセージループ部だけで、
環境(DirextX,GDI,OpenGL)についての情報はまったく無かったし、
どうしようもないのですがね。
しかも前スレ886あたり意味不明で、描画処理は連続で呼び出されるけど、
更新あたりが不明で、880を参考に1/60で座標更新したいんだな、とおもったわけで。
まぁ、厨房呼ばわりするならそれでも良いけど、
>理論をプログラムに直せないなら厨房決定。
主語が不明で理解できないね。
10 :
デフォルトの名無しさん:2001/03/26(月) 08:15
11 :
4:2001/03/26(月) 08:39
>>10 だから、リフレッシュレートなんて関係ないんだって。
1はそんなことまで考えてないよ
あっちはリフレッシュレートのみならず
ゲームループ全般の話だから、やっぱあちらだと思うナリが。
>>4 なるほど、了解。
読違いすまねー
>>11 >>12 とりあえず、メインループ聞かれたから答えたんですよ。
これ以上最適化したいと思うのなら、別の板に行ってくださいと
言う感じで。
14 :
デフォルトの名無しさん:2001/03/30(金) 10:36
みなさん、PCゲームでの最低動作環境ってどれくらいに設定されてます?
とりあえず、オレの場合。
Pentium200MHz以上。ゲームパッド必須。
自力描画系。アクションゲーム。
15 :
デフォルトの名無しさん:2001/03/30(金) 10:58
16 :
デフォルトの名無しさん:2001/03/30(金) 11:01
メーカー製の市販の最低線あたりを推奨にしてます。
いまだとセレロン500〜あたり。
17 :
14:2001/03/30(金) 13:29
あー、なるほど。
最低環境でなく推奨環境を示しておくわけですな。
つかAタイプだとまさにそうしないといけませんね・・・。
うちはB-1タイプでして。
推奨環境でいくと、Pen2 300MHzくらいかなー。
あと、低解像度対応のビデオカード(藁
18 :
吾輩は名無しさんである:2001/03/30(金) 13:38
吾輩はCeleronの300MHzを対象にしておる。
300Aお買い得〜ってことで、このライン近辺で
マシン買い替えor組み替えた趣味人が多いであろうことを考慮してのもの。
19 :
デフォルトの名無しさん:2001/03/30(金) 14:26
俺のマシン=推奨環境
>>19 フリーだとそうだよね。大概。
で、リフレッシュレート非固定で補間処理だけやっとくと。
21 :
デフォルトの名無しさん:2001/04/07(土) 07:10
下がってるのでage。
エーと、単語について教えてください。
V-Syncっていうのは、ディスプレイの電子銃が上から下まで行ってまた上に戻ってくるまでの時間、
V-Brancっていうのは、V-Syncの中の、電子銃が上に戻ってくる時のかかる時間
で合ってますか?
23 :
デフォルトの名無しさん:2001/04/11(水) 14:52
まちがってsageちゃったんでage!
24 :
デフォルトの名無しさん:2001/04/11(水) 15:57
25 :
デフォルトの名無しさん:2001/04/12(木) 18:56
>>22 V-Syncてのは時間の事ではないのでは?
V-BlankはV-Blank (Time)の事だとは思いますが。
V-Syncは信号の名前だと思うんですが、詳しい人plz
26 :
デフォルトの名無しさん:2001/04/12(木) 23:27
>>22 電子銃が下まで行ったあと、上に戻ってくるまでの時間が垂直帰線期間(vertical blanking time)
電子銃が上に戻ってきた瞬間のタイミングを提供するのが垂直同期信号(vertical synchronization)
27 :
デフォルトの名無しさん:2001/04/14(土) 04:58
C言語のhello worldからはじめて
DOSでテトリス程度のゲーム作りたいのですが
初心者用参考書でいいのありますか?
28 :
デフォルトの名無しさん:2001/04/14(土) 09:13
hello, worldが終わってないのに質問する時点でアウト
俺もそー思う。
>>27 あおりっぽく見えるかもしれないけど、28,29はマジレスだと思われ。
hello, worldが出来てからまた聞きにこようね。
えーと、最近 3D に手を出したのですが、
正直、脳みそが足りないのか 剛体力学について、なんか
判ったような判らないようなそんな感じです。
ゲームに使える剛体力学って感じで、「日本語」でわかりやすい
Webか本など有りましたら教えていただきたいのですが。
どうか、よろしくお願いします。m()m
>>32 この人のページは何回も言った記憶があるのに、見つけられなかった...
ありがとうございます。
助かります〜。
34 :
デフォルトの名無しさん:2001/04/14(土) 23:15
今んとこゲームでの力学シミュ考えると、ペナルティ法が楽なのかなあ。
35 :
デフォルトの名無しさん:2001/04/15(日) 03:24
>>14 >Pentium200MHz以上。ゲームパッド必須。
ゲームパッド対応ならともかく、必須はマズイんじゃないか?
PCユーザーでパッド持ってる奴ってそうそういない。
市販のゲームでもほとんどマウス・キーボード操作でしょ。
36 :
デフォルトの名無しさん:2001/04/15(日) 03:44
キーボード操作といえば……
大抵のキーボードで、3つ以上のキー同時に押すとうまく効かない場合が多いッスけど
この法則、なんか分からないッスかね?
手元にある106と112で全然違うし、
Javaアプレット作って店のPCからいろいろ試してもやっぱり違うし。
38 :
デフォルトの名無しさん:2001/04/15(日) 04:31
>>36 組み合わせで、データ量を減らしているんだよ。あんまり同じ押しを
多用するゲームもどうかとおもうよ。SHIFTとCTRLとALT
あたりは同時押しでも大丈夫そうだけど。
キーカスタマイズもつけてみては?
39 :
14:2001/04/15(日) 09:00
>>35 ども。いいところ突っ込んでくれました。
うちは、アーケードとかコンシューマのノリでアクション系を作ってるんでどうしてもそうなってまうんです。
パッドでのボタンの機能と配置を考慮して作ってるんで、
キーボードでやってほしくないというのがあって必須と言っています。
# もちろん説明書には推奨ボタン配置みたいのを書いてます。
とは言え、キーボードもデフォルトで対応してますけどね。
そこまで考えてるならアーケードとかコンシューマで作れよ、とかよく周りに言われてます(藁
>>36 キーボードを分解して中のLSIの種類をみれば分かるかも。
42 :
デフォルトの名無しさん:2001/04/15(日) 17:58
43 :
デフォルトの名無しさん:2001/04/16(月) 00:56
線分と円の交差判定式を教えておくれ。
レベル低い質問でスマン
44 :
デフォルトの名無しさん:2001/04/16(月) 02:09
Z,Xあたりのキーを使ってると、同時押しが認識されない
組み合わせが出てきちゃう。だからCtrl、Shiftにしようね。
45 :
デフォルトの名無しさん:2001/04/16(月) 02:16
うん、三つまでということは無いみたいよ。特定の組み合わせが駄目みたい。
漏れのきぼは¥2000の安もんだけど、←+↓+Z+Xの同時押しをちゃんと認識してたよ。
46 :
デフォルトの名無しさん:2001/04/16(月) 02:17
47 :
43:2001/04/16(月) 02:26
まずは2Dでお願いします。
最終的には3Dで円筒と円筒の交差判定やってみたい。
(バーチャファイターで使ってるらしい)
48 :
デフォルトの名無しさん:2001/04/16(月) 04:34
>>47 円は真円ということで。
交差判定だけなら、点と直線の距離を求め、その距離が円の半径以下なら交差していると言えます。
で、点から直線におろした垂線との交点が線分上にあれば、その線分と円は交差していると言えます。
円の中心点の座標をpとして直線のベクトル式を(P,V)(線分をx0→x1とするとPはx0Vはx1-x0)
とすると点から直線におろした垂線との交点qは
q = P + ((-P・V + P・V) / (|V|^2))V (・は内積)
垂線の足qが求まったので、点pと直線(P,V)の距離は
|q-p|
これが円の半径以下なら円の線分は交差している可能性がある。
あとは点qが線分の範囲内にあるか判定するだけ。
(x1-x0)・(q-x0) > 0 && |V| >= |q-x0|
間違ってたらすまそ……
>最終的には3Dで円筒と円筒の交差判定やってみたい。
>(バーチャファイターで使ってるらしい)
円筒よりもカプセルのほうが良いとおもわれ。カプセルというのは半径と線分のデータを持ったもの。
両端が円でキャップされてる円筒との判定はちょっと複雑で重いし、あたり判定に使うには向いて無い。
49 :
デフォルトの名無しさん:2001/04/16(月) 04:41
カプセルなら線と線の距離を求めるやり方で、あとは上の円との交差判定と
同じような感じで出来るよ。
50 :
デフォルトの名無しさん:2001/04/16(月) 05:57
>>44 CtrlとShiftあたりが一番安全なのは確かだけども(元々同時押しするキーだしねえ)
やっぱりカーソルorテンキーと3つ押し効かないケースそこそこあるっす。
わりかし頭遺体
51 :
デフォルトの名無しさん:2001/04/16(月) 11:08
点と直線の距離の方程式
AH^2 = (ax1+by1+c)^2 / (a^2 + b^2)
あ、有限直線なら48の言うように、
回転した方がいいな。
53 :
デフォルトの名無しさん:2001/04/16(月) 11:47
つーかイイページがあった。
ttp://ahirujigen.hoops.ne.jp/d3dtip02.htm 3Dのコリジョンデータは線分と半径を持った「カプセル体」(実はドリキャスのライブラリがこの形式を使ってる)
で持つようにして、カプセル同士の接触判定は線分同士の距離を求めて、その距離がお互いの半径の合計と同じか、
それ以下だったら、接触。
まず例によって2直線間の距離と垂線との交点を求めて、交点が線分上にあるかどうかなどをチェックして、最終的
に2線分間の距離を出す。
54 :
デフォルトの名無しさん:2001/04/17(火) 01:23
ああ、ごめんまちがってた。
48で書いた線分と円の交差判定だけど、これも「線分と中心点」の距離を求めないと。
垂線との交点qが線分上に無かった場合は、線分の端点のうち交点qに近いほうと中心点との
距離を求める。それが半径以下なら接触。
55 :
43:2001/04/17(火) 01:27
うーん、思っていたより難しい…鬱。
交点の求め方すらよく分からないよ。
とにかく算数の本片手に頑張ってみます。
レスサンキュー。
Dreamcastってコリジョンチェック用のライブラリがあるんですか。
羨ましいな。
以前似たような質問があったときは自分でヤレとさんざん
叩かれていたがずいぶんヤワになったものだ>all
57 :
デフォルトの名無しさん:2001/04/18(水) 01:45
普通真っ先に思いつくのは、円の式と直線の式の連立方程式の解を求めて
交点を求めて……っていう回り道することにならないか?楕円じゃなけりゃ
そんな必要無いのに。
こう言う些細な知識も「車輪の再発明」という無駄を省くためにもシェアして
いきたいなぁと思うんだけど。
つーか上のやり方より効率の良いアルゴリズム無いかなぁ……
58 :
43:2001/04/21(土) 01:07
外積・内積の概念がよくわからないよ〜。
2本のベクトルを(x0,y0,z0)(x1,y1,z1)とすると、
内積 = x0*x1 + y0*y1 + z0*z1
外積
x = y0*z1 - z0*y1
y = z0*x1 - x0*z1
z = x0*y1 - y0*x1
なぜこうなるのか分からん!
理屈は置いといて、使い方を考えるだけでいいのかな?
59 :
デフォルトの名無しさん:2001/04/21(土) 04:29
どうしてそうなるのかもなにも、それが内積と外積の定義です。
内積とか外積というものが先にあって、その求め方がこうです、では無く、
ベクトル同士の位置関係を計算するのに便利なこの式を内積・外積と呼びましょう、
というだけのことです。
内積はベクトルのなす角度、外積は面の方向を出すためのものと覚えておけば十分です。
60 :
デフォルトの名無しさん:2001/04/21(土) 20:10
61 :
デフォルトの名無しさん:2001/05/05(土) 03:11
DirectXのヘルプから抜粋
>Microsoft® Direct3D® の優れたパフォーマンスを実現するための鍵となるの
>は、ワールド内のオブジェクトを収める信頼性あるデータベースを構築すること
>である。これはラスタ化やハードウェアの改善より重要なことである。
なるなる。
でも具体的にはどうしたらいい?おせーて!
>>61 データベース構築による具体的なメリットを述べよ。
ちゃんと書けたら教えてやらないでもないでもない。
63 :
デフォルトの名無しさん:2001/05/05(土) 05:08
>>61 テケトーにハッシュとリストで管理したらいんじゃないの?
SQLみたいじゃ遅くてしょうがないし。
よく知らないからツッコミ歓迎。
64 :
61:2001/05/05(土) 05:53
とりあえず思いつくメリットとしては、すでに同じ物を読みこんでいるんなら
それを再利用する、ってのが自然に出来るって事ですか。
とりあえず今はstringがキーのmapで実装してて、テクスチャだったら
ファイル名がそのまんまキー値って感じでやってるんですけど、マテリアル
ソートの事考えるとそんな単純なもんで良いのかなぁ、と。
あ、あと参照カウンタはつけました(藁
う〜ん、しなきゃ逝けないことってそんだけ?
65 :
デフォルトの名無しさん:2001/05/05(土) 17:45
自前のタスク処理(システムに依存しない)で
強力(個々のタスク専用の記憶域が確保でき、
配列並みの速度で読み書きできる)
かつ奇麗(メモリ制限のない、GCを必要としない)
かつシンプル(出来れば言語処理系を作るまではしない。
仮想機械程度なら、まあOK)
な方法ってないですか?
特に"奇麗"という事にこだわってます。
個々のタスクにレジスタやらスタックやらとして
ほにゃららバイトを固定して割り当てる、なんていうのは
簡単なんだけど、そこにメモリの制限が出てきてイヤ。
いろいろ探したけど、なかなか見つからない・・・
ンナモン、アルワケナイカ
メモリ制限が無いってあんた、システム依存以前に物理的に不可能だ。
67 :
65:2001/05/05(土) 22:47
>>66 何も積んである以上のメモリがほしいって訳じゃなくて・・・
要するにスタックみたいに必要に応じて拡張できればよいって話。
68 :
デフォルトの名無しさん:2001/05/06(日) 02:33
ゲーム屋が言う所のタスク処理ですよね?たいていのことは「アクタークラス」とか
呼ばれている仕組みで十分間に合うと思うけど。
とにかく1ループ毎に特定のメンバメソッドが呼ばれるんだから、その中で描画処理を
まったくせずに、何かの待ち行列の内容だけチェックしたりとかしても構わないわけで
すし。メモリの確保もその中でしちゃえば良いだけですし。
もし、処理の単位が1ループ毎になるのが気に入らないのだとすると、1タスク1スレ
ッドにするか、スクリプト言語+仮想マシンってことになっちゃうけど、前者は非現実
的、後者は手間がかかるし処理が重い。
# 3Dゲームエンジンのランタイムデータベースの構築法の話しをもっとしたいのだけ
# ど……新スレ立てたほうが良いのでしょうか?
>>68 興味あるので新スレきぼーん
よろしくお願いします
71 :
mario:2001/05/06(日) 11:34
今日、マリオカートをやってて思ったのですが、ああいったレースゲームのように
自機は傾いたり回転するだけで周りの画面が迫ってくることで実際に走ってるように
見せたい場合、周りの風景はどうやってコースに合わせて描画させたらいいんでしょうか
>71
試行錯誤でパラメータ決める
ビューを切り替えてるだけだろ。
74 :
デフォルトの名無しさん:2001/05/07(月) 03:45
・2Dソフトウエアレンダリング(自力描画)
ってどのような感じでやっています?
私は、バックサーフェスのVRAM(システムメモリ)ロックして
直接、データを書きこんでいますが、
フルスクリーンは普通なのに
ウインドウモードで、半透明描画やると、重くなるのです。
なぜでしょうか?
AGPボードで、サーフェスはシステムメモリにいれています。
なんか違う方法ではやいっていうのがあったら教えてください。
DOSは勘弁。
75 :
74:2001/05/07(月) 03:47
>AGPボードで、サーフェスはシステムメモリにいれています。
PCIバスボードでシステムメモリやったら、
なんかおそくなったし。
訳わからんです。
メモリに関しても教えて欲しいです
>74
自力描画のシステムでスピードは重要なんですか?
>>74 えーとわりきって全部、DIBSectionで全部メインメモリ(システムメモリ)に確保するとなかなかよいです。
いわゆる、最終的にウインドウか、サーフェスだかにBltするときだけハードウェアを頼る形です。
よほど遅いマシンでない限り(MMXなにそれ?AGPなにそれ?みたいなマシン)、
フルスクリーンだろうが、ウインドウモードだろうがほとんど速度はかわらなくなります。
この板にはソフトレンダ経験者が何人もいることがわかってるので
もっと有用なレスつけてくれる人を期待しよう(藁
78 :
デフォルトの名無しさん:2001/05/09(水) 01:27
256色で半透明って、足し算した先のパレット番号に合成した色を入れておく方法しかないんですか?
これでやると半透明の物が2つ重なった時の処理が面倒なんですが。
DirectX的に何か上手くやってくれる方法はありますか?
79 :
78:2001/05/09(水) 01:32
あ、今はDIBSection使っています。
何か便利なやり方があるならDirectXを使おうと思っています。
80 :
デフォルトの名無しさん:2001/05/09(水) 01:45
81 :
デフォルトの名無しさん:2001/05/09(水) 06:28
82 :
81:2001/05/09(水) 08:11
>81
CreatureJungle16は違った。CreatureJungle256なんだけど、
なかった。すまん
83 :
77:2001/05/09(水) 08:56
うちのところもも81の方法でやってるヨ
84 :
78:2001/05/09(水) 20:17
ありがとうです。
ハイカラーの変換テーブルのサイズの大きさにビビってたけど、上手く出来そうです。
って、320*240 より小さいんですね。
点滅は… 最後の手段として…(笑
85 :
デフォルトの名無しさん:2001/05/09(水) 20:22
っていうか、今時ニゴロはないだろ。
2Dゲーだと256でも十分な場合がある。
そういえばこの前、ドッターさんに256色は多すぎと言われたぞ(w
高FPSだと点滅はかなり有効な手段だよ。
コンシュマー系のゲームでもよく使われてたよ。
88 :
74:2001/05/10(木) 06:49
どうもです。
とりあえず、DIB使って比較してみます。
私は現在16bitColor使用していますが
とびでばいん体験版
見て、640x480に近い描画(Ysは、ゲーム画面が小さい)が
300Mhzでも動くので256Colorやって見ようかなと。
半透明濃度を変えてるのは、やっぱり
その濃度分のテーブル持ってるのかしら。64K*8段階とか
89 :
デフォルトの名無しさん:2001/05/10(木) 11:29
>>81 YsIIEternalって256色だったの?
信じられん…。256色でマジであんな美しいエフェクトがかけられるのか?
90 :
77:2001/05/10(木) 12:36
>>88 うちは強引に8段階分テーブルもってやったぞ(w
ちなみに、CreatureJungle256だと違う方法でやってた。
確かRGBで計算して擬似パレットテーブルでパレットインデックスに変換してやってた。
処理速度はかかるかもしれないけれど、濃度は細かく指定できるっぽい。
ソースが公開されてるはずだから参考にするといいよ。
91 :
デフォルトの名無しさん:2001/05/11(金) 20:41
プログラミングではないのですが、RPGの戦闘バランス調整は
どのように行うのが効率がいいのでしょうか?
完成品を遊びこんで直す以前にダメージなどの算出公式を作るのに
良い方法はありますか?
良い方法があれば教えてください。
ありません。
>>91 ダメージ算出式を作る良い方法など無いが、その式が妥当かどうかは
大体計算でわかるだろ。
このスレ読むより確率統計の教科書読みな。
94 :
デフォルトの名無しさん:2001/05/15(火) 06:52
>>77 >最終的にウインドウか、サーフェスだかにBltするときだけハードウェアを頼る形
って、BitBltでいいのですか?これは、ハードウエア使うのですか?
詳しいこと聞きたいです。
96 :
菟:2001/05/16(水) 13:32
BASICで簡単に作れる「クイズゲーム」はC言語でも造れるんですか?また造る場合
どのくらいのプログラムの量になりますか?BASICの構造は理解できるけど、C言語の構造
は理解できん。
97 :
債務不履行の名無しさん:2001/05/16(水) 14:16
>>96 スレ違いじゃ。
>>95 94氏じゃないけどDirectDrawのBltってDirectDrawSurface間だけでは?
77氏の方法はシステムメモリ上のBitmapをDirectDrawSurfaceのDCを取得し、
Win32APIのBitBltで転送すると思ってたんだけど違う?
今ちょうどDirectDrawに手を出しててその部分で悩んでるんですが…
よく聞く手法だけどパフォーマンスが心配。(特にWin2000とか)
沈み気味なんでage
98 :
債務不履行の名無しさん:2001/05/16(水) 14:18
>>96 スマン、スレ合ってる。
鬱氏DirectXと間違えてた。逝くよ…
>BASICで簡単に作れる「クイズゲーム」はC言語でも造れるんですか?
Cでも簡単に作れます。
>また造る場合 どのくらいのプログラムの量になりますか?
実装の方法によって違います。
凝った事をすればそれだけプログラム量は増えます。
>BASICの構造は理解できるけど、C言語の構造は理解できん。
俺はBASIC知らんのでノーコメント。
100 :
77:2001/05/16(水) 17:33
自分のライブラリではフルスクリーン時、最終的に
・DirectDrawのSurfaceに描画後Flipするか
・ウインドウ(ハンドル)に直接描画するか
を選べるようにしています。
前者だと
1.あらかじめ、DirectDrawのプライマリSurface、バックSurfaceを生成しておく
2.システムメモリに確保したオフスクリーンにゴリゴリ描く
3.バックSurfaceのDCをゲット、そのDCにBitBlt
4.Flip
となります。利点は、FlipでVSyncを待つことでちらつきが少なくなること。かな?
後者だと
1.システムメモリに確保したオフスクリーンにゴリゴリ描く
2.ウインドウハンドルからDCをゲット、そのDCにBitBlt
となり、DirectDrawSurfaceは一切つかいません。
# やむを得ず、フルスクリーンにするためにDirectDrawは生成しますが
かなーり、古いマシンだと前者より早いです(藁
注意点は、8bitモードの場合、256色フルに使えないことです。
いまどきのマシンだと、フルスクリーン環境で後者を選ぶ意味はないと思います。
ちなみに、ウインドウ時は後者オンリーです。
101 :
77:2001/05/16(水) 17:36
あやういところは、バシバシ突っ込んでやってください。
あと、もっといい方法があると思うんで他のソフトレンダ系の人の意見も聞きたいです。
81にも出てるけど、Ysってスゴスギ。どうやってんだろ。
102 :
97:2001/05/16(水) 21:21
>>100 やっぱBitBltですよね。となると95はデムパ?
私が以前書いたライブラリは完全にDirectDrawを排除した後者のタイプ。
解像度変更だけにDirectXってのも変かな?と
しかしこれに飽きていっちょシューティングでも作ろうかと思い立ってDirectXに手を出しててます。
でもSystem上のBitmapからSurfaceへの転送じゃぁこの手の動きのあるゲームに使えんのかいな?と、ちと疑問。
エロゲならともかく、アクション系でこの手法は無理では?
104 :
95:2001/05/16(水) 22:54
>>102 電波男です。
BitBlt自体、DirectXで使用するのは、
Drawで作成したサーフェースにロードしたイメージ等を貼付けるとき
しか使わないから。
DirectX でシステムメモリサーフェース作って、
そこで直接書換えで、blt使えば良いんじゃないの。
ビット毎に書換えたいエフェクトなど有る場合は。
ただのスプライトなら、普通に抜き色指定出来るから
VRAM to VRAM でやった方が早いからね。
ゴメンな電波で。
鬱だ死のう
−−−−−−−−−
||
Λ||Λ
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
105 :
97:2001/05/16(水) 23:38
本当にマジでスマン。
俺もコレ↓よくわかってなかった。
>DirectX でシステムメモリサーフェース作って、
ハナシの流れからすると”システムメモリサーフェース”ってのはCreateDIBSectionとかで作った
単なるHBITMAPオブジェクトの事で、転送はBitBltを使ったデバイスコンテキスト経由じゃネーノって思ってた。
でも調べたらDirectXドキュメントにちゃんと書いてあったヨ。
・ディスプレイ・メモリが消費された場合や明示的にリクエストされた場合、システム・メモリにも存在することが可能である。
・DirectDrawは、このサーフェスをディスプレイ・メモリに作成する。しかしディスプレイ・メモリに入りきらない場合には、サーフェスはシステム・メモリに作成される。 このときDDSCAPS 構造体のdwCapsメンバ には、サーフェスをシステム・メモリで作成しなければならない場合にはDDSCAPS_SYSTEMMEMORYフラグを、ディスプレイ・メモリで作成しなければならない場合にはDDSCAPS_VIDEOMEMORY フラグを、それぞれ使用する。指定した場所にサーフェスを作成できない場合は、エラーが返される。
↑コレの事だったのね。当社比120%で無知な俺が悪い。
かなり鬱だ。
後を追うから涅槃で待って。
−−−−−−−−−
||
Λ||Λ
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
106 :
77:2001/05/17(木) 00:05
>>102 爆速ではないけどそこそこスピードはだせるんで、
3Dでないならアクション系でもなんとかなりますよん。
107 :
デフォルトの名無しさん:2001/05/17(木) 01:51
>>106 それこそ、最近の速いマシンなら十分ですね。
ビデオカードの個体差をまったく無視できるから、結構イイかも。
108 :
77:2001/05/17(木) 05:47
>>107 いまどきそれくらいですね、利点は(w
加算合成やらスプライト変形やらもDirect3Dで代用できる時代ですし。
109 :
95:2001/05/17(木) 15:03
>>105 それの事です。
>>108 もうそろそろ、3D扱えないグラフィックボード完全無視
ジーフォース必須でも問題ないですよね。
>>109 日本でゲーム作ってる限りノートユーザーは無視できないよ
まあ、彼らに氏んで欲しいのはおおむね同意ではあるのだが…
111 :
95:2001/05/17(木) 17:50
>>110 ノートパソコンで3D扱ったゲームをやるという根性が
既に納得できない…
せめて、マニュアルに
「ノートパソコンは、仕事で使う為の物です、ゲームには対応していません」
とか書きたい。
…ウツ
112 :
77:2001/05/17(木) 19:55
ですよねえ。ノートパソコンで3Dゲームできないって文句言うなって。まったく。
とかいいつつ、オレの開発環境ノートだったり。鬱氏。
nage♪
----------------------
題目: アニメーション作成に特化したプログラミング言語と開発ツール
概要:
ゲーム等、アニメーションを扱うプログラムを開発するにあたり重要な要素として多数のオブジェクトを並行的に処理する、画面のレイアウトを行う、画像や音データ(リソース)を管理するといったものがあげられる。これらの作業を積極的に支援する開発環境Tonyu Systemを作成した。Tonyu Systemは、プログラミング言語Tonyuとそれをもちいたアプリケーション開発ツールからなる。
Tonyuの処理系は、各オブジェクトに最低1つのスレッドを割り当てオブジェクトの振る舞いを個別に定義できる。各スレッドは仮想機械上で実行されOSのスレッドを用いた場合より少ないリソース量で並行処理を再現する。一方、開発ツールを用いることにより、各オブジェクトを視覚的に配置することが可能である。Delphi,JBuilder等のRADツールではGUI部品の視覚的な編集が可能であったが、Tonyu Systemは、これをアニメーションにおけるオブジェクトに対して行える。
また、このシステムは、多くユーザに積極的に開発をしてもらうための仕組みを提供する。作成したアプリケーションは実行可能形式で配布可能だが、同時にソースコードを埋め込み、他の人による改変を許可することが必須となっている。
-
東京大学情報基盤センター 田中哲朗
http://www.tanaka.ecc.u-tokyo.ac.jp/~ktanaka/
114 :
デフォルトの名無しさん:2001/05/19(土) 03:29
デスクトップでもまともな3Dビデオカード載ってるとは限らないんぢゃあ。
115 :
95:2001/05/19(土) 07:42
>>114 そう言う人は、
「あなたのディスクトップは3Dに対応していません、VGAをパワーアップした後、
再度挑戦してください」
とマニュアルに書きたい。
ジーフォース以上必須と書くつもりですし。
PS.
DirectX8を今日触ったのですが、
Direct3DSurface8のDCを手に入れる方法が判りませんでした。
よって、DIBからそのままサーフェースLockRectして転送するしか
無さそうです…。
鬱だ死にたい。
116 :
95:2001/05/19(土) 07:44
ageとこ。
117 :
つじっこ:2001/05/19(土) 09:24
ども、つじっこです。
えと、GDIについての質問です。
BMPを透過させたいのですが、DirectXなしで。
void Paint(HWND hWnd)
{
HDC hdcScreen;
HDC hdcSrc, hdcWhiteMask, hdcBlackMask, hdcMask;
HBITMAP hbmSrc, hbmWhiteMask, hbmBlackMask, hbmMask;
PAINTSTRUCT ps;
COLORREF DefColor;
InvalidateRect(hWnd, NULL, FALSE);
hdcScreen = BeginPaint(hWnd, &ps);
hdcSrc = CreateCompatibleDC(hdcScreen);
switch(FacePatNum){ //BMP選択
case 0:
hbmSrc = LoadBitmap(hInst, "MYBMP0");
break;
case 1:
hbmSrc = LoadBitmap(hInst, "MYBMP1");
break;
case 2:
hbmSrc = LoadBitmap(hInst, "MYBMP2");
break;
default:
hbmSrc = LoadBitmap(hInst, "MYBMP0");
}
SelectObject(hdcSrc, hbmSrc);
DefColor = SetBkColor(hdcSrc, RGB(255, 0, 255));
hdcWhiteMask = CreateCompatibleDC(hdcSrc);
hbmWhiteMask = CreateBitmap(BMP1_X, BMP1_Y, 1, 1, NULL);
SelectObject(hdcWhiteMask, hbmWhiteMask);
BitBlt(hdcWhiteMask, 0, 0, BMP1_X, BMP1_Y, hdcSrc, 0, 0, SRCCOPY);
hdcBlackMask = CreateCompatibleDC(hdcSrc);
hbmBlackMask = CreateBitmap(BMP1_X, BMP1_Y, 1, 1, NULL);
SelectObject(hdcBlackMask, hbmBlackMask);
BitBlt(hdcBlackMask, 0, 0, BMP1_X, BMP1_Y, hdcWhiteMask, 0, 0, NOTSRCCOPY);
SetBkColor(hdcSrc, DefColor);
BitBlt(hdcSrc, 0, 0, BMP1_X, BMP1_Y, hdcBlackMask, 0, 0, SRCAND);
hdcMask = CreateCompatibleDC(hdcSrc);
hbmMask = CreateCompatibleBitmap(hdcSrc, BMP1_X, BMP1_Y);
SelectObject(hdcMask, hbmMask);
BitBlt(hdcMask, 0, 0, BMP1_X, BMP1_Y, hdcWhiteMask, 0, 0, SRCCOPY);
BitBlt(hdcScreen, 0, 0, BMP1_X, BMP1_Y, hdcMask, 0, 0, SRCAND);
BitBlt(hdcScreen, 0, 0, BMP1_X, BMP1_Y, hdcSrc, 0, 0, SRCPAINT);
ご指摘お願いします。
>>115 >Direct3DSurface8のDCを手に入れる方法
なかったような気が。
サンプルがあったとおもったら、確かDirectX7の相当を使ってたってオチだったと思われ
>>117 インデントしないと見る気にならないよヽ( ´ー`)ノ
121 :
95:2001/05/19(土) 10:02
>>119 コメントが無いから読みづらいと思う僕は…
とりあえず、ビットマップそれぞれが何か書いてないと。
(ソースから想像できるけど、想像通かかなり謎)
昔codeguruにalpha ブレンドのサンプルがあった。>117
つーかまず検索しろよ
123 :
つじっこ:2001/05/19(土) 12:04
インデント・・・コピペしたらこうなったんで。
コメントも文を短くするために省略。
codeguru・・きいたことあるようなないような・・
そうですね、検索してみます。
ゴロゴロでてきそうだ・・
いろいろご指摘ありがとうございました。
124 :
95:2001/05/19(土) 12:26
>>つじっこさんへ
DIB作れば簡単に出来るのに…。
125 :
デフォルトの名無しさん:2001/05/19(土) 21:40
TransparentBltじゃだめか?
いまさらWin95サポートしてやる必要もないし。
>>Win95
まだ結構いるんだなーこれが。
とはいっても、今のご時世、3DゲームとかだとWin95サポートどうしようかなんていってられんな・・・。
そんなやつのハードは大抵、3Dなんかまともに動かないだろうし。
127 :
95:2001/05/20(日) 02:26
って あれ?
ここって、業界の人も書き込んで居るんでしたか。
すんません。
フリーソフトとかでゲーム作るなら、DirectX8必須でGeForce2必須でとか
言えるけど…
市販品じゃあ言えないわな。
ゲームのオブジェクトを管理する場合、
似非タスク方式に比べてマルチスレッド方式が優れている点って
どんなのがあるんでしょうか?
個人的には、1フレーム毎の処理をきっちり区切れて、少なくとも自分のタスクに
制御が来ている間は他のタスクが消えたりしない似非タスク方式の方が
ゲームには合っているような気がするのです。
あと、スレッドを何百個も生成するとシステムに負担がかかったりしませんか?
逆に、1つのスレッドで複数のオブジェクトを扱うなら、結局そこで似非タスク的な
処理を行う訳ですよね?
煽りとかではなくて、本当に素朴な疑問です(似非タスクって言葉が嫌いな方すみません)
>>128 オブジェクト一個一個にわざわざマルチスレッドを使う人などいないと思うが・・・。
誰が言ってたの?
ほんとだ(藁
132 :
95:2001/05/21(月) 13:37
>>128 何処かにその事が書かれててレスした者だけど。
一応Win9x or NT以降のしっかりとした?マルチタスクシステムじゃなくて、
内部でタスク切替えのルーチンを持ったタイプのタスクシステムらしいですから
必ず全ての処理を一周するようなシステムみたいです。
だから、処理的には似非タスクと同じ処理になるみたい。
(僕の読解能力が低いなら逝って来ます)
>>132 内部的には擬似タスク。使用者から見ればスレッドってことかな?
だから「疑似タスク」って呼び名はだなあ……。
そんなに普及させたいですか?
疑似でなく擬似ヽ( ´ー`)ノ
擬似タスクって何ですか?
擬似マルチタスクのことですか?
マルチスレッド式だと、CPUが沢山載ってる環境で
動作速度が向上するかもしれない。
いまどき個人でも2個くらいのっけてる人多いんじゃないかな。
また処理の途中で制御を返してあげたりとか面倒な手続きがいらないので
時間がかかるタスクを生成することもできる。
タイムアウトになるまでポートを監視しつづけるスレッドとか。
逆に自前制御の擬似マルチタスクだと、一つのリソースに同時に二つが
アクセスするということがありえないから、
クリティカルセッションとか面倒なことを考えなくていい。
生成とか削除とかも完全に自分の制御下でできるから安心だし。
138 :
デフォルトの名無しさん:2001/05/21(月) 23:56
擬似タスクて、Bio掲示板の
老年ゲームプログラマの世迷い言のアレか?
>>135 疑似も擬似も似たようなもんじゃゴルァ
>そんなに普及させたいですか?
というか、単に自分が長年使ってきた言葉に固執してるだけだと思われ。
一般的に、ヘンな用語を何度指摘されても平気で使うようなプログラマは
関数や変数の命名もことごとくヘンだから、
かなり一緒に仕事したくない感じではあるが。
λ_λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( `ー´) < どーでもいいんじゃネーノ?
/ ;つ \____________
(人_つ_つ
ゲーム作るのにHumanMDL使ってる人いる?
146 :
95:2001/05/22(火) 14:25
>>133 使用者から見ても、疑似マルチタスクです。
スレッドは、使用者が何も考えなくても動き続けて欲しいですから。
>>137 適材適所って奴ですね。
PS.
それにしても、高々 疑似タスク 疑似マルチタスク くらいな言葉なのに
ドーデモいいんじゃないっすか?
方言みたいな物だし。
>>145 どちらも本気で走ってない
Λ_Λ マッテー
∂/ハ)ヽヽ Λ_Λ / ̄ ̄ ̄ ̄
|ハ`∀´ノ ( ´∀`)< あはは
≡( つ つ c( つ \___
人 Y 人 Y
し(_) 〃 し(_)
148 :
つじっこ:2001/05/22(火) 16:10
また、おじゃまします〜
えと、透過したら、デスクトップが透けて見えますよね?
なんか、codeguruで検索してひっかかったプログラムを真似しても
できなかったので・・なんか心配になってきました。
ウィンドウのスタイルはPOPUPですけど・・大丈夫ですよね?^^;
>擬似タスク馬鹿話
用語論争ですか。もう飽き飽きですよ。
ローカル用語をペロっと書いてしまう奴もアホ。
それを鬼の首を取ったように噛み付く奴もアホ。
大抵の場合、
前者はくたびれた現場の技術屋さん。
後者は世間知らずの神経過敏な学生さん。
ちなみに俺、過去は後者で今は前者でございます。
どうです、救いようが無いでしょう。俺の告戒に
免じてこの馬鹿論争は止めてくれないか。
> それにしても、高々 疑似タスク 疑似マルチタスク くらいな言葉なのに
>ドーデモいいんじゃないっすか?
えっと、なにげなくローカル用語を使ってるだけならどうでもいいんですが、
どうも以前から「それって擬似タスクですね〜」みたく
まるで一般的な言葉でもあるかのように堂々と啓蒙する御仁がいるようなので、
不毛と知りつつつい一言言ってしまう次第です。
言葉そのものについても、「擬似マルチタスク」はプリエンプティブ・マルチタスクから
相対的に見て擬似とついてるわけですが、マルチを省くと何が擬似なのか意味不明、
(プリエンプティブだろうがコオペラティブだろうが、タスクはタスクですから)
しかもタスクと言いながら、なぜかタスク管理機構全体のことを指しているようなので。
たぶんここらへん↓から次々伝染してるんじゃないかという気はするんですけどね。
http://www1.odn.ne.jp/giggle/hotate/shoot/step03.htm >>149 了解。私の主張はこれで全部ってことで、これでおしまい。
>>150 >了解。私の主張はこれで全部ってことで、これでおしまい。
フェアな文字コミュニケーションのコツを教えます。
>>150の書き込みに対し了解の意思を示するならば
持論を展開せず、了解の意思のみを書くほうがより
「スマート」です。
>>151 スマートかもしれませんが、フェアとまで言ってしまうのはどうかと。
自分のよってたつところを明確にするのはいいことではないのでしょうか。
第三者的には発言の理由もあきらかにしないまま終了してしまうのは、
なんか後味悪いですから。
ここで議論しても仕方ないことなのでsage
ま、簡単な話なんだけどね。
主張を続ける意思があるならば、続ければよいのさ。
その場合、止めてくれという声に同調するのはナンセンス。
主張もするし、止めるとも宣言するのは、捨て台詞と等価。
相手の反論を塞ぐ効果もあるので、議論の場に良い雰囲気
を与えない。これ一般論。
>フェアとまで言ってしまうのはどうかと。
その通りだ。2chでフェアも糞も無いかモナ( ´∀`)
余計な事書いてスマヌ。忘れてくれい
通りすがりの厨房なんですが、
擬似タスクダメっていう人は、擬似マルチタスクと言えば良い、
という理解でいいんでしょうか。
あるいは擬似マルチタスクシステムとか?
元スズキ総理大臣とスズキ元総理大臣との違いみたいなもんでしょうか。
今は苗字変わったから元スズキ総理大臣でも構わない、とういうことは
あるんでしょうか。
「擬似タスク」だと
タスクっぽいけどそうでもないような……という、
タスクの概念そのものにかかわるものに聞こえます。
マルチタスクっぽいけどそうでもないような……という意味合いで使うなら
擬似マルチタスクって言わないと。
はぁ、宗教論争的で嫌やねぇ
161 :
デフォルトの名無しさん:2001/05/23(水) 00:20
前に言っただろうが。
マルチタスクじゃなかったらそもそも「タスク」なんて概念が生まれないって。
つまりタスクって言った時点でマルチタスクを内包してんだよ。
しかしどうしてそんなことにこだわるかね。
>>161 あなたはそれで勝手に納得してるかもしれませんが、
俺らはあなたでもあなたのママでもないので、
勝手に省略されてもわかりません。
たすきとタスクはどうちがうの
芸は身をタスク
ははは
さて、相談室らしいムードに戻そうか。>ALL
初心者も歓迎、駄スレ立てる前にここおいで〜。
ふふふ
マターリ
170 :
デフォルトの名無しさん:2001/05/23(水) 01:09
DirectX未経験者ですが、今からDirectX7以前とDirectX8のどちらから入ったほうがいいのでしょうか?
DirectX8の入っているマシンはまだ少ないので、やはり7以前からやった方がいいのでしょうか。
ヒヒヒ
7>170
173 :
デフォルトの名無しさん:2001/05/23(水) 02:21
170へ。
初心者のくせに気にする観点が違うんだよ。
自分のマシンでも動かしたことがねーお前に話したってわかるのかよ。
しかもダイレクトエックスなんて最新版入れるにキマッテンダロ?
まだ入れてる人が少ないだ?あ?
馬鹿かてめーは。
そもそも8入れても7や6でも開発できんだよ。
もう一つ炒っておくと俺はこの系統の質問をするやつがゲームを作り上げたところを見たことがない。
大抵できもしない異機種動作にばかり力を入れてゲーム本編を作る事無く終了。
状況によっていろいろ。
・新しいモノが好き。
・DirectDrawが無くても平気。
・ランタイム無けりゃダウンロード&インストールさせる。
→ DirectX8が無難。
・DirectDrawを使いたい。
・ランタイムがOSに標準インストールされているほうがいい。
→ DirectX7以前が無難。
※各OSに標準インストールされてるDirectXのバージョン
WinNT4 → DirectX3
Win98 → DirectX5
Win98se → DirectX6.1
Win2k → Direct7.0
WinMe → Direct7.0
(※OEM版は除外)
176 :
174=175:2001/05/23(水) 02:22
177 :
174=175:2001/05/23(水) 02:22
178 :
デフォルトの名無しさん:2001/05/23(水) 02:26
異常です。
>>173 まぁまぁ。
ここは相談室だから、マターリな。
┌──────────┐
│ |
│ キチガイ警報
>>178 .|
│ |
└―――──――───┘
ヽ(´ー`)ノ
( へ)
く
181 :
デフォルトの名無しさん:2001/05/23(水) 02:34
別にキューアンドエーじゃねーんだ。
相談なんだから、意見を出しあうのが主だろ。
俺の意見が逝ってよしでもそれは一つの意見なんだ。そうだろう?
ソンナワケネーダロ
>>173=181
ダイレクトエックス
キューアンドエー
いや、なんとなくさ
183 :
デフォルトの名無しさん:2001/05/23(水) 02:39
いやつーか流れから逝って俺でいいだろ?
>>181 >俺の意見
おいおい、番号ぐらい名乗れよ。
誰か分からんぞ?
185 :
デフォルトの名無しさん:2001/05/23(水) 02:41
哀モードだと記号とか数字とかいちいちめんどくせんだ
7と8は、グラフィックまわりについてはまったく違うので、
7のスタイルが好きか、8のスタイルが好きかで決め手いいのでは?
仕事でやるんならアレだが、趣味だったら自分が一番面白そうだと思ったものが一番だ。
俺は仕事なので5でやってる。
6は情報がほとんど集められなかったので(書籍やWebで)避けて、
7以降はWindows98が必須になってしまうので、断念。
187 :
デフォルトの名無しさん:2001/05/23(水) 02:45
エロゲの人かね?
3Dやるなら7ぐらいがお手ごろ。
>>181=173という仮定で
>別にキューアンドエーじゃねーんだ。
>相談なんだから、意見を出しあうのが主だろ。
質問の質の良し悪しを定義するのは困難である。
あえて基準を設けるなら、個々人が自らの技量を
基準にした相対評価、つまり主観論です。不毛。
>俺の意見が逝ってよしでもそれは一つの意見なんだ。そうだろう?
レスをよく読もうぜ。誰もキミの書き込みを否定してないんだよ。
>>173なんてマターリしようぜと書いてるだけだし。落ち着こう。
スマン、マターリしようぜと書いてるのは
>>179だった。
ゲームプログラミング相談室ってなぜか荒れやすいよね。
>>190 そうですねぇ。言ってしまえばゲーム系スレ全般がそうだね。
なんでだろう、良い見方をすればしっかりこだわる人が多いのかな?
アプリ系プログラマと違って実行速度の追求とか大変そうだし。
ゲームだとWindows95、Pentium133MHz、メモリ32MB、VRAM1MBくらいの
スペックの奴らも相手にしないといけないからねー。
>>190 ゲーハー厨が混じってるせいだと思われレ
194 :
170:2001/05/23(水) 05:19
とりあえず7から触ってみることにしました。
今DirectX8.0aSDKをダウンロードしています。
相談できるくらいになったらまた来ます。
195 :
デフォルトの名無しさん:2001/05/23(水) 05:51
>192
そんなん相手しなくて良いよ。
そんな低スペック志向で商品価値のあるモノできる?
技術ないエロゲプログラマの逃げ道かい
エロゲは抜けさえすれば商品価値ある。
あと転売用初回特典。
商品価値とは何か?
>>195 逆だろ。
総じて低スペックマシンのユーザが多いから、
快適に動かさせるために技術力を付けなきゃならない。
クロック数を計算しながらアセンブラでコーディングするのが
今のエロゲーの実情なんだよ。
>198
ごく一部のアクションゲームのエロゲーなら判る。
しかし9割はほぼ一枚絵のアドベンチャーゲームだからなあ。
画面のワイプエフェクトをアセンブラでコーディングしたりするのが
プログラマの頑張りなのかな。
200 :
デフォルトの名無しさん:2001/05/23(水) 07:37
それが売り上げに直結しているかどうかなんて調べたことなんて一度もないんだろうね。
低スペックなマシンで快適に動かしたいなら話は簡単、なにもしなければいい。
この決断がどんなに意味のあることかエロゲプログラマには何故か理解できないらしい。
大切なことなんだよ。
元々技術を語ってるスレじゃないよ。
誰も基本技術以上のことは喋らないし喋りたくないだろ。
202 :
デフォルトの名無しさん:2001/05/23(水) 09:31
>>192 >ゲームだとWindows95、Pentium133MHz、メモリ32MB、VRAM1MBくらいの
>スペックの奴らも相手にしないといけないからねー。
それだけのスペックがあれば、かなりすごいゲーム作れます。
203 :
95:2001/05/23(水) 09:43
ゲーム作るのなら、最低ラインは
GeForce2 Windows Me or NT2000 とか、
CPUは、P-III 800Mz とかにすればいいのに。
そうすれば、いや、そのレベルでやっと凄い3Dのゲームが作れるような気がします。
とか、エロゲー以外がターゲットの場合とか言ってみるテスト。
>>202 DOS で、自分で3D描画エンジン書いて作るのなら、凄い物が作れそうですけど…
かなり時代に逆行してると思われます。
日本の伝統的な「fpr 低スペック」はこの際無視したひ。
エロゲーを熱く語りたい奴はPCゲーム板に逝ってくれ。
>>198 >クロック数を計算しながらアセンブラでコーディングする
クロック数を計算か・・・・。
哀愁漂うオプティマイズ手段だな。
206 :
デフォルトの名無しさん:2001/05/23(水) 11:39
>>205 80x86程度のCPUのニーモニックで、
オプティマイザ付きのコンパイルを期待するんで無いよ。おい。
>>206 ちょっと質問。
最近の最適化手法てどんなものなの?ツールとか。
まさかVCのインラインアセンブラとRDTSC使って
チマチマと手動で計測しながら作業してるわけじゃ
ないよね。
>>206 クロック表と睨めっこしながらリニアなべたーっとした
とても読みやすいアセンブリコードを書くのかしら。
209 :
206:2001/05/23(水) 12:18
おや、人気あるな俺
アセンブラで書いてんのに、どうやってオプティマイザかけるんだろうね?
>>208 アクロバチックなクリティカルな副作用を期待したようなコードを書きますね。
>アセンブラで書いてんのに、どうやってオプティマイザかけるんだろうね?
あーいや、そういう話をした憶えはないんだけど。
何か誤解があるようだ。真面目な質問なので煽らないでちょ。
MMXやSSEを使うならアセンブラでコーディングするのは
分かるんだけど、クロック数云々で片付く簡単なお話じゃ
ないと思うんでございますよ。で、最近の猛者はどうやって
るのかしらという率直な疑問ナリ。
書き忘れたゴメン。208も私。
そろそろリフレッシュレートスレみたいの作ったほうがいいか?
リフレッシュレートとFPSを勘違いしてる人がいると思われ。
外出だったらスマソ
>>206 う〜ん。
『オプティマイザ』と『オプティマイズ』を混同してると思われ。
オプティマイザの話に触れているのはあなただけで、まだ誰もその
話には触れてませんね。一人で違う話題に飛んでしまってますよ。
#抽象的な言葉の羅列で意図的に話を逸らして煽ってる
#だけなんじゃないかと穿った見方をしてみるテスト。
せっかく面白くなってるんだから落ち着こうぜ。>ALL
>>214 FPS=First Person Shooter
だからな(藁
217 :
デフォルトの名無しさん:2001/05/23(水) 16:08
Pentiumは面倒くさい
R3000がいい
219 :
95:2001/05/23(水) 17:12
>>218 まぁ、レジスターが沢山あるし。
イイ命令も沢山あるしね。
んで、リフレッシュレートの話は、みんな自分に適した物に
勝手に変えているからプログラム側ではFPSをタイマーで固定するという
方向性で良いんじゃないですか?
(まあ、個人の好きずきだけど)
リフレッシュレートに合わせて動きを変化させるのは、
処理落ちとか常に起りそうで見ていてなんか気持悪く感じたり。
…
sageます。
221 :
デフォルトの名無しさん:2001/05/23(水) 18:20
ゲームプログラミングでDLLの使いどころってどこですか?
ジャンルはシューティングでお願いします。
d3d.dll
ははは、さぁ。
この相談室、いつも荒れてるよね。
>223
時々、あそこが匿名だったら ぼこすかに書いてやれるのにとか思います。
227 :
デフォルトの名無しさん:2001/05/24(木) 04:08
前に一回それやったら技術じゃなくて人格云々について叩かれた。笑。
あそこの奴らは一部の奴らの馴れ合いがキショクテかなわん。
ほかのやり方を認めない頭の硬さをどうにかしれ。
228 :
デフォルトの名無しさん:2001/05/24(木) 04:26
>>226 ぼこすかに書いてストレス発散したいなら
2chでやっとりゃ充分だしょ(w
みんな100%のバイオ人間にされちゃったんだよ。
勘弁してやれ!
まぁ、僕の場合、人格が破綻してるかもしれないけどね。
あそこにいる人たちと比べると。
>>223 日本人じゃないに一票(ネタではなく)。
確かに日本人とは思えない。
プログラムの前に、日本語勉強しろと突っ込みたい。
しかしネタだったら笑われる。
畜生、俺はあいつの掌の上で踊らされているのか。
「日本人は反省しる!」を思い出してしまった。
>さ、そろそろ勉強をはじめろ、どうもありがとうございました!
教えてもらっておきながら、「勉強をはじめろ」と命令しているし。
煽るか礼を言うか、どっちかにしろ。
237 :
95:2001/05/24(木) 14:32
>>230 確かに、
翻訳ソフトそのままみたい。
もしかして これが噂の バイオ人間か?
238 :
デフォルトの名無しさん:2001/05/24(木) 18:35
バイオ人間DANあげ
メールアドレスとIPアドレス見ましょう。誰でも異国の言語を
ならい始めたときはそんなもんです。この件はこれで終わり!
240 :
デフォルトの名無しさん:2001/05/24(木) 19:15
x86アセンブラの最適化やるんなら,普通V-Tune使うYo!
241 :
デフォルトの名無しさん:2001/05/24(木) 19:36
ぶっちゅーんハチマンエン逝ってよし。
ああ、クラスAのIPか
243 :
デフォルトの名無しさん:2001/05/26(土) 17:18
スペランカーなどの坂道を1ドットずつおりる処理はどのように
してるのでしょうか?
チップキャラに高さ情報を持たせてやる
245 :
デフォルトの名無しさん:2001/05/26(土) 17:47
>>244 折角レスしてくれたのにプログラムの具体例がないと
理解できないかも。鬱氏
キャラの真下のマップチップを検索して、そのチップの高さ属性をゲットしてキャラに反映する。
坂なら、sin,cosで高さを求める、もしくはあらかじめテーブルに座標を格納しておく。
でいいのかに。
247 :
デフォルトの名無しさん:2001/05/26(土) 21:30
>>246 意見ありがとうございます。
2Dだし、ファミコンでも処理してるから簡単かと思ったけど
難しそう。
ソニックはもっとムズイでー。
249 :
デフォルトの名無しさん:2001/05/26(土) 21:59
そうか?
ソニックは曲線かなんかの式に軸をのせちゃて動かしてるだけのような気がするが。
普通の坂道は普通の処理かな。
場合によって色々と用意せにゃならんのはめんどいね。
┌─────────┐
│ │
│ ageないでください │
│ │
└―――──――――┘
ヽ(´ー`)ノ
( へ)
く
252 :
デフォルトの名無しさん:2001/06/01(金) 02:53
r /| sin (Y軸)
/_ |
cos(X軸)
rが分からないのに、どうやってsin cosで高さを求めるんだろう?
そもそも、ファミコンでsin cosはツライ。
テーブルを使おう。
あと、斜面とかは馬鹿正直に全部の地点について計算しなくても、
チップキャラの中心の高さだけ決めておいて、
残りは線形補完でもいいんじゃない?
凹凸の激しい地面を作らない限り大丈夫だと想うよ。
254 :
Install:2001/06/01(金) 13:57
本を探しています。
Install Shield For Visual C++6.0
大沢文孝/著
ネットサーブ/監修
出版社 アスキー
価格 3400円(税抜き)
新宿近辺で見かけた方いませんか???
↑スレ違いですので放置して下さい(´д`;)
256 :
デフォルトの名無しさん:2001/06/01(金) 14:53
>254
みたよ
>255
すまぬ。放置しきれんかった
257 :
373:2001/06/01(金) 23:43
RPGとかで使うレベルアップのテーブルなんだけど
Lv HP
01 10
02 15
03 35
って感じの場合のテーブルをExcelでLv200ぐらいまで打ち込んであるのだけど
これからこのテーブルを作る関数(点200個から高次の関数を作る?)を求められるそうなのですが
どうすればよいのでしょうか?
グラフ描いて見れば?
259 :
373:2001/06/02(土) 00:04
グラフはかけましたが式の求め方がわかりません。
x,y = (1,2),(2,4),(3,6)
から y=2xという式を求めたいのです。(実際はもう少し複雑ですが)
>>259 この間、塾で教わった。
(x;Lv,y;HP)
y=ax+b・・・(1)
@に(x,y)=(1,10)代入
10=1a+b・・・(2)
@に(x,y)=(3,35)代入
35=3a+b・・・(3)
(3)-(2)より
25=2a
a=25/2・・・(4)
(2)に(4)代入
10=25/2+b
b=10-25/2
よって(1)は
y=(25/2)y+10-25/2
>>257 うーん、マジでリアル厨房の数学レベルだね。
もし257が高校生以上ならプログラムよりもまず公文式をおすすめする。
ツマンネー煽り入れるな
ごめん。最小二乗法とかを使いなさいって先生に注意された。
264 :
補足:2001/06/02(土) 02:00
(・∀・)!!!
266 :
デフォルトの名無しさん:2001/06/02(土) 05:24
えーとですね257の問題は結構難しいですよ。
属にいう補間の問題です。線形代数でもやるのがベストです。
ただそれでも値が二つや三つならなんとかいけそうですが、
それ以上いくと格段に難しくなります。
式は求める値が二つなら一次、三つなら二次、四つなら三次になります。
要素が200ということはPCでは計算できません。
サンカクホウとか計算方法は色々あるみたいですがまともに計算できたためしがないです。
のでアルゴリズムはスプラインなどの特殊な補間が必要です宇治社中でもいきましょう。
おちまい。
カイケツ!ヨカッタネ!
一番簡単なのは線形補間だわな。
線形ならリアル厨学生でもできるだろ。
268 :
デフォルトの名無しさん:2001/06/02(土) 06:34
線形だって関わる要素が複数になればそれなりに難しいよ。
この場合だと200個の要素の変化が大きい値をとって云々てやらなきゃいけないじゃん。
素直に宇治社中いって式コピッタ方がなんぼかはやいよ。
逆転の発送で、適当な式(曲線)をでっちあげて
よさげな値がでるまでやるってのもいいと思う。
曲線をグラフで見られるような簡単なツールでもつくるとGOOD
270 :
デフォルトの名無しさん:2001/06/02(土) 09:24
というか、Lv/HPのテーブルを作ったんだったら、補間する必要ってないんじゃ…?
そういわれればそうですね。ご忠告ありがとうございます。
それに、よく考えたらレベルMAXは60でした。
272 :
257:2001/06/02(土) 11:28
>>261,262
はい。一応中学は卒業していますので、直線の式は求められます。
>>264 これ使えそうですね。ちょっとこれから見てみます。ありがとうございます。
>>269 実はこの方法が一番いいかも(笑)
>>270 まあテーブル使ったほうが早いのはわかるのですが今回はそうしたくないのです。
>>271 偽者?俺は今おきたとこだけど?レベルMAXは60じゃありません。
もっと増えそうです。
273 :
デフォルトの名無しさん:2001/06/02(土) 11:44
Excelのグラフで近似式を自動で計算できるでしょ?
274 :
257:2001/06/02(土) 11:59
>>273 そう。それなんですけど、どうやればいいんですか?
275 :
257:2001/06/02(土) 12:26
276 :
デフォルトの名無しさん:2001/06/02(土) 13:32
よりによってこれか?
大丈夫か?
かなり値が飛ぶぞ。
バランス調整の現場から言わせてもらうと、
数式を出して補完したりするより、
テーブルやスクリプトを使って調整したほうがいい。
細かい調整がしやすいし。
テーブルのほうがダサいけど、そのダサさが大切。
プログラマーが調整するのは避けたほうがいい。
調整する頃には、開発が押していて、
プログラムの修正やデバッグに追われているはず。
テーブルにしておけば誰でも調整できる。
担当の企画者が忙しくなっても、
他のラインの暇になった企画者が調整を手伝ってくれたりすることもできる。
ちなみに座右の書は「メガデモをつくろう」です
ちなみに座右の銘は「さわらぬ髪に抜け毛なし」です
280 :
デフォルトの名無しさん:2001/06/02(土) 15:05
べつに曲線だからってプログラマが調節するわけじゃないよ。
要は成長曲線でしょ?
こんなのどう考えたってテーブルなんかじゃやってらんねーよ。
そもそも変化する値が一人につき20個あって最高レベルが200。
さらにそれがキャラクタごと個性を見せたいです。で登場キャラ10人。
尚且つパラメータのいくつかはキャラによって単位や使用目的が異なります。
とかいう仕様をテーブル操作でなんとかなるのか?
まあ、俺がやるんじゃねぇから別にいいけど。
こんな1日程度で作れそーな手間惜しんで何苦労してんだ?
>>280 そんなの別にたいしたデータ量じゃない。
どうせExcelなんかでいじるんだし、テーブルを作るのもそんな手間じゃない。
それより1日程度でできるというのはおかしい。現場の人間じゃないね?
データは1日でできても、調整は1〜2ヶ月はやるだろ。
数式の調整は企画がやるにしても、プログラマーに
「調整したから組み込んで」とお願いするのを、
2ヶ月も続けられたら、いいかげんうざいだろ。
データ化すれば調整は別の場所でできるし、
そのデータを作るためのプログラムを別に作ってもいいんだぞ。
あとパラメーターが20個あっても、
プレイして実感できるほどの個性の差を感じないだろうな。
テーブルで動くのは4〜5個ぐらいで、他のパラメーターは
組み合わせで算出だな。例えば、HPは体力とレベルから算出するとか。
体力が低いけどHPはなぜか高い、なんてキャラを作りたいのなら別かも知らんけど…。
本当に20パラメーター×10キャラ=200個の数式を組み込んでいるの?
それはそれですごいな。見習いたいよ。
283 :
257:2001/06/02(土) 15:29
>>278 >>279 偽者うざい。
>>280~282
実際にはテーブルでしのぎました。あの時は時間がなかったので。
ただ時間のあるうちにもう一度研究しといたほうがいいかなと思って
質問しました。Excelで簡単に式が求められるならそれが一番ですね。
284 :
デフォルトの名無しさん:2001/06/02(土) 15:31
いやだから一日でできるのは曲線を使って設定できるツールだって。
データ量は大したことないかもしれないけどさすがにさっき俺が挙げたような例だといじるのは嫌だろう。
計算してみたか?
あれだけでも40000個のデータをチクチクいじるんだぞ。
他にやることもあるだろうし、なにより手動によるバグの問題も起きやすいだろう。
285 :
デフォルトの名無しさん:2001/06/02(土) 15:38
数式といってもキャラごとにもたせるのは個々の係数だけ。
元になる数式は一つ。
その代わり結構いい補間曲線使ってるけどね。
286 :
デフォルトの名無しさん:2001/06/02(土) 16:04
マクロってどう使えばいいんですか?
287 :
デフォルトの名無しさん:2001/06/02(土) 16:48
マグロ
>>286 たとえば
#define BOO(a,b) if(a > b)
とか
#define LES(a,b) {BOO(a,b) { a=b; } else {b=a;}}
みたいな
マクロくろすけでておいで〜
290 :
デフォルトの名無しさん:2001/06/02(土) 17:07
使うとVCの構造体やクラスのメンバが自動的にリストされる機能が使えなくなっちゃう。
えっ?そんなのどうでもいい?
いやーん
オレもイヤーン
マクロは色んな意味でC言語のガンだね。
プリプロセッサというのがいかん。
完全に言語機能の一部として取り込まれればよかったのだがぁ・・
293 :
デフォルトの名無しさん:2001/06/02(土) 22:30
誰かXFILEを読み込むスレを上げてきて。
詳しくは駄スレ立てる前にどーたらのスレの12辺りにて。
294 :
デフォルトの名無しさん:2001/06/05(火) 20:12
メガデモ。。あ、、、そーいえば。
雷とかスパークとかああいうのってどうやっているんですかね。。
というか使われているのを直接見たことないし(汗
情報キボーン。
自分は適当にポイントとって、んでピクセル演算している(2Dじゃん!)だと思っているのですが
3Dだとやはりビルボードという手しかありませんか?
ゴメン。メガデモってかいてるだけで、内容はゲームむけっぽいね。
_人
ノ⌒ 丿
_/ ::(
/ :::::::\
( :::::::;;;;;;;)_
\_―― ̄ ̄::::::::::\
ノ ̄ ::::::::::::::::::::::)
( ::::::::::::::;;;;;;;;;;;;人
/ ̄――――― ̄ ̄::::::::\
( :::::::::::::::::::::::::::::::::)
\__::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;ノ
>>295 ゴメン。この板はじめてなんだ。
メガデモはだいすきだからぜひ行
かせてもらいます。
っーか気が付かなかっただけです
(大汗
再投稿するうざがられるのでこれ
だけはここでご勘弁。
自分的にはゲームにもメガデモに
も両方使いたかったんだよね
ソースなくてもいいからあったら情
報ください(しつこい)
>>297 いやはや見事なクソっぷりですな。
>>298 雷とかスパークいうてもいろいろあるんで。
デモでいう雷ってていうと、電気力線とかそのへんか?
300 :
298:2001/06/06(水) 19:04
無駄にageちゃった(汗
2or3次元配列に電気抵抗値ランダムにぶちこんで
テキトーに小さいとこ通してやるとか。
こういうのは、やっぱフラクタルを使うと格好良くないかえ?(w
ギザギザじゃなくてウネウネなら三角関数の重ね合わせでできるかも?
Photoshop でそういうテクニックをよく見るぞ。
とりあえず、本物の雷について書籍を当たるべし。
306 :
テーブル:2001/06/06(水) 23:48
関数→テーブルってやった方が良かったよね
HP=exp(LV)とか・・・
まあ、LVによって、関数を変えたりするのかな・・・
近似って言ったら
Σax^iとかフーリエ級数しか思い浮かばないけど・・・
数学科の人に頼むのがグー
いや、ネタのつもりは全然ないんだが。
ちなみに、CG関係の論文当たると出てくるかも知れないぞ。
いま探す暇ないのでスマ
>>302 ランダムだと激しすぎるかな。。と思います(無知w
そこまで厳密でなくても良しというのもありますし。
>>303 複雑系でいきますか。。。何次元かなw
でも、天から地に落ちるのは出来そうでも、球を中心にとなると辛いかも知れません。
>>304 とりあえず見て回ります
>>305 湿度、温度などかなり複雑に絡んでくるのでシュミレートはきついかと思います(汗
見た目がそれっぽいという感じでつくりたいので
論文探してみます。希望するエフェクトを使ったメガデモにはまだぶちあったっていません。
>>306 最適化時にはテーブルつかいます
実装するときには結局ビルボードとかになるのかなぁ。
FF8であったのを見つけたのでみてみると何だかビルボードみたいだし。(半透明ポリゴンに貼っている
または3次元的なラインを大量に作って、そこになんかエフェクトをかけながらレンダリングと、、、、
にしても、どのように育成するのだろうか。
312 :
デフォルトの名無しさん:2001/06/08(金) 19:19
ゲームプログラミングを1から叩き込んでくれるスレ作って。。結局何が必要なんだ?C++、WINプログラム、directX、こんだけでいいの?
「初心者が現実を前にして挫折していく様子がリアルタイムで見れるスレ」
の間違いだろう…
もう下火(っつーか鎮火)になってるだろが
(・∀・)マァマァ
317 :
デフォルトの名無しさん:2001/06/08(金) 23:22
メインスレッドで一定時間毎に更新し、描画は別スレッドでGPUにまかせつつ
ぶん回す、ってなのをどっかのスレで読み、これだ!と思って実装してみました
で、作ってからようやく気付いたのですが更新スピード以上に描画しまくっ
ても意味がないんですよね。動いてないから。そこでお聴きしたいのですが
ジオメトリ演算はどっちのスレッドでやればいいのでしょうか?
別スレッドでやればいいとは思うのですが、それじゃ折角分けた
意味無いし…。WindowsでDirectXです
>>317 俺の場合。
描画スレッド オブジェクトの動作、ジオメトリ、描画
メインスレッド オブジェクトの動作、生成、破棄
両方でオブジェクトを動かしているけど、
メインスレッド側は順次処理、
描画スレッド側は並列処理って感じ。
ジオメトリの演算結果を受けてオブジェクトを動かしたいときもあるし。
319 :
317:2001/06/08(金) 23:48
レスありがとうございます。両方でやる、と言うことですか
なーる気付きませんでした。うーん、でも管理が難しそう
スキルないので、とりあえず手頃な補間処理辺りから
描画スレッドでやってみようと思います
320 :
デフォルトの名無しさん:2001/06/09(土) 18:52
ソースがいらないなら送金はいらないともとれるけど、
シェアウエアっていってるんだから使うなら送金する必要があるだろう。
別にそれ使わなくてもDirectX使えばいいじゃん。
>>320 はWin3.1のゲームを作りたいと思われ
323 :
デフォルトの名無しさん:2001/06/13(水) 07:01
A-GE
>>322 Win3.1ユーザは絶滅したから、作っても誰も遊ばないと思われ。
っつーか、まだ金とってんのね。
いいかげんフリーにしてもよさそうなもんだ。
325 :
デフォルトの名無しさん:2001/06/16(土) 15:22
ゲーム系クソスレたて防止のため上へ参ります
326 :
デフォルトの名無しさん:2001/06/17(日) 18:43
あげ
327 :
デフォルトの名無しさん:2001/06/17(日) 19:51
別にWin95だって、DirectXを生で使うよりずっと楽に速いゲームが作れるじゃん>WinGL
でも今時256色ってのもねえ…
328 :
デフォルトの名無しさん:2001/06/17(日) 20:17
256色をなめてはいけないよー。
3Dでなくて、2Dで激しいエフェクト必要ないなら256色で十分。
むしろ、3Dカードなくてもそこそこエフェクトだせて高FPSで安定できる。
まあ、この辺はゲームのタイプにもよるでしょう。
ビジュアルノベルなら256色は今時っていわれても仕方ない。
というか、256色ですら色数をフル活用してるのってあんまり知らないんだけど。
330 :
デフォルトの名無しさん:2001/06/17(日) 20:38
確かに単純に256色フルに活用ってなかなかできない。
でもまあハイカラー以上なら
αブレンドとか色んな効果を面倒なアルゴリズム考えず気軽に使えていいよね。
CPUパワーはそれなりに喰うけど。
知ってるのといえば、コンパイルのディスクステェーションのとか、
Ysとかその辺の市販系かな?
あとは、コンシューマからの移植だとバリバリのはあるけど…。
そういえば、256色αブレンドって、えらく手間がかからんか?
テーブル使えば何とかなるかもしれんが、えらく容量いりそうだし。
っても、64K程度だが。
333 :
デフォルトの名無しさん:2001/06/18(月) 18:23
>>331 そうそう、YsEternalって(2もかな?)256色って話聞いたことあるんだけど
それほんと? 特に2が256色って信じられないんだけど…
>>332 先生!!自分は256色でα用に600KByteほどテーブル確保してやったことあります(藁
>332
普通にα合成を計算した後にパレット中から近似色を選択すればいいと思う。
もちろん、近似色の選択もテーブル使ったほうが良いと思うけど。
>>337 先生!!そのときは8段階αと加算、乗算のテーブルを持たせてました!!(w
0と7はテーブル不要だから……あれ?
64k*(6+1+1)=512k
341 :
デフォルトの名無しさん:2001/06/27(水) 03:57
age
342 :
342:2001/07/08(日) 08:53
タクティクスみたいなゲームのソースとか、あるかな。。
ふつうのRPGなら腐るほどあったけど。。
思考ルーチンを組めるヤツがあまりいないと見た。
344 :
342:2001/07/08(日) 11:42
誰かルーチン以外だけで作っているのいないかなw
つーか最初から生で作って公開している人間というのはいないのか!?
移動ルーチンとかだけならあんまり苦労しないけどな。。
345 :
加護:2001/07/08(日) 14:17
加護、virtualの存在価値がわからんねん。教えてお兄たん。
347 :
加護:2001/07/08(日) 14:29
なんでやねん。加護ゲーム作りたいねん。だからクラスつくっとんねん。教えてくれてもええやん。
ヴァチャール カコイイヨ( ● ´ ー ` ● )
テンプーレト カコイイヨ( ● ´ ー ` ● )
STL カコイイ( ● ´ ー ` ● )
同僚に自慢するヨロシ
friend カコイイ( ● ´ ー ` ● )
goto カコイイ( ● ´ ー ` ● )
asm カコイイ( ● ´ ー ` ● )
GameProgramingGemsかっとけ
シングルーd カコイイヨ( ● ´ ー ` ● )
351 :
加護:2001/07/08(日) 23:37
DirectX8にDirectDrawがないねん。どうなっとんねん。
Direct3Dで代用しと毛。
>>345 ポリモーフィズムって調べてみ。
マップファイルも見てごらん。
355 :
デフォルトの名無しさん:2001/07/11(水) 10:36
あげ
356 :
3D初心者:2001/07/11(水) 11:20
質問なのですが、64ゼルダのようなカンジのゲームをつくる
とき、フィールドってどうやってつくればいいんでしょーか?
Lightwaveなどでキャラからマップまで全部つくれちゃいますか?
初歩的な質問ですみません・・・
357 :
an:2001/07/12(木) 11:13
age
358 :
デフォルトの名無しさん:2001/07/12(木) 15:41
>>356 マップ作ったとして、当たり判定とかどうするんだろうね?
コリジョン用に矩形とかで再構築するのかな。
そらもう、あたり判定用の簡易モデル作るに決まってまっせ。
>>359 3Dアクション物作りたくない理由の筆頭だね(藁
モデラ死にまくり。
凝りジョンなんてまじめにやるわけねっしょ
>>362 普通は簡易モデルでやるだーろ?
カスですか?
>>363 その簡易モデル作るのモデラだろうが。
作業2倍に膨れ上がって死ぬって言ってんだよ。
365 :
デフォルトの名無しさん:2001/07/13(金) 13:17
あげ
>>358 そのへんのことが詳しくかいてある参考書とかってありますか?
リアルモデルから簡易モデルを自動生成。
生成後にちょっとだけ手直し。
最初に簡易モデルでゲーム成立させてから
リアルモデムちまちま作ってく。
s/モデム/モデル/
>>367 ちょっとづつの修正が作業量が大きくなると厳しくなってくる気が…。
レベルエディタで簡易モデルをレベルデザイナーが直接エディットできるように
しておいて、その簡易モデルを表示モデルとして実際のエンジン上で試せるよう
にしておく。ここでゲーム性のチェックを行う。
ある程度ゲームとして面白いレベルになったら、デザイナーのオーサリングツール
に取り込めるデータ形式としてエクスポート→それをアウトラインにして、
表示用モデルをオーサリングしてもらう。
というのが(レベルデザイナーが簡単に試行錯誤できるようなレベルエディターを
作るのメンドイけど)効率よいと思う。
371 :
356:2001/07/14(土) 00:16
うおおおお
なんかめっちゃむずかしそーだ・・・
とりあえず動くようになるまでどんくらいかかるかな・・・
>>372 本格的にゲームを作りたいなら、ツール作りは大事だよ。
374 :
デフォルトの名無しさん:2001/07/14(土) 13:47
ソレは判るけど人手は足りないものでしょ?
375 :
デフォルトの名無しさん:2001/07/14(土) 15:08
>>374 人手が足りないならなおさら大事かと。いいツールを作った場合
の生産性の向上は最終的にはツールをつくらない(もしくは
ツールを安普請した)場合に比べて充分に見合うものになる。
たとえばEDLIN(わからない人はメモ帳でもいいや)でプログラム
書け、っていわれたら激しく萎えるでしょ?プログラマがエディタ
を大事にするように、レベルエディタにとってもツールは生産性に
大きく関わってくるんだよ。(多分)
376 :
気弱な人:2001/07/14(土) 15:26
最初からいいレベルエディタが出来るかどうか不安です。
例えばメタセコとかで判定用モデルを作ってもらい、
その変換ツールだけで済ませた方が安全なんじゃなかろうか。
すくなくとも、ダメレベルエディタとデータを心中させる危険性は減る。
怖がりすぎだろうか。
>>376 単純なツールで済ますことでプログラマの責任の回避は出来るけど、経験測
からいって単機能なツールでは出てくるデータも「それなり」になりがちな
気がする。
最初から完璧なのは勿論出来ないよ。使う人によっても「完璧」の定義は
変わってくるしね。ある程度フィードバックを反映させる期間は重要。
個人的にいいツール作るために注意すべき点として、
・あらゆるデータは柔軟に設計しておいて、どの部分が変更になっても
従来作成してきたデータを無駄にしない。
・機能の向上、新仕様の追加があっても操作系の変更は頻繁に行わない。
単純で一貫性のある操作系を。
・プログラマが単純作業を嫌うように、レベルデザイナーも単純作業を
嫌っています。キー操作の記録や、アンドゥ、単純作業をスクリプト記述
などでバッチ処理が行えるような機能をあらかじめ実装する。
などが(経験的に)アドバイスできます。また、上記のような目標を守る為
にデザインパターンを学ぶ事は有効だと思います。
378 :
デフォルトの名無しさん:2001/07/14(土) 23:36
全然関係無い話で恐縮なんですけど
2Dで良いマップエディタ無いですか?
>>377 んー、補足したい内容が沢山あるなぁ……
まあそれだけ、ツール作りは大切って事で。
本当に良いツールを作りたいなら、
ツールを実際に使ってみる事も大事。
自分にとって扱いづらいツールは、
他人にも扱いづらい。
他人の作ったツールも参考にしましょう。
例えば、マップエディッタを作るなら、
ペイントツールの処理方法が色々と参考になる。
RPGツクール2000やコミックメーカーは、
ツールとしての出来はかなり良い。
まあ、ツールが良いからといって、
完成品の出来が良いとは限らんケド(藁
汎用スクリプトを自作すると、
ツールのバッチ処理以外にも、
簡単な敵のAI、イベント関連処理、
簡単なアニメーション等、色々と応用が利く。
デザインパターンを学ぶ前に
オブジェクト指向を学ぶと、
デザインパターンを理解するのが楽。
オブジェクト指向を学ぶ前にモジュールを学ぶと、
オブジェクト指向を理解するのが楽。
ペイントブラシ>378
自分にとって扱いやすいツールが、
他人にとって扱いやすいとは限らない(藁
384 :
356:2001/07/15(日) 08:47
なんかすごいことになってきたなあ。
オレのレベルを遥か上をいっている。
385 :
デフォルトの名無しさん:2001/07/15(日) 11:36
私もレベル下スギでアレなんですが、
「ツールが作れない状態は問題の分析や設計がマズイ状態」
ってことでイイですか?
いや、趣味でゲーム作ろうとしてるんですが、全体の流れは
浮かんだものの、このスレみて、「うーん、どう適用する?」と
思ったもので...
386 :
加護:2001/07/15(日) 12:19
キャラクターのアニメーションで、何番目までアニメーションが進んだか管理するのに上手い方法ないですか。オブジェクト一つ一つにカウンタつけるしかないですか?それともカウンタは別にオブジェクトを作って管理するべきですか?
オブジェクトで抱えた方が融通つけ易いんじゃねーの?
>>384-385
始めはとにかくツールを作るよりも、試作品を作った方が良いね。
ヘボでも良いから試作品を完成させれば、凝るべき点がはっきりする。
凝るべき点がわかっているなら、その部分だけツールを作れば良い。
昔は、テキストエディッタやペイントツールすら、無かったわけだし。
オブジェクトをテーブルで管理すれば良いのでは?
Tbl[] = {0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2}
ってな感じで。
390 :
デフォルトの名無しさん:2001/07/15(日) 17:50
ネタじゃないんですが、
ファイナルファイトを再現しようとしていますが、
良いツールというか、ソースってあるんですかね。
>>386 3Dモノでよく使われている、キーフレーミングなどはどうでしょう?
0 frame : A
7 frame : B
15frame : C
20frame : D
(A〜Dはそのキーフレームのパターンなり、姿勢なりを表す)
で、中間のキーフレームについては任意の法則で繋いでやれば
(3Dの階層構造式のモーションデータのように補間できるデータ
ならしてもいいし、2Dのパターンデータなら単純に次のフレーム
まではその姿勢でもいいし:一例として)
1frameずつデータを持つとデータとして冗長になりがちなので、
いかがでしょ?
皆様が3Dゲームに使ってる行列クラスはどんな感じでございましょう?
フルスペックの同次4次元? それとも4列目の要素0, 0, 0, 1限定?
はたまた3次元?
>>392 クォータニオン+座標値。(いやネタで無しにね)
慣れるとマトリックスよりも使い勝手がちょっとだけいいんだよなぁ。
そもそも行列じゃないのでsage。
394 :
デフォルトの名無しさん:2001/07/16(月) 19:34
クォータニオンがわからん・・・。解説ページよんでもさっぱりだ・・・。
これやみゃぁテメェみてえなバカでもわかるぜっていうページない?
>>394 大丈夫だ。実はクォータニオンが何か理解してるヤツなど全体の1%もいない。
……よね?
Geometry.h
>(これはバグではなく、4元数の特性のようだ)
やはり理解してないと思われ(笑)
ちゅーかほとんど魔法やね。数学者は偉大だ。
398 :
デフォルトの名無しさん:2001/07/17(火) 01:00
クォータニオンって、2階のテンソル?
行列は、ある座標系を他の座標系に置き換える計算を
パッケージにしたものだと考えればよいでござる。
2次元で考えてみると、頂点(x, y)を原点周りにθ角回転した(x', y')は
x' = xcosθ-ysinθ
y' = xsinθ+ycosθ
で求まるでござるが、これは行列を使うとこう表せるでござる。
[x']=[x][cosθ sinθ]
[y'] [y][-sinθ cosθ]
このとき、x軸(1, 0)、y軸(0, 1)の座標系を
新しいx軸(cosθ, sinθ)、y軸(-sinθ, cosθ)の座標系に
移したと考えることができるでござる。
しかぁし! これでは原点の移動ができないではないか!
以下次号。(かどうかはしらん)
だもんでもう一次元増やすと。
>>399 スケーリングは?
いや、なんとなくは解るけど。
初歩的な質問で申し訳ないですが、とある座標に向かって等速度で移動する
時の計算式ってどうするんでしょう…
つまりはシューティングの弾なんですが。
>>402 >>399に既に答えが書いてある(w
たとえば、y方向に1の速度で移動する場合のx,yの増分
[x]=[0]
[y] [1]
同じ速度で、x軸となす角がθの方向に移動する場合のx,yの増分
[x']=[x][cosθ sinθ]
[y'] [y][-sinθ cosθ]
目的地N ( nx, ny )
現在地O ( ox, oy )
N - O = P ( px = nx - ox, py = ny - oy )
Pの絶対値が距離だから、sqrt( px * px + py * py ) = 距離 ( len )
P を 距離で割れば、単位ベクトルになる。
P /= len ( px /= len, py /= len )
あとは、P に速度をかければよい。
(まあ、普通は len を速度で割ってから、P /= len するが)
3DでもZが加わるだけで同じ。
405 :
デフォルトの名無しさん:2001/07/17(火) 20:31
angle = atan2(dy - y, dx - x)
で角度を求めて
vx = cos(angle) * speed;
vy = sin(angle) * speed;
でもいいナリ。
割とFAQかもついでにage
407 :
デフォルトの名無しさん:2001/07/17(火) 21:04
>>406 敵の弾くらい256段階のsin,cos テーブルで十分。
多分最速だよ。
408 :
405じゃないけど:2001/07/17(火) 21:06
>>406 あと、発射時に一回だけx,yそれぞれのスピード割出すでもいいじゃん。
遅いって言う根拠なはによ?
いまどき三角関数重いてどこの話やねん。
3Dでバリバリ多用してるっちゅーのに
2Dゲーごときでビビッちゃダメだぜ。
それぞれCeleron450Aで1000万回計算した時間
sin() 3秒
cos() 3秒
tan() 4秒
asin() 10秒
acos() 10秒
atan() 4秒
関係ないが、エースコンバット4の
自機のセルフシャドウめちゃめちゃかっこいいぜ。
>いまどき三角関数重いてどこの話やねん。
PS1じゃないか?
次号きぼ〜ん
皆さんありがとうございます。
>>403 むしろ角度の求め方がわからなかったのです。
実は俺も三角関数重いと思ってました(w
確かに考えてみたら3Dなご時世ですし、普通に計算すれば良かったんですね。
>>405 数式がスマートで良いですね。
>>410 PS1だってsinはテーブルだし行列はGTEだから早いんじゃない?
>いまどき三角関数重いてどこの話やねん。
GBかと。って、三角関数なんかもともとねーけど。
ちょっとまて。405でいいってことは、402は高校数学(中学)も一度やった方がよいのでは???
416 :
デフォルトの名無しさん:2001/07/18(水) 12:08
すんません、GTとかのレースゲーでよくある、
テールランプの残像ってどうやってるんですか?
配列を20個くらい用意してテールランプの座標を順送りに
保存してみたんですけど、金魚の糞みたいになってしまいます・・・(T_T)
モーションブラーかけてみればどうよ。
あの残像みるとおれはアキラの劇場版思い出すな。
どうでもいいけどな。
420 :
デフォルトの名無しさん:2001/07/18(水) 12:17
テールランプ部分だけ別テクスチャに描画
↓
ゲーム画面に貼り付け
↓
次のループ
↓
テールランプを前回の画像に合成
↓
ブラー効果
↓
(゚д゚)ウマー
ってことですか?
421 :
デフォルトの名無しさん:2001/07/18(水) 12:19
テールランプの位置をスクリーン座標で保存すればどうよ?
すげー。VCのmath.hのsin()とかって直接fsin命令とかに変換されるのな。
昔とはえらい違いだ。
R4とかは
>>421みたいな感じだろうね。
テールランプのエフェクトだけZ順位無視だし。
ていうか、そもそも網膜の残像現象による残像なんだから
Z無視が正しい動作でしょー。
425 :
デフォルトの名無しさん:2001/07/18(水) 14:10
Z無視だと車とか背景の陰になって見えないはずの
ものまで残像が残るからなぁ。
>>417 と
>>421どっちが正解なのかね〜?
テールランプとそのレンズフレアが見えるときだけ保存すればいいっしょ。
もちろんスクリーン座標で。
(モーションブラーできるマシンパワーあればそっちでもいいけど)
金魚の糞ってのは間違ってオブジェクトの座標を保存してるのでわ?
ランプが見えれば濃度あげる。車体の陰になるなら、濃度さげる。
428 :
416:2001/07/18(水) 15:04
そのとおりでした。
>>426 ランプが見えてるかどうかの判定はどうやるんですか?
Zバッファを調べるとか?
429 :
ポーリング:2001/07/19(木) 03:13
えーと、質問
ポーリングって何ですか?
DInputのヘルプを見てもいまいちよくわからないもので。
あと、ここの前スレを見ると画面関係の方にもポーリングって言葉があるらしくてよけいに気になってます(^^;
430 :
デフォルトの名無しさん:2001/07/19(木) 03:15
>>429 もちろん、10本のピンを重いタマで倒すやつだよ。
7740 I$=INKEY$:IF I$="" THEN 7740
要は状態の変化をループ回して待つことでござる。
Game Programming Gemsゲット!
とりあえず、ざっと流し読みして鬱になってます。
みんなも買えぃ。
おれもここで勧められて買ったゾ。けっこー鬱だゾ。
436 :
デフォルトの名無しさん:2001/07/19(木) 19:00
俺も買ったんだけど。
CDROM付いてないんだけど書いてあるのはハッタリ?
それとも外れを引いたのか…。
裏表紙の裏(ああややこしい)についてへん?
Game Programming Gems p.580
デフォルトコンストラクタで初期化しないことで
matrix44 tranMtx = TranslateMatrix44(-10.0, 0.0, 5.0);
とかの冗長な代入を排除とかゆーとるけど、
そんなんコンパイラが最適化してくれるから
不定値を扱ってしまう危険性を考えると初期化したほうがいいと思うなあ。
と思ったけど、大量のVectorとか扱うときはそうもいかんか。うーむ。
440 :
デフォルトの名無しさん:2001/07/19(木) 23:32
>>437 付いてない…何で…。
糊の後すら無いぞ…。
問い合わせてみます。
441 :
加護:2001/07/19(木) 23:41
Game Gems、買ったほうがいーんですかぁー?加護、前に立ち読みしたけど、12000円もするもん買えないねん。
放置
444 :
デフォルトの名無しさん:2001/07/20(金) 08:59
あげ
視点ハットって何?
一応検索したんだけどよくわからん。
実例ageて教えてくれ。
446 :
デフォルトの名無しさん:2001/07/20(金) 12:38
>>445 ジョイスティックのハットスイッチの事?
新鮮なバラがこの通りになるくらい寒いぞ。
バナナで頭打って氏んでください
豆腐の角で頭われそう。
453 :
デフォルトの名無しさん:2001/07/21(土) 13:40
あげ
454 :
デフォルトの名無しさん:2001/07/22(日) 14:21
ラジアンの角度の変数って、
できるだけ0〜2πの間に収めておいたほうがいいのかな?
ゲーム中ずっと放置して回しまくりでも不都合ないかしらん。
455 :
C++スレはスレ違いでした:2001/07/22(日) 15:12
GDIでダブルバッファリングってどうやるんですか。下のようにやりましたが駄目でした。
BITMAP bm;
LoadBitmap(hInstance,"IDB_BITMAP1")
HDC hdc,hdc2,buf;
hdc=GetDC(hwnd);
buf=CreateCompatibleDC(hdc);
hdc2=CreateCompatibleDC(hdc);
SelectObject(hdc2,bm);
Bitblt(buf,0,0,600,600,hdc2,0,0,SRCCOPY);
Bitblt(hdc,0,0,600,600,buf,0,0,SRCCOPY);
456 :
455:2001/07/22(日) 15:13
間違えた。
HBITMAP bm;
bm=LoadBitmap(hInstance,"IDB_BITMAP1")
です。
Createいらないんだっけ?
>>455 マルチポストかよ。
しかもそれはトリプルバッファリングになってねぇか?
459 :
APIスレの127:2001/07/22(日) 18:15
と思ったら、解決されてますね。
鬱だ氏脳
461 :
デフォルトの名無しさん:2001/07/22(日) 19:12
>>461 他スレでもさんざん話題にでてるけど、とりあえずかっとけや。
>>461 ゲーム作る人ならCマガ10ヶ月分より遥かに役に立つので
とりあえず買っときなはれ。
>>464 いやCマガ無期購読してもGPGの情報が得られるかは怪しい。
厨房な質問だけど
ダブルバッファリングてフルスクリーンじゃないとできないの?
delphian でも買い?
>>466 フルスクリーンだろうと
表示用バッファと描画用バッファを用意すれば
それがダブルバッファリングだわさ。
GDIだとメモリDCにいったん書き込んで云々に当たると思うが。
×フルスクリーンだろうと
○フルスクリーンでなかろうと
>>467 del厨だけど買ったよ。自分がゲーム作る人だと思ったら買い。
472 :
デフォルトの名無しさん:2001/07/23(月) 14:56
特定のプラットフォームに依存しない内容、
みたいなことが書いてあったが。
買ったはいいけどあんまり読んでない。
Game Developer Magazineってどうにかして購読できへんかなー。
クレジットカード持ってへんし。
>>470 何となく思ったけど、FlipとBltの違いを聞きたかったのでは?
同じダブルバッファリングでも、画面切り替えの方法が違うよ。
>>474 その場合だと、DirectXスレネタじゃないか?
476 :
デフォルトの名無しさん:2001/07/23(月) 16:42
pDDS->tulip();
WinゲームでBGMを付けようと思うんだけど、
MIDI、WAVE、DAで処理の速度差ってあるん?
>>477 当然ある。
ユーザの環境にも寄るので一概には言えないけど、
ハードウェアMIDIなら高速だけど、ソフトウェアMIDIは結構重いものあるし、
WAVEはHDD転送とメモリバスを多少食う。
DAが一般的には一番速そうだけど、昔ポーリングかなんかで何秒かに一回引っ掛かる
現象が起こったことがあるなぁ。<俺のミスかもしれない
479 :
デフォルトの名無しさん:2001/07/26(木) 15:16
さがりすぎ
あげあらしうざい。
482 :
デフォルトの名無しさん:2001/07/28(土) 15:50
DirectX8で半透明のソートとかやってるサンプルソースどこかにありませんか?
483 :
デフォルトの名無しさん:2001/07/28(土) 23:01
タクティクスオウガみたいなクォータービューを作っているのですが、
いまいちパフォーマンスが出なくて困っています。
タクティクスはSFCでもバリバリですよね。やっぱりみっちり最適化を行っているんでしょうか。
隠面消去みたいな感じで、表示されないチップを描画しなければ多少は高速化できるかな、と考えているのですが。
あと、タクティクスでは地形に段差がありますよね。
ああいうのは、最初から「高さ」の違うチップを用意しているのでしょうか。
それとも、同じ「高さ」のチップを何個も積み上げて表現しているのでしょうか。
後者なら用意するチップの数が少なくてすみそうですけど、パワーは余計食いますよね。
484 :
デフォルトの名無しさん:2001/07/28(土) 23:19
age
>>482 半透明のソートってOT使えば良いんじゃないの?
外してたらスマソ
486 :
デフォルトの名無しさん:2001/08/01(水) 13:54
ディアブロちっくなアクションRPGを作ろうと思っているのですが、
敵の思考ルーチンの組み方が解りません。
解説してるページとかないですか?
>>486 ディアブロ?
ローグライクのゲームならたいていソース公開されてるから参考になるんでは。
489 :
デフォルトの名無しさん:2001/08/01(水) 21:02
#include < iostream.h >
↑これさえ知ってれば問題ないよね?>ALL
Kein Problem.
491 :
デフォルトの名無しさん:2001/08/01(水) 21:16
>#include < iostream.h >
>↑これさえ知ってれば問題ないよね?>ALL
間違いかつ、時代遅れがひとつあります。
『プログラミング言語 C++ 第3版』を読みましょう。
名前空間というキーワードを調べてみるのも吉。
492 :
:2001/08/01(水) 21:59
半透明ソートの OTって プレステ用語?
バケツ(ビン)ソート?。バケツ数幾つ位用意するんだろう?
256くらいで後はバケツ内でソート位かなぁ
ハイポリゴン数で沢山密接してるとどうなんだろう。つっても他にいい方法もないのかな?
493 :
デフォルトの名無しさん:2001/08/01(水) 23:17
>半透明ソートの OTって プレステ用語?
私もわかりませんでした。
OTってアルゴリズムの呼び方でしょうか?調べたのですがわかりません
でした。何かポインタがあればご教授願えませんでしょうか・・・
OTはプレステ用語と思われ
OT=OrderingTableって一般で使ってないのか・・・
実体はプリミティブを描画順に単方向リストでつないだもの。
半透明なんかはこれを使って奥から描画してやらんと破綻する。
D3DなんかでやるときはOTとZバッファ併用でやるんじゃない?
#あ、当然だけどOTは自分で実装してね
499 :
デフォルトの名無しさん:2001/08/02(木) 22:03
マジで質問です。
OTってなんでしょ?
たとえば、256個のPrimitiveへのポインタの配列を用意して、
256段階にZ値で分類して配列からリンクリストで繋ぐことでしょうか?
RadixSortみたいな感じですか?
500 :
引退プログラマ:2001/08/03(金) 00:29
ちょっと違う。
ノーオペレーションプリミティブの配列。
Game Programming Gems 2、入手した人がいたら感想モトム。
502 :
デフォルトの名無しさん:2001/08/03(金) 23:39
OTの実装サンプルってないですか?
これってタスク(ジョブ?)と組み合わせてみんな使ってるの?
ぷれ捨ては知らぬ…
504 :
デフォルトの名無しさん:2001/08/04(土) 00:04
>>504 ブラクラ!!!
ひさびさにひっかかった(´д`)
506 :
デフォルトの名無しさん:2001/08/04(土) 13:18
もうかってまっか?
507 :
デフォルトの名無しさん:2001/08/04(土) 15:22
>>503 OT=ぷれ捨てとは限らないと思いますが。
簡単な事で悪いんですが、
例えばシューティングの敵の移動でサイン波のような
波状移動をさせたい時はどうするのが効率いいんでしょうか?
自分は普通にサインテーブル使ってますが・・・・
いいから普通にsin関数使いなさい。
>>409参照。
>自分は普通にサインテーブル使ってますが・・・・
というところからみて、テーブル化しないと重いか、もしくはsin関数が使えない、
又は浮動小数点そのものが使用できない環境かもしれない。
単にいまどきサインテーブルを使うのが普通と思ってる厨房かもしれない。
環境くらい書けよ。
サインテーブル使うのが普通と思ってた厨房でした。
逝ってきます。
別段厨房だとは思わないけど
ケースバイケースじゃん
うん。
515 :
デフォルトの名無しさん:2001/08/10(金) 22:32
カードゲーム等作る時のシャッフルってどうやってます?
ぱっと思いつくのは必要な大きさの乱数だして一度も出てない
数だったら追加していく っていうのと
配列に順に並べて乱数二つだしてそのインデックスの数を入れかえる
っていうのだけれど 前者だと最後の方なかなか決まらなそうだし
後者だと順序に片寄りが出るみたいだし。他に良いアルゴリズムないですかね?
516 :
デフォルトの名無しさん:2001/08/10(金) 22:38
517 :
デフォルトの名無しさん:2001/08/10(金) 23:05
for (int i = 0; i < CARD_NUM; i++)
swap(card[i], card[random() * CARD_NUM]);
>>507 漏れはプレステ以外では聞いたことないなぁ。
元ネタ、ていうか、元の呼び方はどの辺から来てるの?
論文、歴史、なんか知らない?
当方、プログラム関係の書籍は結構買ってるけど、そういう
呼び方をしているのは見たことがありません。
519 :
デフォルトの名無しさん:2001/08/14(火) 18:50
これが沈んでるから変なすれがたつんだage
どんあスレがたったんだ?
FFがつくりてーとかなんとか
ファイナルファイト
JAVAでRGBがどうとか
524 :
デフォルトの名無しさん:2001/08/14(火) 22:39
クオータービューのRPGやシミュレーションをつくるとして、
このビットマップはどのように保持し、どのように
マップを組み立てればよいでしょうか。
ひし形をしたビットマップマップをそれぞれつくり、
位置を計算して配置し、隙間なく描画されるようにしているのですが、
実際のプログラムではどのように処理しているのかと。
/\
| | \/
厚みあるパーツ↑
/\
\/
厚味の無い平面のパーツ↑
/\
| |
|\/|
|\/|
\/
下層のパーツから順番に描画し、積み重なった部分を表現
私は上記のような感じでやっています。
525 :
デフォルトの名無しさん:2001/08/14(火) 22:40
ずれ修正。
/\
| |
\/
厚みあるパーツ↑
>524
頭使わないでメモリ使う方法(絵をイパーイ用意しよう)だと簡単だよ。ばか。
527 :
デフォルトの名無しさん:2001/08/14(火) 23:42
クォータービュー自体無駄じゃねん?
はじめから3Dで組んだ方がいいんでない?
2Dでやると重なる部分が増えるたびに
爆発的に処理が重くなるんじゃない?
そんな無駄なことに神経を使うぐらいなら別なところに
ちからを注いだほうがよいのでは?
そもそも2Dで無理してまでユーザーは
クォータービューなど望んでは・・・・・・。どう?
528 :
チュー:2001/08/14(火) 23:43
>>524 Zバッファみたいな処理を頑張るしかないねぇ
まぁ2Dアクセラの腕力でダブルバッファ描画してもいいんじゃん?
クォータービューアクションゲームとかじゃないんでしょ(w
>>524 ようはタクティクスオウガでしょ。ちがう?
>>483 >>524-525
クォータービューのゲームでは、地面と物体が
重ならないように作られているゲームが多い。
532 :
デフォルトの名無しさん:2001/08/15(水) 21:03
物体と物体も?
いや、物体と物体はY軸ソート。
Game Programming Gemsの
「汎用的で強固なAIエンジンの設計」ってあったまいい〜
状態マシンの導入だけならともかく、
ここまで一般化・汎用化できるモノなのだとは思ってなかったでござるよ。
ちょっと感動したので記念カキコ。
すぐ次の項の「有限状態マシンクラス」はつまらんな。
こんなクラス作って一体何がどうなる。
535 :
デフォルトの名無しさん:2001/08/16(木) 19:51
風船とその糸にぶら下がっている荷物を出したいんだけど、
(荷物は、風船の浮力でゆっくり上昇していて、風船が割れると落下する)
風船と荷物をつなぐ糸の挙動って、どんな感じになるでしょう?
そんな状態の参考ページってありますか?
振り子じゃないの?
537 :
デフォルトの名無しさん:2001/08/17(金) 15:53
風船と荷物の質点2つをバネで繋げなさい。
538 :
デフォルトの名無しさん:2001/08/18(土) 23:19
初心者質問で申し訳無いのですが、
Windowsでエロげーを作る際にどうやってCDをフェードさせるか困ってます。
要するに音量が弄れれば良いのですが、APIひっくり返しても見つけられませんでした。
一応検索エンジンでも当ってみたのですが収穫は無く………
心優しい方がいらっしゃいましたら、よろしくお願いします
auxSetVolume
mixerSetControlDetailsでも可
541 :
デフォルトの名無しさん:2001/08/19(日) 00:50
マージャンゲームの役判定アルゴリズムを教えてください
542 :
デフォルトの名無しさん:2001/08/19(日) 01:22
FFXのユウナの振袖はどうやって動かしていると思う?っつうかあれデザイン
さんにモーションつけてもらってるだけじゃないの?
複数の点とって拘束条件つけてるだけ?もっとうまい方法があるの?
544 :
デフォルトの名無しさん:2001/08/19(日) 09:53
自作のゲームが最低どの程度のスペックのマシンで動くかどうか
調べるにはどうしたらいいでしょうか?
うちには一台しかありませんし、古いPCを持っている友人もいません。
>>544 それなりの水準だと思えるならWebで公開して使ってみて貰いなさい
「最低どの程度」というのはドキュソ
・GeForce3必須なように作る
・TWTnL必須なように作る
しかないじゃん。
547 :
:2001/08/19(日) 22:22
PCゲーでは当たり前でフレームレート可変 で タイミングシビア(格ゲー)とか 作るのは
どうやったらいいのかな?
表示部と演算部を切り離すと表示中に変数書き換えないようにする為に変数のダブルバッファ化が
必要?(2Dシーティングとかは楽だけど、、、クラス多様な構造とかだと面倒な予感)
完全に切り離さなくても、キー入力だけ別スレッドとか考えたけど
それで リプレイ機能とか実装して、、、環境の違うマシンで問題でないかなぁ
当方、PCゲー&フレームレート固定&アクション系だけど、
表示部と演算部を切り離してやってます。
一応、いつでも表示だけをとばせるように作ってますヨ。
キー入力は演算部でとってて、リプレイもそれで。
参考までに。
549 :
厨房:2001/08/19(日) 22:48
いや、切り離すって
>>548の場合は 演算、表示が1:1で呼ばれる訳でしょ
それじゃ全然問題でないとおもうんですけど
550 :
:2001/08/21(火) 20:04
アーケードゲームの「ギャルズパニック」ってゲームありますよね。
何作か出てるやつ。あの陣取りゲームけっこうおもしろいと思い、
自分で作ってみたいと思うのですが、アルゴリズムがちょっと・・・。
けっこうやり方によっては複雑な形とかになっちゃいますよね。
ああいうのは、どうなってるんでしょう?
クイックスが元祖ですね。
作ったことないけど、シードフィルアルゴリズムで塗り分けた後、
(壁にくっついたときの自キャラの左右後方を始点にすればいいかな?)
面積の小さい側を塗り直せばいいんじゃないでしょうか。
もっと効率いい方法ある気がするけども。
って、適当な1点から塗って、全体スキャンで面積調べたほうが楽か。
おっと、ゲーム中に残りの領域のサイズを保持しておけば、
シードフィルが終わった時点で既に面積の大小が判明してますな。
554 :
デフォルトの名無しさん:2001/08/21(火) 20:57
>>552 別に全体をスキャンする必要はないでしょ。
線は縦横直角にしか描けないんだから、角の座標を利用して
四角形の組み合わせで面積が出せる。
555 :
デフォルトの名無しさん:2001/08/21(火) 22:40
2DのFEみたいなSLGで
C++で組むとして、
ユニットやマップ、イベント管理のデータ構造などで
参考になるページはありませんか?
レスありがとうございます。
シードフィルよく知らなかったのでちょっと調べてみました。
ある座標をSeedにしてそのまわりで塗りつぶすべきピクセル
を探して、それをまたSeedにする、ってやつですか?
実はまだピンときてないんですが、けっこう重いですかね
これって。
>>556 重いかどうかはマシンスペックに依存するとおもわれ。
ターゲットマシンのスペック書くぐらいしないと重いかどうかはわからないだろ。
あとその方法だとスタックがパンクするんじゃないか。
もっと効率良いロジックあるはずだろう...
とりあえずCマガ読んどけ
シードフィルって言葉が出てきた時点でアウト?!
>>558-561
ていうかお前らなんか建設的なこと書けよ。
この手のゲームは机上であれこれいうよりも作った方がはやくねーか?
どっかの同人サークルがWSで作っていたような気がするから
少なくともシードフィルではないだろう。
ねえねえ、シードフィルじゃダメなの?
Cマガってよく聞くし、気になってたんだけど、
どんな雑誌なの?
CマガのCはC言語のC??
長方形のあつまりとして管理するんか?
>>562 WSどころかZ80クラスでも余裕だと思うのだが。
>>565 魅力的に聞こえるが、具体的な方法が俺には思い浮かばねえ。
誰か考えてくれい。
#ていうか、斜めにも線引けるクイックス系ゲームあるじゃん。
1ピクセル単位で曲がれるのかな?ってそりゃきついか。
>>561 オマエモナー
っていうかちょっと前のCマガにまさに塗りのアルゴリズム載ってたから
読んどけばって言いたかったんだスマソ。2001.3-4あたりだ。
>>568 クイックスもギャルズパニックも2ドット単位でしか動けないから
(そうするのが楽だからな)
塗りつぶすシードの数はピクセル数の4分の1だというのは内緒。
>>550 率直に聞くが、ソースくれって言ってるわけか?
ペイントアルゴリズムで検索してそれを片っ端から試してみれば
自然に解決する問題だと思うが。
>>571 ものすごく読む気のしない糞ソースですが、とりあえず読んでみます。
>>571 >There is small bug and some images causes crash of game
おいおい、、、
リブルラブルの件といい、塗りつぶしは我らには鬼門のようだ。
とりあえず作ってみるしかないのか...
懐ゲーのロジックは今考えると「なんであの時代のマシンで?」ってのが多いな
シードフィルはもともと的外れなんじゃないの?
>>578 シードフィルで駄目な理由を40文字以内で述べよ。
折れ曲がるときに元の方向に線を延ばせば
フィールドを長方形に分割できるようなのだが、何か役に立つであろうか?
>>577 トライ&エラーでは無理っぽいと思われ。みんなで考えよう。
>>578 チャチャだけ入れとらんと代案出せゴルァ
クイックスのCPUは6502が2つのようだ。
seed fillでも線分スタックなら間に合わんとも思わんが
さりとてそのような鶏をさばくに牛刀を用いるようなことをするかどうか。
何ぞエレガントな方法がある気配はするな。
シルフィードに見えてしかたがない
とりあえずシードフィルでやってみて、話はそれからじゃないか?
プラットフォームと画面サイズで処理時間が変わってくるのは容易に想像つくだろ。
考えてみた。まずフィールド全体の2次元配列が必要だわな。
境界線についたときに、境界線を左右どっちかに辿れば
3つの領域の境界が完全に確定するっしょ。
んで、全体スキャンで3つの領域を塗り分け、
クイックスのいる領域を調べて、
もいっかい全体スキャンで塗り直しでどうよ?
シードフィルよりは軽いと思うのだが。
QixのJavaアプレット探して逆コンパイルかけてみたが、
全ピクセルにPolygon.insideメソッドなんて使ってるよトホホ。
というわけで、今の時代
どんな方法使ってもプレイヤーは気づかないと思われ>550
とりあえずがいしゅつの方法で実装してみよう。
いろいろ調べていて思ったんだが、この手のアルゴリズムって社外秘なんだろうか?
境界線についたときに、境界線を左右どっちかに辿って
(距離が短いほうがいいな)
1つの領域の境界ピクセル群を確定、バッファに記録。
スキャンラインコンバージョンでその領域を仮ペイント。
全体スキャンでクイックスのいない側を再ペイント。
もっといい方法があるだろう……。
いや、実は面積はどうでもいいんだ。
クイックスのいない側が塗り潰されるわけで。
現在の領域が何%か?ってのは計算する必要あるよね。
だいたい80%でクリアだっけ?
それは塗りかえるときにピクセル数数えるだけで良いッス。
そういやギャルズパニックで、新たに領域を囲った瞬間、ちょっと止まる
けど、あそこでけっこう処理が集中してるのかね。
MSXやぴゅう太にあった「ナイトフライト」というクイックスもどきでは、
でかい領域を囲むと数分待たされることさえあった。
593 :
ぺーぺー:2001/08/23(木) 10:34
趣味でゲームを作りたいので教えてください。
専門外の事は他人に任せたいのですが、
サウンド(SE)はどんな人にお願いするのがいいのでしょうか?
(サウンドのプログラムではなく、音の選出や音作りとか)
ちなみに画像はネットで見つけたグラフィック系の専門学校生に
お願いしました。
本来なら専門の人を割り当ててもいいくらいだけど、
効果音専門でやってる人なんか少ないだろうから、
音楽系に詳しい人になるだろうな。
もしくは手の空いた人か。
>>593 要は、金出さずに、ってことでしょ?
やってくれる人なら誰でもいいんじゃない?
それとも、趣味で作ってるけど、スタッフに金を払うつもりはあるの?
って、個人でン百万もだすわけないから、それはないか。
596 :
ぺーぺー:2001/08/23(木) 15:09
>>595 いや、それがさー、そのグラフィック頼んだ専門学校生も
金取るって言ったから、人日いくらだ?と思ってかまえてたら、
絵1枚3000円とか言われちゃって、拍子抜けしちゃったんだよ。
趣味で作ってるけど、そう大きな金額にならなければ金出しても
いいと思ってるよ。
相手も趣味の延長で請け負ってくれればベストかもしれないんだけどね。
>>593 著作権フリーの効果音素材集を使用するというのも、選択肢の一つ。
近くの図書館に置いてあるかどうかを、調べてみると良いカモ。
598 :
ぺーぺー:2001/08/23(木) 15:52
>>597 ほおほお、そんなのあるんですね、知りませんでした。
あー、でも、問題はその中からピッタリあった効果音を
取り出すのが意外と難しいかもしれない。(所詮素人)
別板の別スレからコピペ
>試聴してから現物を購入すれば何も問題はないと思う。
>
>あと、図書館以外にCDレンタル屋でも
>なぜか効果音集が借りられることがある
>>599 だから購入しないと利用許諾できないって…
ちなみに、俺は「RPG&ホラー」の素材集を買って使った。
>>600 だから、図書館やレンタル屋で借りて試聴した上で、現物買えってことだろが。
DAKARAってCMといい味といい好きなんだよな。
それはそうと、TVアニメとかで使われてるSEも売ってるん?
603 :
ぺーぺー:2001/08/23(木) 18:24
やはり他力本願は無理か・・・
>>602 むしろ逆。TVアニメで使ってるのと同じ素材集を見つければいい。
606 :
ぺーぺー:2001/08/24(金) 09:39
とりあえず、格ゲーのサントラCDいっぱい買ってきました。
効果音に関しては、似た音を録音する手段もあるのだが……
出てないね。
610 :
ぺーぺー:2001/08/24(金) 12:32
秋葉原ってすごいんです。
サントラCDが一枚2、300円で売ってました。
著作権は・・・・ダメですね。
買ってきたものは参考程度にとどめておきます。
効果音作るって事は出来るんでしょうか?
SoftMIDI→WAVとかかなあ・・・
611 :
デフォルトの名無しさん:2001/08/24(金) 17:49
Cでオセロ作ったんだけど、コンピュータが弱すぎて
面白くもなんともない。
ってことで強い思考アルゴリズム組みたいんだけど、詳しく解説
してるサイト知らないですか?検索してみたらミニマックス法が
なんちゃらとかあったけど具体的に解説してるサイトが
なかなか見つからないもので・・・。
微妙にスレ違いのような気もするけど、一応ゲームなんで。
AIで組んでみるとか
>>611 「一緒に考えて下さい」じゃなくて「サイト教えて下さい」なんだから、解決の指針をあげても駄目なんだよね。
とりあえずオセロに勝つ為の本は買ったの?
せめて、それからじゃないのか
617 :
デフォルトの名無しさん:2001/08/25(土) 02:40
あんなの角とれば勝ちじゃん
角とるにはどうすりゃいいの?
>>618 相手がフチのラインを制圧できないように置く。
詳しい話は、オセロに勝つ為の本を読みませう(藁
>>618 相手の石を角の隣のマスに置かせればいい!
>>616 とりあえず暇なとき図書館にでも行って調べてみることにしますわ。
ヘックスマップの距離計算や障害物回避を考慮した最短距離探索などの
情報が載ってる本や URL を教えてください。
検索サイトで頑張ってみたけどキーワードが悪いのかぜんぜんみつかり
ませんでした。一応、SYSTEM なんとかって開発環境の掲示板にそれっ
ぽいのが1つあったけど、すでに 404 だった
SOFTBANK Professionalゲームプログラミング
四角マップだけど、やるこた同じ。立ち読みで十分。
今更ですが「シードフィル」が「シルフィード」に見えました。
シルフィード?リブルラブル?へ?
って状態。ごめん。いってくる。かえってこないから。
CマガかOhXで見なかったか?
四角から六角へ距離計算すら応用できていません。
[ ][ ][ ]
[ ][ ][ ]
[ ][ ][ ]
このタイプのズレかたの場合、上下に移動すると横に
も足が稼げますよね、障害物がなければ最短距離は...
上下の移動で足が稼げない条件やらいろいろあって、
スマートな式ができなかったりするんです。
テーブルを組み合わせれば良いのでは?
Cで書くならこんな感じ
for(i=0;i<6;i++)
{
x2 = x + xTbl[i];
y2 = y + yTbl[i];
//(x2,y2)の位置を基準に再帰してチェック。
}
あと、y軸が偶数か奇数かで、別にテーブルを用意する事。
630 :
デフォルトの名無しさん:01/08/26 21:19 ID:xZWsAlGA
C/C++でwinのゲームプログラム講座をしてるHPがあったら教えてください。
632 :
デフォルトの名無しさん:01/08/26 21:36 ID:xZWsAlGA
>>631 630を書き込む前にgoogleで一時間探したけど見つかりませんでした。
無いのか?
633 :
デフォルトの名無しさん:01/08/26 21:59 ID:r9kv7gys
というわけでネタフリもあったことだし、
ゲームプログラムに役立つwebページでもあげていきますか。
634 :
デフォルトの名無しさん:01/08/26 22:16 ID:rrgurWqc
637 :
630:01/08/28 14:34 ID:i33myGXs
>エミュレータのREWとかのような窓のゲームを作りたい・・。
詳細キボン
エミュレータのような?窓のゲーム?
エミュレータ?エミュレータで動かすソフト?
やっぱわからん
640 :
デフォルトの名無しさん:01/08/28 23:02 ID:hqIaNNpM
>>639 スマソ
Win窓で動くもので、全画面表示じゃないそれ単体のゲーム。
具体的にわからないのは窓の中の画像処理。
ということで更に何かサイトは無いかサーチエンジンに旅してきますです・・・。
全然わかんねーよ
表現力足りないとゲーム人にやらせてもつまんないぞ
>>640 それならDirectXじゃない?だったら幾らでもTipsサイトあるけど。
HALサポートしてないビット深度ならDIBでもあまり変わらないけどね。
>>640 よくわからんけど、フルスクリーンモードでなく、ウインドウモードで動作するゲームってこと?
フルスクリーンとウインドウモードを切り替えれるアプリならいくらでもあるけど。
644 :
642:01/08/28 23:38 ID:un0lsa4U
643みて補足。>642で言ってるのはあくまでWindowモードだけしか使わない場合の話ね。
DirectXで全画面表示させなけりゃ良いだけじゃないの?
というか、書き込みを見る限り640はそんなにすごいものを作ろうとしていないと思われ。
つまりはウインドウ(モード)で動くマインスイーパとかその辺のものでは?
DirectXすらいらないと思われ。
調べてみたけどrewってGBのエミュレータみたいだけど、
フルスクリーンモードあるじゃんか。
もうちとわかりやすいたとえ方しようよな。
自力でダブルバッファしる!
649 :
デフォルトの名無しさん:01/08/30 09:53 ID:9gGD8KMI
DirectX覚えるの面倒くさいんだけどAPIだけで
フルスクリーンにする方法無いですか?
650 :
デフォルトの名無しさん:01/08/30 09:57 ID:jczwzR5Q
解像度も変えたいんだったらDirectX使ったほうが早い。
別に覚えるほどのことも無いしCOMオブジェクトに触れることも無い。
>>649 あるけど、サイズ変更後
デスクトップのアイコンぐちゃぐちゃ、ウインドウのサイズ変更しまくりで
ユーザーの顰蹙かってもいいなら教える。
652 :
デフォルトの名無しさん:01/08/31 02:14 ID:44BFTqPM
フリーの(そしてなるべくならソースを公開している)スプライトアニメーションエディターを探してます。
どなたかご存知の方いらっしゃいませんか?
ドットの編集はできなくてもかまいませんが、3万2000色以上に対応していて、アニメーションを視覚的に
確認できて、コリジョンなどのアニメーション以外の情報をグラフィカルに編集でき、Windows上で動作する
ものが理想です。
653 :
:01/08/31 02:25 ID:RKpdaxm6
ちゅーか当たり判定どーするかなんて人それぞれやねん。
汎用ソフトになんかでけへんねん。
自分でツール作れっちゅうねん。
ツールであたり判定しないっちゅうねん
655 :
デフォルトの名無しさん:01/08/31 04:33 ID:6MGPuHeU
>>652 そういうのは普通ゲームにあわせて自作する。
>>652 そこまで既製品に頼りたいんならナントカツクールとかでいいんじゃないの?
そのままゲームも作れるし。
凝りジョンの編集まで出来ちゃったら、自分のゲームエンジンがそれに制約を
受けるという本末転倒状態になっちゃうじゃん。
658 :
デフォルトの名無しさん:01/08/31 20:29 ID:qZidlL3k
ゲームであるマスコットとピンが紐が繋がっていて、
ピンを動かすと、マスコットもそれにつられて
揺らしたように動くというマスコットの
糸とマスコットの動かしかたを
解説しているページはありませんでしょうか
661 :
デフォルトの名無しさん:01/08/31 21:00 ID:qZidlL3k
662 :
デフォルトの名無しさん:01/09/06 22:05
キー入力で上下左右歩くという動きをそれぞれ3パターンのグラフィックで表現すると仮定した場合、方向転換やアニメーションは普通どのように実装しますか?
>>662 いや、そりゃそのまま普通に実装するだろぅ
664 :
デフォルトの名無しさん:01/09/06 22:45
どのように。
そのように
かのように
667 :
デフォルトの名無しさん:01/09/07 01:31
何度かDirect3dIMを勉強したけどいつも挫折します。
で、自作3dエンジン作っても速度が出ません。
これから勉強するならIM(今は新しい呼び名になってたっけ)とopenGL
どっちがいいですかね?
正直、もう弱音は吐きたくないんで経験者の方の御意見をお願いします。
てゆうか、キャラクタの座標とかをメンバに持つクラスになんて名前つけます?まんまCharacterやSpriteとかでいいの?教えてチョン。
>622
DirectXSDKのサンプルソースと同じにしとけばいいんじゃない?
670 :
デフォルトの名無しさん:01/09/07 02:07
おお、なるほど。それいただきます。
そんなことまで人に聞くのかよ・・。ヽ(´Д`)ノ アキレタ...
超低レベル質問スレ
>667
ゲームを作るんでなく、
純粋に3Dエンジンを作るのが目的なら、仕様が安定したOpenGL。
他は一概には答えなどない。
てゆうか、僕の作るゲームに名前つけます?まんまGameやGe-muとかでいいの?教えてチョン。
↑つぎはこう言う質問が来ると思われ
>>662
662は考え過ぎにみせかけて、実は一切何も考えてないと思われ
好意的に見て、アニメーションパターンの管理方法を聞いているのかと思っていたが、
そうではにようだな・・・。
てゆうか、DirectX8よりDirectX7のほうが2Dやりやすいと思うんですが、ダウングレードしたほうがいいですか?
>ダウングレードしたほうがいいですか?
ん?DirectXはダウングレードせんでも前の機能が使えるぞ。COMって知ってる?
# つかダウングレードってできるの?
8で7のプログラム動かしたら、なんか変になったことがある。
8aなら大丈夫なんかなあ
>679
そうなんですか。COMはIUNKOWNとかいうのから派生するやつですか。あんまり知らなかったです。
ところで、OSでビットマップの背景を透過して描画するAPIを標準搭載するのはいつですか?
682 :
デフォルトの名無しさん:01/09/07 21:47
上位バージョンのDirectXを使う場合、例えば、
DirectX8でDirectX7のDirectDrawを使う場合は、
#define DIRECTDRAW_VERSION 0x0700
を宣言しないと、バグる可能性がある。
DirectX3を使うなら、
#define DIRECTDRAW_VERSION 0x0300
VC++の場合ね、他は知らん。
683 :
デフォルトの名無しさん:01/09/07 22:08
DX8DIで(WINDOWベース)、
HRESULT hr;
hr = g_lpDIDevice->SetCooperativeLevel(h,DISCL_FOREGROUND | DISCL_NONEXCLUSIVE);
if FAILED(hr) {
DI_Term();
return FALSE;
とやってアクセスしたらエラーになる。
HRESULT hr;
hr = g_lpDIDevice->SetCooperativeLevel(h,DISCL_BACKGROUND | DISCL_NONEXCLUSIVE);
if FAILED(hr) {
DI_Term();
return FALSE;
とやったら大丈夫なんだけど、ウインドウが隠れたあともキー入力が入ってしまう。
なぜFOREGROUNDにしたらエラーになるんだろう。
685 :
デフォルトの名無しさん:01/09/11 20:55
キャラクタの座標を取得するとき、いちいちクラスにint GetX()とか実装するんですか?面倒くさいのでpublicメンバにしちゃっていいですか?
>686に同意。
BCBとかDelphiだったらpropertyがあるからラクだけどな。C#もか。
まったくだ、ただGet、Setを多用するのは設計まずいって説もあるよね
VC++ も C++ Builder も Delphi もプロパティがある
当面は変数に対する読み書きだけであっても、後から何らかの変更や
制限を加えたいと思った時にメソッドを1つ足してプロパティ構文を
すこし変更するだけで済むんだから何も考えずプロパティにしておけ。
あ、VCにもあったのか・・・。
691 :
デフォルトの名無しさん:01/09/12 17:24
「ツインタワー旅客機特攻ゲーム」が作られてそう・・・厨房プログラマに。
692 :
デフォルトの名無しさん:01/09/12 18:02
すみません、マップデータ(絵の座標とか属性)を格納したクラスを書き出すのですが、100X100のサイズで書き出したら157KBもあります。1000X1000では15.7MBです。zipで圧縮すれば10KB、32Kbにはなるのですが、
普通に編集したりHDDに展開するときに、かなり大きい容量を食ってしまいます。しかも大部分が構造体の変数間の空白バイトなので、これをなんとかする方法はないでしょうか。自分で圧縮アルゴリズムを作って読み取るときに展開するしかないでしょうか。
>構造体の変数間の空白バイト
構造体そのまま出力してるの?
これが出ないように変数一つずつ出力するとか、
バイト数が少ない型にするとか。
あとは圧縮か。
694 :
デフォルトの名無しさん:01/09/12 18:58
>693
intからshortにしてひとつづつ書き込むことで約3分の一にデータを減らすことが出来ました。どうもありがとうございました。
695 :
デフォルトの名無しさん:01/09/12 23:47
マップデータなんてcharで充分だと思うけど
チップサイズを縦横2倍にしてshortとかも効率いいんじゃない
>>691 すでに下逸君が作っているのでご安心下さい。
>>692 説明すんのめんどいんで一言。
256色BMPを参考にすべし。
絵の座標と属性をもったパレットデータをインデックスで指定するということかな
これはかなり節約になるね・・・
常識だと思ってたよ...
ある意味新鮮な驚き
VB厨のときに厨サイトを回ってつけた知識そのままなのでそのような高度な技は知りませんでした。
701 :
デフォルトの名無しさん:01/09/13 18:02
質問ですが、よろしいでしょうか
3D空間における
衝突判定なのですが
リング状のもの(穴があいていて通り抜けられる)と
球状の辺り判定をもつ物体とで
簡潔で高速に衝突判定を行うにはどのようにしたらよいでしょう?
どうかご教授願えませんでしょうか?
>>701 思ったんですが、
リング全体に属する立方体と、リングの穴に属する直方体の
2つのバウンディングボックスを設けて、
IF( 球と立方体が接触する )AND( 球と直方体は接触しない )
THEN 球とリングは接触した
こういうアリゴリズムをとれば良いのではないでしょうか?
703 :
デフォルトの名無しさん:01/09/13 19:37
回転するときは?Nightsみたいに。
704 :
デフォルトの名無しさん:01/09/13 21:38
>>703 リングのワールドトランスフォーム行列の逆行列を
球のワールドトランスフォーム行列に掛けてやれば良いと思う。
間違ってたらゴメンね。
マップエディタとかもそろそろ出来てきたので、次にスクリプトを考えたいのですが、初めてなんです。優しく教えてくれるところありませんか?
>697
しまったそんな良い方法があった
しかし仕様変更きかないほど作り上げてしまった
残念
次作るときにやってみよう
>>705 lexとyaccを使おう・・・って、なんか雰囲気からしてVB使ってそうなのでlex/yaccは使えないな。どうしよう。
RPGなら、メッセージだけは外部ファイルに置いて暗号化して、処理そのものはハードコーディングしてしまう、というのが簡単でいいかも。
>707
いや、VC++です。VBは中退しました。
lex/yaccを調べてみます。ありがとうございました。
つーか最初は再帰下降で書けよ
710 :
デフォルトの名無しさん:01/09/15 07:02
初心者すぎる質問ですみません。
WindowsプログラムでJPEGは使えるのでしょうか。
BMPだと容量が多すぎて・・・。
ちなみに、言語はVBです。
>710
VBならLoadPictureでjpeg使えるだろ?
俺も今再帰下降で組んでる。なんか自分で作るのって勉強になるわ。
>>708 VC++なんだ。勘違いだった。正直すまんかった。
今ならXMLで書くという選択肢もあるよ。解析器はIE4以上の環境にはMSXMLが入っているし。
XMLだと市販/シェアウェアのエディタが使えるので、入力が楽になるというメリットもあり。
710に便乗で
BCCでもjpagは使えますか?
715 :
デフォルトの名無しさん:01/09/18 00:50
>>714 JPAG曝し上げ。
BCCに標準でJPEG使える機能があるのかどうかはしらないけど、
普通はIJG(
http://www.ijg.org/)ライブラリを使ってJPEGのデコードします。
インテルからも高性能なDLLが無料で配布されているので、そっちを当たるのも吉。速くてしかも使いやすいので。
716 :
デフォルトの名無しさん:01/09/18 01:25
>>714 jpeg.hpp があれば使えるんじゃない?
717 :
デフォルトの名無しさん:01/09/18 01:35
>>714 OleLoadPicture();
副作用でgifやpngまで読めちゃったりしますが。
718 :
デフォルトの名無しさん:01/09/18 02:06
アルファチャンネル付きPNGを出力できるフリーソフトって無いのでしょうか?
かれこれ2日間探しているのですが見つかりません
PhotoShopですらできない(条件付き)とかの情報もあるので、やっぱないのかなぁ
>>718 自作なら有るけど。
別にグレースケールのAlphaMap用意しないとダメだけどね。
>>719 >>720 情報ありがとうございます。自作の欲しいなぁ…(w
Vectorは真っ先にチェックしたのですが、紹介で駄目そうなのは弾いてたもので…
ちょっとおざなりだったみたいです。この中にあるのでしょうか?今度は一つ一つさらってみます。
用途はDirectGraphic用のテクスチャです。他のフォーマットにしろ、
ってな話もあると思いますが、PNGで可能ならば色々と便利なので。
同人ノウハウ板の方が詳しいのですね?これから見てきます。レスサンクスです。
ちなみに自作でやった場合、何かライブラリとか利用したのでしょうか?
まだ調べてないのですがlibpngとかで簡単に作れますか?
失礼しました
>>720さんのリンク先にありました。
てっきりパレット透過しか出来ないのかと思って早々に蹴ってました(言い訳)
情報重ね重ねありがとうございました。
>>718 僕 TGA32ビットの奴を PNGに変換する奴作ったよん。
>>723 せっかくだからどのソフトか書いて〜(w
C++でのタスクのサンプルはよくでまわっていますが、
Cやアセンブリといったクラスのない言語で書くにはどうしたらよいのですか?
newとかでクラス宣言等出来ない分ちょっとやりにくそうだなって思っているのですが、、
mallocでできちゃうものなのでしょうか?
他力本願ですいません。。
>>726 タスクの管理側からコールバック関数を呼び出すときに、タスク固有の
作業領域(ワークエリア)へのポインタを渡せば良いだけだと思うが。
たとえば、こんな感じ。
typedef struct task_ {
struct task_ *prev;
struct task_ *next;
void (*func)(struct task_*);
char work[WORKSIZE];
} task_t;
void
exec_all_task()
{
task_t *p;
for (p = task_begin; p != task_end; p = p->next)
(*p->func)(p->work);
}
static void
cbfn_task_a(char *p)
{
work_a_t *work = (work_a_t *)p;
// work を使って状態遷移
}
task_t *
create_task_a(void)
{
task_t *p;
p = malloc(sizeof(task_t));
if (p != NULL) {
work_a_t *work;
p->prev = p->next = NULL;
p->func = &cbfn_task_a;
work = (work_a_t *)p->work;
// ワークエリア初期化
}
return (p);
}
実際には malloc() じゃなくて固定長で確保した配列から切り出してくる(実行時に
メモリ不足が発生しないように)とか、task_begin ... task_end で繋がれたリストに
作成したタスクを登録/削除する処理とかも必要。
>>724 おお凄い。みんな自前でサクッと作るんですねぇ。
でも願わくば公開の方向で(w
>>725 そりゃそうだ。訊くだけきいといて逃げちゃあね〜。
いや便利で良いソフトの上、2chということで無意識に躊躇したみたい(w
shin's PNG Editerというやつです。ここに書いてもしょうがないけどshinさん感謝。
730 :
デフォルトの名無しさん:01/09/30 04:17
あげてみる。
だけでは申し訳ないので、ゲームにスクリプトが必要ならPythonとかRubyみたいなスクリプト言語を組み込むソリューションを提案してみる。
プログラマがスクリプトを使うならPythonやRubyで問題ないが、
シナリオライタなんかがスクリプトを使う場合はそうもいかない。
文章+埋め込み型スクリプトなんかになる。
>>731 その文章+埋め込み型スクリプトを、RubyやPythonに
置き換えるツールを作るのは駄目?
>>732 プログラマじゃない人が扱う可能性のあるスクリプトに
あまりプログラムプログラムした機能はないほうがいいというのが
プログラマのほぼ共通した見解。
>>733 でも、フラグや分岐機能のあるスクリプトって、行番号BASICやアセンブラに近いと思うんだけどね。
RubyのOOPな機能をフルに使ってくれ!というのは酷(プログラマ相手でもそんなこと言えない)だけど、
>>732みたいなアプローチは有りかな?と思ったり。
配布サイズがDLLだけで1MB越す辺りで、ネットワークによる配布が厳しくなると思われるけど。
735 :
デフォルトの名無しさん:01/09/30 15:47
>>734 RubyやPythonへのトランスレータ書くなら、
独自のデータに落す方が楽だし、ライセンス問題もないからな。
736 :
デフォルトの名無しさん:01/09/30 15:53
>>730 時系列の記述が容易に出来ないから駄目。
737 :
モナーもな:01/10/01 18:31
ものすごく初歩的な質問なんですけど
C言語の力がどのくらいのレベルまで身に付けば
ゲーム開発の基礎力はОKですか?
作ろうとしているゲームに必要なだけの実力があればいい。
ゲーム製作は、Cをマスターするよりも学ばないといけないことが
多いんで心してかかれ。
739 :
モナーもな :01/10/01 18:59
>738
そうですね。
確かにCのマスターが目的じゃないですからね。
それから、C以外にどんな分野の基礎力を付けておくべきですか?
740 :
デフォルトの名無しさん:01/10/01 19:24
>>739 高校1,2年くらいの数学(とくに幾何関係)は必要だよ。
3D はもちろん、2D でも三角関数とか使うよ。
あと、とにかくコードを書くというチャレンジ精神。
ゲームプログラミングはやってみないとわからないことが多いから。
> 2D でも三角関数
どんなときに使うのですか?
>>737 とりあえずそんなこと聞いてる段階ではNG
目標があるのはよいことだ。
がんばれ
ゲームだからって数学が必要とは限らんよ。
別にVisualに凝ったものとは限らないし
745 :
デフォルトの名無しさん:01/10/01 20:50
なんでも3Dって風潮が、ダメっぽいな
746 :
デフォルトの名無しさん:01/10/01 21:13
>>745 >なんでも3Dって風潮が、ダメっぽいな
などとほざいてる奴は、技術遅れのダメ社員
2D格闘ゲーですら背景3Dの時代だぜ。
747 :
デフォルトの名無しさん:01/10/01 21:18
SF映画も3D CGの時代だしな(藁
で、背景が3Dだと、ゲームがおもしろいの?
それでおもしろいんなら、べつに、いいや。
3Dが流行ってるのは、たとえゲーム性が2Dであっても
表現の幅を広められることができるからだ。
エロが入っているからおもしろいのかどうかと似ている。
(最近の萌えゲーはどうよ?エロは本当に必要か?)
エロは単純に言えば表現の幅を広げることができる利点がある。
エロゲオタキショイ
表現の幅を見たいんじゃなくておもしろいゲームをしたいだけなんだけどなあ。
見せたがってるモノを見せられるだけゲームにはうんざり。
752 :
デフォルトの名無しさん:01/10/01 21:26
エロげーやらんけど
ごっこ遊びとおなじで、遊びの世界にはお約束があってもいいんだとおもう。
誰も見せたがりはせん。そういうのはFFでやってくれるからな。
表現の幅が広がることの利点とは何か?
それは、広まった表現法をくしすることで、損をすることがなくなるということだ。
つまりそれ相応の技術を使っていて普通。
(それがおもしろさに繋がるかはまた別)
使っていないとどんなにおもしろくても舐められる。
下手すると手にもとってももらえない。
>見せたがってるモノを見せられるだけゲームにはうんざり。
これには同意しておこう。
正直おもしろいだけでプレイしてくれる751みたいなのが大半ならうれしい。
正直、非生産的
756 :
デフォルトの名無しさん:01/10/01 21:42
ある程度の話題性がないと、
そもそも、見向きもしてくれないもんね。
そういう、雰囲気作りとか、話題づくりとか
ご褒美をあげる絶妙なタイミングとか
落とし方って
ゲーム作る技術のうちだと思うんだが
んー。
よく見たらスレと関係ない話題だね。ごめん
757 :
デフォルトの名無しさん:01/10/01 22:00
スクリプトって作るの面倒だね。
RPG等のひとつのイベントは命令クラスのベクトルでいいのかな。
758 :
デフォルトの名無しさん:01/10/01 22:26
ミニゲーム付きムービーもうんざり。
パラメータ付きストーリーもうんざり。
現実問題として、ドット絵職人がもういません。
画面の解像度だってVGAが標準になっちゃったし、
3D背景のほうがむしろ楽なのよ。
760 :
デフォルトの名無しさん:01/10/01 23:02
ドット絵なら遠藤氏だ!
761 :
デフォルトの名無しさん:01/10/01 23:04
3Dだとおお
馬鹿な!
そんな馬鹿な!!
3Dにしたって
バーチュアルリアリティーみたいに
実際に触ったりもんだり
入れたり
入れられたり
できなきゃ
3Dにしたってそれはただの平面画像だ!!!!
あるいはギルティーギアみたくアニメ絵になるとか、そういう流れだな。今はもう。
763 :
デフォルトの名無しさん:01/10/01 23:08
今はもう・・・懐かしい 雪に消えたクリトリス
764 :
デフォルトの名無しさん:01/10/01 23:20
氏合わせ、あふれ、変人たちの輪の中に
765 :
デフォルトの名無しさん:01/10/01 23:22
>>757 クラスのベクトルって意味不明なんだが
ゲームプログラミングではよく使う言葉なのか?
766 :
デフォルトの名無しさん:01/10/01 23:23
>>765 C++的に言うと
vector<Hoge> aHoge;
のことだろ?
うお、あんなので意味が通じてるのか。
勉強不足だったスマソ
ひょっとしてゲー専って、そういう用語を教えてくれる学校なのか?
>767
もっと読解力と想像力を身につけろよ。
いや、そのくらいの想像力はあったんだが
持ちうるあらゆる読解力を駆使しても
>RPG等のひとつのイベントは命令クラスのベクトルでいいのかな。
は解読できなかったんだよ。
だから、なんかの専門用語かと思ってた。
なんでイベントが、命令クラスのベクトルでいいなんて考えるんだ?
いえ、全部自作自演です。
>770
イベントは、上から下まで命令で出来ているからです!!
ああ、残念ですがもう寝る時間です。又明日。熱いのを期待してますよ(^ー^;
せめて用語の意味をはっきりさせろ。
スクリプトとはなに?
スクリプトを書くのか、インタプリタを書くのか
イベントは、actionと言う意味のイベント?
それとも、questのこと?
命令クラスってなに?
>>774 言語能力が劣る人間を問いつめてもかわいそうだよ。
ああいうのはきっと、頭の中にある言葉の断片を、そのまま掲示板に垂れ流してるだけなんだ。
自分の抱えている問題を明確に説明できないようなのが
今時のゲーム業界の底辺を支えてるのかな?
>>775 んな事はどうでもいいよ
有意義なこと書こうぜ
>>774 命令クラスってのは、デザインパターンで言う
commandパターンのようなものじゃないかな?
本人じゃないから分からないけれど。
とりあえず、リアルタイム対戦なネット対戦ボコスカウォーズみたいの作ろうと思う。
通信データ量はたかがしれてると思うので
操作できるユニット数を頭が悪く思われるほどたくさん増やしたい。
同時に4人くらいで遊べるとして、
いったいどのくらいのユニットをスムーズに操作できると思う?
>>776 じゃ、有意義っぽい事書こうか。
>RPG等のひとつのイベントは命令クラスのベクトルでいいのかな
イベントというか、もっと細かい単位の命令(キャラを右に動かす、音を出す、体力を4つ増やす)を
commandパターンのクラスで実装。
スクリプトエンジンからシナリオランナーにcommandの配列(std::vector)で渡す。
これ以外に、スクリプトエンジンとシナリオランナーの上手い橋渡しってあるかな? コールバックも有力だと思うけど。
>>772 スクリプト内でサブルーチンの呼び出しなんかが入ってると
もう少し凝った構造が必要になるかも知れんね。
あ、でもアセンブラのcallとretの例を考えれば、
ただの命令の羅列でもいいか。
>>778 通信データ量とか試算してみた?
想定している通信速度なんかを挙げてもらえないとなんとも。
ふつうInterpreterパターンとCommandパターンを併用すると思うが、どうよ?
>>779 やっぱcommandパターンか
コールバックを用いる方法について詳細希望ヽ(´ー`)ノ
>>781 ボコスカウォーズしらん?
操作はカーソルキーだけだよ。
全ユニットが、指定した方向に一個ずつ動くの。
障害物があれば引っかかるし、
敵対物があれば、攻撃する。
通信量は限りなく問題にならず
どちらかというと、マスデータの効率的なやりくりと
表示が問題になる。
>>777 772によると、
>イベントは、上から下まで命令で出来ているからです!!
こういうことなんで意味不明。
命令がcommandだとすると、イベントはクエストのことではなく、
複合commandのことなのかな?
>>784 ゲーム内容知らなかったスマンコ(;´Д`)
ってことは
>いったいどのくらいのユニットをスムーズに操作できると思う?
クライアントの処理能力の観点からってこと?(?´ー`)
>>785 772の言っているのは
単なるcommandパターンオブジェクトのvectorの事だと思われる。
>>786 そそ。
たとえば一プレイヤー一千騎のユニットを4人で同時に操作するとして
現実的な速度で処理と、描画が行えるかという問題。
これが一プレイヤーあたり一万騎とかいったら、
工夫せんと、処理しきれないでしょ?
788 :
デフォルトの名無しさん:01/10/02 00:31
暗号解読記念age
>>787 画面外のキャラもちゃんと処理するん?(?´ー`)
そうすると大変やねー
とりあえず何が最大のネックになるだろ・・・
どう考えても描画だ (藁
>>790 (藁 と付けて大物気取りですか?(^Д^)
つか、描画がネックなら普通に描画を工夫する、
ってだけでネタ終了かよ
787の考えてるゲームにおいて
どんなうまい描画方法があるかとか、
それくらい書こうな
その、どんなうまい描画方法があるか、が
問題のところなんだけど
まず、一度、ボコスカウォーズ見てくれ。
話しはそれからだ
>>787 本当に通信が問題にならん?
判定処理ををホストにさせるとして、移動できたか出来なかったか、
攻撃があたったからユニット消滅とかいちいちデータをクライアントに
送らないとあかんの違う?
ユニットの初期配置と、地形の情報だけはじめに共有しておけば
後は各プレイヤーが、自軍をどっちに動かしたかだけを送ればよいので
通信は問題にならないねー。
個別に操作するのではなく、自軍が全部同じ方向に動くってのがポイント。
どお?イメージは伝わったかな
googleで「ボコスカウォーズ」を入れて三番目にヒットしたとこ、画面とレビューが載ってる。
ナツカシー
>>794 他プレイヤーの操作データが届くまで処理が止まるから
ガックンガックンになりそうな感じですが。
4人同士一バイトですむ情報のやりとりくらいなら、同期とれないかなあ。
>>797 同時に動かす必要はなさそう。
一人一回ずつ動かせばいいんだよね。
トルネコと同じだ。
問題は各プレイヤー間のマシンスペック(描画能力)ギャップだと思うんだが。
通信遅延はこの場合ほぼ問題にならんだろ。
>>798 たしかに。
リアルタイムはダメだな。
一人一コマンドずつってことにしよう。
いや、すまん。
で、
王様が一万騎くらいの仲間を動かすとして、
よい描画方法はないモノかな?
802 :
デフォルトの名無しさん:01/10/02 01:22
746が、3DでかっちょよくしてくれるYo!
3Dって、おい..
とりあえずコード書いてこい
>>805 それはそれで見てみたい!
ライフゲームか
ウンカのむれのごとくワラワラワラワラと!
ゲームの新しい地平のヨカン
1280×1024の解像度を使えば、なかなか良いカモ・・・
いや、コンセプトは、大昔にすでにあって
ゲームとしても完成してるんだって。
ただ、スケールがでかくなったときに、
どうやって実現するべき何だろうなーって
考えない?
馬鹿正直に全部描画は出来ないよなあ。
拡大スケールごとに描画オブジェクトの一覧を作成しておくべきかな?
今時のCPUは速いから、演算処理そのものは間に合いそうだよね。
戦闘処理も、ランダムでどっちかしぼんぬってだけだし。
809 :
デフォルトの名無しさん:01/10/02 04:30
それって1万の兵隊が全部画面内にいるの?
それだと描画負荷以前に、解像度とかが問題になりそうだが。
両軍1万ずつだと2万の兵隊になるから、240*160=38400マスくらいは欲しいかな。
1キャラ8*8ドットだと1920*1280くらいの解像度が必要になるよ。
ちなみに言語は何を使うか知らないが、ボコスカ程度なら馬鹿正直にやっても余裕。
1キャラ1オブジェクトじゃなくて、1キャラ1ドットの画像処理だと思えば良し。
240*160の画像にちょっとしたエフェクトかけるのと大差ないよ。
そもそも、ボコスカはシステムの都合上フレームレートが低くていいから、多少重く
ても関係無いし。
ちなみにボコスカって全部まとめて移動だけじゃなくて、種類別に移動できるよ。
王様だけなら単独でも移動できるし。
しかし、ボコスカの魅力って味方の兵隊を鍛え上げてレベル上げて、それを
駆使して戦うゲームだと思うが、1万もいたらどれがレベル高いのか分から
ん気もする。
素人だからよくわからんが
「とりあえずシンプルなのをつくって、どんどん拡張して実験してみろ」
っていう声が庭から聞こえた
ただでさえゲーム関係はローカル用語が多いから
なるべく人に聞くときはわかる単語をつかってくれ・・・
スマン 765以前に対してのレスね
種類の違う兵は形を、レベルの高い兵は色を変えるとか。
814 :
デフォルトの名無しさん:01/10/02 09:49
表示も最小表示で2x2ドットありゃーなんとかなるよね。
ゴチャ系ゲー age
陣形の有効性とか地形効果とか
ランチェスターの法則とか
判定式でなくマジでシミュレートできそうだな
つーか、普通に1ユニット単位できちんとシミュレートして
結果的にランチェスターの法則が成立するというのが理想でないかい。
オブジェクト数100倍の決戦とか三国無双とか見てみたいな。
PS3はよ出せ。(気がはええ〜〜
とりあえずPCで実現してミレ
最高スペックのPCは、ゲーム機よりも性能は上だ
>>818 PCはメモリ転送速度が致命的に遅いのでそれは無い
>>817-819は食傷気味な展開なので置いておくとして・・・・。
流れを追っている感じ、「派手なライフゲーム」のようなものを
イメージしているんだけど、そんなもんで宜しいか。
プログラマが好みそうな普遍的なテーマなのか、何か共感してもうた(w
つまり、イベントは、メッセージを表示する、キャラを動かす、エフェクトを入れる、サウンドを鳴らす、どこの命令にジャンプなどの命令でできているので、命令のベクトルで成り立っているということです!
>>821 イベントの構成要素ではなく、イベントの定義を聞いているわけ。
>命令のベクトルで成り立っているということです!
それなら命令のベクトルでいいじゃん。
何を聞きたいわけ?
もしかして、ネタ?
>822
用語を説明したまでです。
>イベントの定義
知りませんか?RPGつクールで出てくるアレですよ。あれ以外に何かあります?
それと、余計なことは口にしないでください。
要約すると、「お前らは俺の質問にだけ答えて、余計なことは気にするな」か。
vectorかベクトルかはっきりさせろ。
ていうか>821は>757じゃないだろどうみても。
>もしかして、ネタ?
これが余計です。いちいち「ネタじゃありません」というのはうんざりです。
はい、vectorです。
821=757です。757とついてるものは全て757です。
>>826 じゃぁ聞くけどさ、821の記事ののどこが説明なわけ?
言い回しを変えただけで、今まで書いてた事と内容に違いないでしょ?
質問するならもっと整理してからにしてください。
まぁ、いいや。
命令のベクトルでいいから、一度実装してみろ
それでダメならまた質問しにこいよ。
>828
あれで理解できないとなると、残念ながらもはやあなたは私の手に負えません。
>>820 んー、派手じゃなくても、
ASCIIキャラでもなんでもOKなんだよね。
今、一応設計チュー。
ゲーム作ったことないけど、なんか、こういう題材だと、
ゲームの本質って何なのか問いやすいんじゃないかって思ってね。
文盲がいるな・・・
>>830 これだけいってもまだ説明できないとなると、残念ながらもはやあなたは私たちの手に終えません(藁
ゲー専の講師ってこういう言語障害者を相手にしなきゃいかんのか。
ゲーム理論や制作以前に、小学生の国語から教えないとだめそうだな。
>知りませんか?RPGつクールで出てくるアレですよ。あれ以外に何かあります?
自分の頭の中にあることを言葉で明確に表現できないのな。
指示代名詞で説明した気になられてはな。
君掲示板に書くのに向いてないよマジデ
757は新鮮だった。俺は見ててエンジョイしていた。
神経太くいこうぜ。『757=ネタ』は公然の秘密さ。
飼って遊んどけ。
>>837 ありがちなパターンだろ
「ネタだったら釣られないようにしつつ、真性だったら引きずり出す!」
っていう殺るか殺られるか、そんな殺伐とした雰囲気がいいんじゃね―か。
>>838 そんなん俺らに同意を求められてもなー。
書いてて恥ずかしくならんのか・・・。
で、そろそろ話を元に戻さないか。
>834
勝手に他人を巻き込まないでください。あと、藁とか言って私より上の立場になったつもりですか?
そんな意味無いことしないでください。
>835
あなた、思考がワンパターンですねぇ。最後の手段として誤字、脱字、文章の稚拙さを水を得た魚のように指摘するタイプでしょう。
>836
なんでもかんでも補完しないと理解できないのですか?あなたはもしかして割れ厨ですか?
ていうか、RPGつクールのアレと言った時点で理解できないならそれ以上説明しても無駄ですよね(^_^;
面白い!面白いよ!
だって、プログラマはRPGつクールなんて使わないもん。
844 :
デフォルトの名無しさん:01/10/03 15:53
>>843 禿藁。
でも俺、高校の時にツクールを参考資料にして
ツールとか作ってたことはあった。教材だね。
ところで何の話だったっけ。スクリプトか。
一応お約束として、
flexとかbisonの使い方を覚えると後々便利かもね。
とだけ書いとくアル。あ、別に本格的にやらんでも平気だと思う。
>RPGつクールのアレと言った時点で理解できないならそれ以上説明しても無駄ですよね(^_^;
RPGツクールのアレでできるなら、RPGツクールでつくれよ(藁
757はRPGツクールのマニュアルを(読まない|理解できない|持ってない)だけ。
同梱のドキュメントもちゃんっと読んどけよ>757
親切に書いてやるが、wordpadで読めるからな。
>>841 やっぱりネタか
面白くないからもういいよ
>>852 アリガート。
googleで 「flex bison ゲーム スクリプト」とかで
検索すると他にも色々出てくるので試すといいかも。
でも、こっちの話題に反応してくれる人は少ないみたい。
みんなプログラミングよりジャレ合いが好きなのかもね。
チト残念なり
ゲームに使うスクリプト程度なら、
bison/flex使わずに手動でLLで構文解析機書くと良いんじゃない?
ライセンスに縛られなくなるし、理解も深まる
中級者とかに良くありがちだなぁ
自分は分かっているつもりでいて勝手に話をすすめるヴォケが。
ん?初心者にもいるか。。
>>853 僕はデータ構造をXML、スクリプトエンジンはPython等のスクリプトを利用するようにしているよ・・・
先人は偉大なり。
でも一度くらいyacc/lex使ってみようかな。
>>855 スクリプトの話と、757とのじゃれあいを平行して進めたらいいじゃない。誰も困らないよ。
858 :
デフォルトの名無しさん:01/10/03 21:17
>>854 漏れもその点は同感。
>>856 えと、誤解されるとアレなので念のため
書いておくと、855は別人。
サプリメントでも摂取しなはれ。
放置で。
正解
どうでもいいからプログラムの話しようぜ
つか俺もデータ構造はXMLを利用しているよ。
読み込むプログラムを自分で作ってみたんだけど
要素1つについてアトリビュートを1つしか読み込めない
お粗末なものしか作れなかった俺死ね
865 :
デフォルトの名無しさん:01/10/03 23:25
データ構造??
なんのデータ構造にXMLを使うんですか?
XMLってHTMLみたいなやつですよね。
>>865 各種設定ファイルとか(笑)
XMLのエディタとか使えるから楽かなー、と思って試しに使ってみたよ。
データ構造を考えるのが面倒だったというのは秘密で(笑)
イベントスクリプトは普通にn88basicとかバッチファイル程度のものを使っているよ。
いいXMLのエディタってない〜? スレ違いかしらん。
>>867 秀丸でしか打った事の無い、労力を省く為の努力を怠る俺は屑人間。
お〜い、757〜
早く出てきて盛り上げてくれ〜
>>869 タグ埋め込みのマクロなんかを組んでテキストエディタで地道に編集してるよ。
ただ、プログラマ以外の人間が編集するのなら
専用のエディタも選択肢に入ってくるかもしれないねヽ(´ー`)ノ
XMLデータに手軽にアクセスできるスクリプト言語があれば
個人的に嬉しいのだけれど(笑)
>>870 心の底からどうでもいいです。ぺこり
856
>>864 パーサは何を使ってる? XML4C? MSXML?
XML4C使ってるんだけど、なんかメモリリークしてるような気が・・・
>>872 XML4Cは自分でメモリ開放せにゃならんでしょ
874 :
デフォルトの名無しさん:01/10/04 10:02
Xercesはどうかにゃー?
>>874 XercesをIBMが多言語対応にしたのがXML4Cっすよ。ソースコード殆ど一緒。
>>873 XMLUtility::Terminate()かな? それはしてるんだけど、Detected Memory Leaks!が大量に出てくる。
どこにもnew使ってないし、開放しろとも言われてないのに・・・
マニュアルには"メモリリークじゃないよ"って書いてあるけど信用できねぇ。
>>875 だったら、BoundsChecker使ってチェックしたら?
ただ開放してないだけかもしれないし。
たんに解放しないのをメモリリークと呼ぶかどうかは難しい問題だな。
>>872 パーサは自分で作ったよ。
そしてお粗末なものしかできなかった(;´Д`)
msxmlとか使ってみたいんだけど、
あれってdll突っ込めばそれだけで動くますか?
879 :
デフォルトの名無しさん:01/10/04 17:11
>>878 xercesやXML4CはDLL突っ込むだけで動く。
msxmlは新しいIEのインストールが必要(msxmlだけのインストールも出きるけど、ユーザにはIEごとインストールしてもらった方が説明が楽)。
>>879 じゃあゲームに組み込むんだったらxercesとかxml4cってのが良さそうですね。
とりあえずググルして調べてみるますヽ(´ー`)ノありがと
881 :
デフォルトの名無しさん:01/10/04 17:56
メモリリークって言うの面倒くさいからメモリークでいい?でもミルメークみたい。ププ・・・
882 :
デフォルトの名無しさん:01/10/04 17:58
>>881
ワラタ
ときどきメモリーリークするので、ときメモでいい? ププ…
>>884 そのネタは俺も思いついたが、書かなかった。
自制心を身に付けよう。
>>880 でもxml4cは(多言語対応DLLが)でかいんだ・・・ネットワーク配布は思わず辞退してしまうくらい。
僕なら、
・IE5以降を要求してMSXML
・xercesで開発、ただし文字コードはUNICODEを使用
の二者択一。UNICODE使えばxercesもそんなに大きくないDLLで動くので。
>>889 他にもVectorに簡易パーザが置いてあったような記憶が。
わざわざ非標準のライブラリ使うのはお勧めできないけど。汎用的なスキルとして蓄積できないし。
そうそう、MSXMLも新しい機能を使わなければIE4で動くよ。"IE4以上"の要求なら妥協できるんじゃない?
それにしてもでかい車輪ばかりで困る。(プログラム板ネタ)
892 :
デフォルトの名無しさん:01/10/05 08:47
DOS窓上で動く倉庫番を作ろうと思うのですが、
参考になるプログラムを公開しているサイトor本ってないですかね?
自分で探したんですけど、DOS版倉庫番作っている人が見つからないもんで
誰かお教え下さいm(。。)m
EGA/VGAで探してみたら?
どうせVRAM直書きだし
>>892 オウムの倉庫番(ミスるとハードディスク初期化するヤツ)はDOSでしかもソースつきだったぞ。
オウム関連のサイトをさがすといい。
896 :
デフォルトの名無しさん:01/10/06 09:22
クソスレ乱立回避のためage
C++のスレでも書いたんですが・・・
DirectX sdkを使用してC++6.0でブロック崩しのプログラムを書いてみたんですが、コンパイルは特に問題ないのですが、リンクするときに
DXBlock.obj : error LNK2001: unresolved external symbol _DDLoadBitmap
等と9つ位出てしまいます。
これはsdkをちゃんと読み込んでないってことなんでしょうか?
おねがいします。
>>897 ddutil.h/ddutil.cppはあるか?
無ければそのファイルをプロジェクト内にいれてるか、パスを通す必要がある。
>>897 あと、お約束だけど
VC++6.0はデフォルトディレクトリにDirectX5SDKが入ってるから
最新のSDKをインストールしたら、そのディレクトリ設定を一番上に加えて。
そうしないとDirectX5SDKのファイルを先に見にいっちゃうから。
[ツール]→[オプション]→[ディレクトリ] ね。
隊長!ついに900です!
このスレ、意外なほど荒れないよな。
ゲーム関係スレが荒れないで、スクリプト関係スレが荒れているのを見ると不思議に思う。
>>901 こっちはこっちでまったりやろうぜヽ(´ー`)ノ
新スレ立てたら、心機一転嵐が流れてきそう
>>903 そしたら放置でいいよ
めんどくせーよマジデ
>>898 アドバイス有難うございます.
ddutil.hはインクルードしてたんですが、ddutil.cppは入っていなかったようで、ワークスペースに入れたら、リンクエラーが9つから6つに減りました!
残ってるのはDirectSound系の
XBlock.obj : error LNK2001: unresolved external symbol _SoundPlayEffect
DXBlock.obj : error LNK2001: unresolved external symbol _DestroySound
DXBlock.obj : error LNK2001: unresolved external symbol _DirectDrawCreate@12
DXBlock.obj : error LNK2001: unresolved external symbol _InitSound
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/DXBlock.exe : fatal error LNK1120: 5 unresolved externals
の6つです。
お時間ありましたらお助けください.
長レスすみません.
>>905 あと、VCのパッケージにMSDNのCD入ってるよね。
とりあえずヘルプでLNK2001を検索してみ。
>>898 有難うございます。
MSDNで検索して、プロジェクトの設定で直接ddraw.libをリンク/モジュールに追加したら、上記のエラーは全部消えた^^んですが、変わりにしたのエラーが出てしまいました.
LINK : fatal error LNK1117: syntax error in option ""
この””の中に何か入るべきなんじゃないんでしょうか?
自分が持ってるのは英語版なので、無理に日本語に訳すと、
致命的なエラー、オプション""上の構文上の誤り。
ってとこでしょうか?
後、自分の勉強している本による通り、
[ディレクトリ]のインクルードファイルにはC:\DXSDK\sdk\samples\duelとC:\DXSDK\sdk\samples\misc,
ライブラリファイルにはC:\DXSDK\sdk\libをいれて、一番上にしています.
>>908 わかりました。
まずそのリンク先で探してきます.
いや、逆。逆。
試すかのは自由だけど。
× 試すかのは
○ 試すのは
>>909 もうやってるとは思うけど、念のため。
インクルードファイルのディレクトリ C:\DXSDK\sdk\include
あとライブラリファイルは
winmm.lib とか dxguid.lib も加えといて。
後はサンプルのプロジェクトファイルを参考にして。(←重要)
正直、リンクが上手く行かないときは萎えるな。
コンパイルエラーと違ってエラーの根本的な原因がわかりにくいし。
このスレ、わりと優しい奴が多いよな。
これが相談室らしい相談室ということか。
次スレの1か2あたりに入れといてください。
昨日、2chのプログラム板行ったんです。プログラム板。
そしたらなんかスレがめちゃくちゃいっぱいで読み切れないんです。
で、スレ一覧よく見たら、なんか「ゲームの作り方教えてください」とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、ゲームの作り方如きで普段来てないプログラム板に来てんじゃねーよ、ボケが。
ゲームだよ、ゲーム。
なんか同人サークルご一行とかもいるし。同人仲間でプログラム板か。おめでてーな。
よーしFFみたいなロープレ作るぞー、とか言ってるの。もう見てらんない。
お前らな、FF8タダでやるからそのスレ削除依頼出しとけと。
プログラム板ってのはな、もっと殺伐としてるべきなんだよ。
一個前にレスつけた奴といつ喧嘩が始まってもおかしくない、
煽るか煽られるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと書き込めたかと思ったら、隣のスレの奴が、C++で、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、C++なんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、C++で、だ。
お前は本当にC++でデザインパターン使いこなせているのかと問いたい。問い詰めたい。FFみたいなロープレが完成するまで問い詰めたい。
お前、単に格好良いからC++に流れているだけちゃうんかと。
プログラム板通の俺から言わせてもらえば今、プログラム板の間での最新流行はやっぱり、
ゲームプログラミング相談室スレ、これだね。
HSPとDirectX。これが通の実装。
HSPってのはN88-BASIC入ってる簡易言語。そん代わり出来ることがかなり少なめ。これ。
で、それにDirectX。これ最強。
しかしこれで実装すると次から同業者に馬鹿にされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前らド素人は、RPGツクールでも使ってなさいってこった。
最近ATLの勉強しているもんで
自作のDirect3Dのラッパーライブラリを
COMで作りなおそうと思っているんですが、
どうもCOMにするメリットが見つけられなくて
やる気が出ません。
COMにするメリットって何か無いですかね?
>922
なげーYO!
>>923 デメリット:インストール、アンインストールが面倒(レジストリに登録する場合)。
実装が面倒。他人に使ってもらうのでなければあんま意味がない。
メリット:優越感
>926
ぷよーんがその路線の第一人者と言えるな。哀しいほどに
別に、COMで実装するな、と言ってる訳じゃないよ。勉強になるしね。
報知で
>>923 「勉強になる」こと以外利点あるのかなあ
>>931 ゲームのコアの部分を COM 化しておくと、マップエディタなんかを作る場合に
ロジックは VC++ でゲーム本体用に使ったものを流用、見かけ VB で使って
手を抜く、とかできそうだけど。
>>932 COMじゃなくて、普通のDLLでも可能だしねぇ。
アドバイスありがとうございます。
保留にしますです。。
>>898 返事が遅れてすみません、週末はレポートで潰れました。
指示の通り、winmm.libとdxguid.libは加えました。
あと、サンプルファイルに入っていて、自分のフォルダに入っていないものも加えました。
そうしてから出るエラーは:
LINK : fatal error LNK1104: cannot open file "ddraw.h"
なので、ddraw.hもプロジェクトファイルにコピーすると、
ddraw.h : fatal error LNK1136: invalid or corrupt file
と出ます。
ddraw.hが壊れてるのかと思い、俺が持つ3つのCD(SDK3、5,8)すべてのddraw.hを試しましたが同じことでした。
どうしようも無いような気もしましたが、理由がお分かりでしたらお教えください。
あと、もしホームページをお持ちでしたら、よろしければ上記のメールアドレスにurlをお送りください。
何度もすみません。
[email protected]
ファイルを加える場所が間違っていると思われます。
・・・ああもう、どこから説明したらいいのやら(w
とりあえず、現在ddraw.hを設定のオブジェクト/ライブラリモジュールという所に書いているのならそれを消して。
でコンパイル通らない?
>>937 あー。とりあえずSDK付属サンプルはビルド出来てる?
それが上手くいくなら、まずそれを参考にしてみて。(←重要)
あとは本を一冊ぐらい買っとくと良い。VC++6.0攻略本みたいなやつ。
あと、898さんと私は別の名無しさん。
強いて打ち明けると私は899のほうかもしれない。
てか、あんま気にしないでヨシ。オレモナー
皆、優しみに溢れてるなヽ(´ー`)ノ
みなリンク関連で苦労した経験があると思われ。検索しても解決すること殆ど無いしね。
>>941 え、そんなもんか?
俺はDirectX絡みで理不尽な状況てのはまだ経験してないんだが・・。
それとも実際に、「ドキュメントにすら載ってないようなマニアックな
解決手段を強いられる状況」が存在するということなのかな。
そりゃ気になるYO-
#define DIRECTSOUND_VERSION 0x0300
2ちゃんで知った。NTだけでエラーが出るからおかしいと思ったよ…
あー、バージョン定数か。
なるほど、確かに気づきにくいかもね。
ドキュメントにも一応サラっと紹介してあるが、あくまでもサラっとだった(w
つぅか、ヘルプくらい全ページ読もうぜ。
俺は毎回新しいバージョンが出るたびにhtmlに分解して1ページずつ読んでるよ。
全ページ読むならそっちの方がいい。目次からたどれないページもあるしね。
>>945 マジ?
興味のあるところは通読するけど、前ページ読むなんて苦行は想像もしたくないYO・・・
たしかに大変ではあるが、全部読んでおくと後々楽だよ。
DirectX8のヘルプ全体だと4000ファイルくらいだけど、DirectX Graphicsだけなら
1500ファイル程度だよ。
興味が無い部分も目を通しておけば、何か新しい事したいときに思い出すYO
つぅか、BBXや2chで質問する前に全部読めと言いたいな。
あ、俺は翔泳社のWin95APIバイブル1と2と、Win98APIバイブルも全ページ
読破したYO
APIバイブル3は挫折した。
>>949 まーじで(´д`;)!?
あのAPIバイブルを・・・。
役立ってる?
意識して読破するかどうかは好き好き(すきずき)でしょ。
だって、普通に仕事で使ってりゃ分厚いバイブルだって
何だかんだ言いながらボロボロになるまで使い込むもんでしょ。
>>948 確かにヘルプは全部目を通しておくと良いかもー
同機能の関数を自作し、
その後strstr()の存在を知った漏れの悲しみは異常
死ね俺
>>950 win16の頃なら全部読んだが、今のは、必要に応じて開くだけだな。
基本は変わっちゃいないし..
章のはじめにある概要だけつまんで読んでおくといいよ。
一個一個のAPIとサンプルは必要なときに嫁
>は毎回新しいバージョンが出るたびにhtmlに分解して
やり方教えてクレー。粘土をクレー。
コンパイルは通るんですが、リンクでエラーが出てしまいます。
オブジェクト/ライブラリ モジュールからddraw.hを消すと
Block.obj : error LNK2001: unresolved external symbol _DDReLoadBitmap
Block.obj : error LNK2001: unresolved external symbol _SoundPlayEffect
みたいのが9つ位出てしまいます。
付属のサンプルをトライしても同じです。
基本的なC++とSDKの環境設定ができてないのかもしれません。
時間が許せばSDKのヘルプをとりあえず全部読んでみようと思ってます。
試しに「chm」「逆コンパイル」でgoogleしてきんしゃい。
Office2000 Resource Kit の HTML Help Workshop とか使うと良いアルよ。
>>955 あー。じゃあとりあえずねー
サンプルのプロジェクトを“別フォルダにコピーしないで”(←重要)
そのまんま開いてビルドしてみて。(嫌ならそこのバックアップ取っといて)
それが失敗したらね、レジストリがおかしいのかもしれない。
『HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX』とか。色々。
弄るのがメンドければね、もうWindows再インストール。
>>958 ごめん。ビルドエラーとレジストリは関係ないわ。
>サンプルのプロジェクトを“別フォルダにコピーしないで”(←重要)
>そのまんま開いてビルドしてみて。(嫌ならそこのバックアップ取っといて)
やっぱこれが失敗するならお手上げだよ。原因全然分かんないや。
age
Direct3Drmをフルスクリーン表示に変更しているのですがコンパイルすると
-----------------------------------------------------------------------
hres = lpDirect3DRM->CreateDeviceFromSurface(NULL, lpDirectDraw,lpBackBuffer, &lpD3DRMDevice);
c:\direct3d\initd3d.cpp(36) : error C2664: 'CreateDeviceFromSurface' : 2 番目の引数を 'struct IDirectDrawSurface *' から 'struct IDirectDraw *' に変換できません。 (新しい機能 ; ヘルプを参照)
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
hres = DirectDrawCreate(NULL, &lpDirectDraw, NULL);
c:\direct3d\main.cpp(145) : error C2039: 'SetCooperativeLevel' : 'IDirectDrawSurface' のメンバではありません。
c:\mssdk\include\ddraw.h(1417) : 'IDirectDrawSurface' の宣言を確認してください。
hres = lpDirectDraw->SetCooperativeLevel(hwnd, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE | DDSCL_ALLOWREBOOT);
c:\direct3d\main.cpp(145) : error C2039: 'SetCooperativeLevel' : 'IDirectDrawSurface' のメンバではありません。
c:\mssdk\include\ddraw.h(1417) : 'IDirectDrawSurface' の宣言を確認してください。
hres = lpDirectDraw->SetDisplayMode(640, 480, 16);
c:\direct3d\main.cpp(147) : error C2039: 'SetDisplayMode' : 'IDirectDrawSurface' のメンバではありません。
c:\mssdk\include\ddraw.h(1417) : 'IDirectDrawSurface' の宣言を確認してください。
hres = lpDirectDraw->CreateSurface(&ddsd, &lpPrimary, NULL);
c:\direct3d\main.cpp(157) : error C2039: 'CreateSurface' : 'IDirectDrawSurface' のメンバではありません。
hres = lpDirectDraw->CreateClipper(0, &lpClipper, NULL);
c:\direct3d\main.cpp(184) : error C2039: 'CreateClipper' : 'IDirectDrawSurface' のメンバではありません。
hres = lpDirect3DRM->CreateDeviceFromSurface(NULL, lpDirectDraw, lpBackBuffer, &lpD3DRMDevice);
c:\direct3d\main.cpp(193) : error C2664: 'CreateDeviceFromSurface' : 2 番目の引数を 'struct IDirectDrawSurface *' から 'struct IDirectDraw *' に変換できません。 (新しい機能 ; ヘルプを参照)
-----------------------------------------------------------------------
なぜかこのようなエラーが出てしまいます。ちゃんとddraw.libとかもリンクしてあるのに
4時間ほど悩んでます。ヘルプを見ても解らないです。
>>956 HTML Help WorkshopでDecompile
そうか。まぁ気長にやれ。
>>962 根本的に色々まちがっとる。多分、ここを一個直したら何とかなるという性質の物ではないので、もっと小さいサンプルから手がけること。リンクがどうこうは関係ない,、たってリンクまでたどり着いてないし。
ここから本題。普通掲示板に↑みたいなエラーメッセージを書くと嫌われる。困っている事象をコンパクトにまとめて質問に来ること。
ここは2ch、普通なら逝ってよしの一言で済まされるぞ。
あ、>962ね。
963スマソ。
・・・・ぶっちゃけた話、
>>962はコピペネタだと思われ
APIバイブルとかは一度は全部目を通しておかないと、そんなAPIがあるかどうか
すら分からないから、やはり一通り全部見ておいた方がいいと思うよ。
例えばアンチエイリアスのかかった文字が得られるAPIってのがあるけど、そんな
の普通あるとは思わないよね?だけど全部目を通しておけば、そういうAPIがある
事は分かる。目を通すと言っても全部覚えるわけじゃなくて、どんなAPIがあるの
か大体の概要を掴むのと、極一部の便利そうなAPIを覚えておく程度。
あと、ヘルプやAPIバイブル以外でも、SDKのヘッダファイルなんかも見ておくと
いいよ。WindowsX.hなんてヘルプに説明ないけど便利なマクロがたくさん入ってる。
Direct3Dでも、D3DX_PIなんかはヘルプには書いてないし。
GetGlyphOutline()のことか?
ちなみにアンエリ取得がOSに依存するため実際には
GGO_BITMAPで取得して自力で縮小してアンエリ作らなきゃいけないってのも
知っておけよ
んで、俺も結局これ使わなかった。
適当にヘボルーチンを組んで済ましちゃうほうが手っ取り早いアルよ。
2xスーパーサンプリングで十分な品質得られたYO
x2でのスーパーサンプリングだと品質あんまよくないよ
少なくともx4で取らないと
x2とx4は目で確実に認識できるx4とx8は微妙だけども
うぇ〜ん。俺の感覚は素朴に出来てるんだよぅ
974 :
デフォルトの名無しさん:01/10/12 12:46
>>971 2倍のスーパーサンプリングだと、αが5段階程度にしかならん。
968で言ったのは、たしかにGetGlyphOutlineの事だけど、一通り目を通さないと
そんなAPIあるとは思わないっていう例で挙げただけで、GetGlyphOutlineについ
て熱く語り合う気はなかったんだが。
ところで、
>>969のOSに依存するってのは具体的にどういうこと?
Plus!入れてない95だと使えないとか?
CreateFontのANTIALIASED_QUALITYはややこしい制限があるんだね。
x2とx4については、どう感じるかは個人差ありそうだね。
少しだけ傾いた細い線なんかはx2だとちょっと気になるよね。
ただ、x4にしてそのコストに見合うだけ品質が上がるかは微妙。
976 :
デフォルトの名無しさん:01/10/12 13:34
>>969 >アンエリ取得がOS
すまん、おれも詳細をしりたい
>>974 うぇ〜ん。知ってるよ。
『実際の文字の出力結果』に満足してるって話なんだよぅ。
主観の相違だから仕方ない話なんだー。もう勘弁してくれよぅ。
>>975 サイズや選んだフォントによってかかったりかからなかったりする。
その閾値となるサイズがOSやフォントによってまちまちだったりする。
>>978 それはGetGlyphOutlineではなくてスクリーンに
フツーのテキスト描画系GDI APIをつかって
描画するときのはなしでわ?
>>974 実際の話をすると
ここで前提とされているようなゲームアプリ程度の文字出力用途
であれば、x2でも別に実用に耐えてるし普通に使ってるよ。
デザイナのオーケーが出てりゃそれでいいんだよ。こんなもんわ。
え、駄目?
>>958 わかりました。
とりあえず妥協して他のプログラムで経験つんでDirectXを理解できるようになったらまたトライしてみます。
何度も親切なアドバイス、ありがとうございました。
>>979 ややこしいが、978は975の
>ところで、
>>969のOSに依存するってのは具体的にどういうこと?
>Plus!入れてない95だと使えないとか?
に対応し、969の
>ちなみにアンエリ取得がOSに依存するため実際には
に対応していると思われる。
>>982 ああ、いや、それはわかるんだけど
>サイズや選んだフォントによってかかったりかからなかったりする。
すくなくともGGO_GRAY?_BITMAPでアンチエイリアス取得できるフォントの場合は、
サイズは関係ないよ。これはPlus!無しWin95でも確認済み。
>983
それはちゃんとOSR1でIEなしなWin95か?
そろそろだな
15
御意
989 :
キリ番ゲッター:01/10/26 19:20
1000間近スレッド発見
990 :
キリ番ゲッター:01/10/26 19:20
1000狙うからな
覚悟しておけ
991 :
キリ番ゲッター:01/10/26 19:21
ああああああほーーーーーーーーーーーーーーー
邪魔するやつは
氏ね
992 :
キリ番ゲッター:01/10/26 19:21
俺様が1000とったら ウラビデオさしあげます
993 :
キリ番ゲッター:01/10/26 19:22
1000だ
1
0
0
0ほしい
994 :
キリ番ゲッター:01/10/26 19:22
邪魔したらウラビデオ配布中止
いらんよ
996 :
キリ番ゲッター:01/10/26 19:24
997 :
キリ番ゲッター:01/10/26 19:24
ぬおおおおおおおお!!!!!
なぜ
じゃまするのだ
氏ね
あ
999 :
キリ番ゲッター:01/10/26 19:24
邪魔したら
おしおきだ
サーシャたんハァハァ……
すまん、スレ間違えた。
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。