ゲームプログラミング相談室【Part5】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/11/04 20:41ID:a1Mhmm8N扱う話題のダイナミックレンジはやや広め。包容力高め。
他の初心者質問スレとの棲み分けを探りつつ
これからもマターリと活用しておくれ。
■前スレ
【Part4】http://game.2ch.net/test/read.cgi/gamedev/1005040025/
■旧スレ(プログラム技術板)
【Part1】http://piza.2ch.net/tech/kako/969/969984472.html
【Part2】http://pc.2ch.net/tech/kako/985/985540361.html
【Part3】http://pc.2ch.net/tech/kako/1002/10028/1002894129.html
■関連スレなど
>>2-5
0041後編
02/11/10 20:29ID:JSg4/5lDY=(Y/W)*-240+240
で終了です。
これはDIRECTXのヘルプにものっています。
ヘルプでビューポートで検索をかけるとみつかります。
これでできなかったら少し実際にものをだして動かしてみてはどうでしょうか?
004237
02/11/11 20:55ID:???.gnu.linkonce.s セクションのデータを $gp 相対でアクセスできそうなところに
配置しろ、ってことで。
(結局 gcc のソースを読む羽目になったよ……)
0043名前は開発中のものです。
02/11/12 00:59ID:???そんなんでgccのソース読む羽目になったの?
マップファイル見たらすぐわかりそうなのに。
0044名前は開発中のものです。
02/11/12 01:18ID:???それは「.gnu.linkonce.s セクションって何、どういう条件で作られるの?」っつー
のが、分からなかったから。推測はついたけど、裏をとらないと困るっしょ。
0045名前は開発中のものです。
02/11/12 01:35ID:???そこまで見たあんたに尋ねるが、ソノ環境で、vtblは何処に出てる?
.gnu.linkonce.d.vt とか、そんなんだと思う。
なんか、gccのデフォルトで、.dataの一部として吐かれるみたいなんだけど、
書き込み可能なセクションに吐く理由がわからなくて気になってるんだ・・・。
0046名前は開発中のものです。
02/11/12 21:24ID:???確かに .gnu.linkonce.d.__vt_なんちゃら セクションに書かれてる。
gcc/cp/class.c を読むと
#ifndef WRITABLE_VTABLE
TREE_READONLY (decl) = 1;
#endif
みたいな記述があるから .gnu.linkcode.r に配置されそうなもんだが。謎。
0047名前は開発中のものです。
02/11/13 00:43ID:???おお、そのマクロでしらべてみたら、なんかでてきたよ。
ありがとん。
で、デフォルトでそんなマクロは定義されないらしいのだが・・・。やはり謎。
0048あぼーん
NGNG0049名前は開発中のものです。
02/11/16 22:06ID:???| ここでおしまい |
|________|
∧∧ ||
( ゚д゚) ||
/ づΦ
0050名前は開発中のものです。
02/11/16 23:26ID:VL8Oafejはやまるなー
0051名前は開発中のものです。
02/11/21 03:03ID:277H+gCD0052名前は開発中のものです。
02/12/06 07:52ID:c2Ro9O0h0053あぼーん
NGNG0054名前は開発中のものです。
02/12/09 22:53ID:gy0Rwv2m丁度プロジェクトのハザマで暇なので
ツール作成でもしてみなさい、と上司に言われました。
イチから作成する根性もやる気もないのでとりあえず
VRAMを眺めるツールでも改造してみようかと思うんですが
どう改造したら勉強になるのか見当がつきません。
どうせ改造するならためになるほうがいいんだけど・・
ハードはGBAです、どなたかお知恵を。。
0055あぼーん
NGNG0056名前は開発中のものです。
02/12/10 09:19ID:JzMo+9Nzアイタタ
0057あぼーん
NGNG0058名前は開発中のものです。
02/12/23 20:03ID:CHDaAJj80059名前は開発中のものです。
02/12/23 22:42ID:frBmN/bA精妙なあたり判定を作りたいときは大小の四角を何個か組み合わせればいいのかな?
0060名前は開発中のものです。
02/12/23 22:45ID:mYrEUkS2具体的なビットマップだったり、矩形だったりするが
それはゲーム依存。
当たりを判定して、何に使うかというのもポイントだったりするので
そのへんもデザインしよう。
0061名前は開発中のものです。
02/12/23 22:57ID:frBmN/bA0062名前は開発中のものです。
02/12/23 23:53ID:OrL+tItn0063あぼーん
NGNG0064名前は開発中のものです。
02/12/25 01:36ID:06ow8SQ/ex・・・敵機X座標、ey・・・敵機Y座標、exa・・・敵機幅、eya・・・敵機Y幅
if ( (mx<ex+exa)&&(mx+mxa>ex)&&(my<ey+eya)&&(my+mya>ey) ) ...
シューティングのオーソドックス?な当たり判定はこんな感じのやり方しか
知らないんだけど他にはどんな方法がありますか?
ゲームやハードに依存しててもいいからいろんな判定の仕方が知りたいYO!
0065名前は開発中のものです。
02/12/25 02:21ID:fYJY+WkTcEnemy…敵管理クラス。
cEnemy* hitRect[40][30];
cEnemy* pHitList = hitRect[mx/16][my/16];
while(pHitList != NULL){
if( pHitList->IsHit(mx,my) ) printf("どっかーん");
pHitList = pHitList->GetNext();
}
0066名前は開発中のものです。
02/12/25 02:33ID:BLeCLBHq0067名前は開発中のものです。
02/12/25 02:44ID:e+neG+8zどちらにしろ定数にしておくべきだと思うが…。
0068名前は開発中のものです。
02/12/25 03:27ID:BLeCLBHq0069あぼーん
NGNG0070名前は開発中のものです。
02/12/25 07:56ID:dIcCINXPマジックナンバー使わんでくらはい(´д`;)
大きな判定の場合はどうするの?
複数のエリアに登録する?
0071名前は開発中のものです。
02/12/25 10:40ID:vBfJXHZb高速弾だとすり抜けが多発しそうだが、その辺は考慮に入れてあるのか?これ。
0072名前は開発中のものです。
02/12/25 10:48ID:Bqxu+V45たとえ弾幕系でも2Dシューティング程度の判定量で
んな小細工する必要皆無だと思うけど。
0073名前は開発中のものです。
02/12/25 11:18ID:ufF3sG4T1000個の弾との判定にかかるのは3万クロックだな。
60fpsで判定すると180万クロック。
1GHzのCPUなら0.2%で、2ミリ秒/秒だな。
安直にできそうなところはさっさとスルーしたほうがいいと思った。
0074あぼーん
NGNG0076名前は開発中のものです。
02/12/25 16:58ID:dIcCINXP計算量を、O(n^2)からO(nlog2n)までもっていけるらしい。
0077名前は開発中のものです。
02/12/25 19:40ID:RXUO2PKHまず何から作り始めると良いでしょうか?
0078名前は開発中のものです。
02/12/25 19:40ID:/cDNIeOU0079あぼーん
NGNG0080名前は開発中のものです。
02/12/25 21:16ID:ocB35uV6まずあなたがどこまでできてるのかがわからないことには・・・。
>>78
http://www.campus.ne.jp/~ishigami/CREATION/
ここの下のほうに解説ページがあるよ。
0082名前は開発中のものです。
02/12/25 21:37ID:Kq2zu9Npまずマップチップ(背景データの素材)を用意して
それを配置したマップデータを用意して
マップデータから1画面分のデータを読み込んでマップチップを貼り付けて
それをスクロールさせる(読み込み位置を変化)ところから。
グラフィック関係はBitblt関数でやってもいいしDirectX使ってもいいし。
素材が無いと気合入らない事もあるし・・・
2Dアクションって・・・シューティング以外の格闘系だったりする?・・・
0083名前は開発中のものです。
02/12/25 21:43ID:ocB35uV6マップ上にキャラクターの絵を置いて、キーボード操作によって
キャラの位置を動かすのをやってみるといいかも。
習作としてはシューティングが最適だったりするんだよね。
重力の概念とか考えなくていいし。
0084名前は開発中のものです。
02/12/25 21:45ID:C+V8gp8bどんな教科書だ?
008581
02/12/25 21:59ID:RXUO2PKHサラマンダみたいなやつの背景をうごかせるようになればいいのか。
CとDirectX、どっちが関数使いやすいですかねぇ。
>>84
C言語の本で確か「初めてのC」って名前でした。
0086あぼーん
NGNG0087名前は開発中のものです。
02/12/25 22:06ID:Kq2zu9NpCでDirectXを操作するのだよ。DirectXは言語じゃない。
0088名前は開発中のものです。
02/12/25 22:09ID:qyObx7qFうむ。
っつか素の ANSI C だとグラフィック関係を制御するライブラリ関数ないし。
0089名前は開発中のものです。
02/12/25 22:13ID:Kq2zu9NpC言語の関数でやってみてからDirectXに移行した方がいい。
グラフィックを扱う部分は大した量じゃないから後ですぐ移行出来る。
009085
02/12/25 22:15ID:RXUO2PKH勘違いしてました。
今手元にあるヴィジュアルCはグラフィック関係を制御できますか?
0091名前は開発中のものです。
02/12/25 22:26ID:Kq2zu9NpVC持ってるんならここのスクリプトを使えばいい。
ここの講座もためになる。
0092名前は開発中のものです。
02/12/25 22:40ID:qyObx7qF> C言語の関数でやってみてからDirectXに移行した方がいい。
要らぬ誤解を招かぬように「まずは Win32 API (GDI)」とでも言っておいた方が
良いと思われ。
標準 C ライブラリ関数には GUI 関係は全く既定ないから。(それどころか CUI
のスクリーン制御さえ既定ないわけだが)
> 今手元にあるヴィジュアルCはグラフィック関係を制御できますか?
もちろん。
Win32 API でプログラム組みたいなら、「プログラミング Windows」って本がバイ
ブル。分厚い本だが、懇切丁寧に書いてあるから読むのは難しくない。
0093名前は開発中のものです。
02/12/26 03:31ID:sowo2pdCWindows95 APIバイブル1も一冊あるとかなり便利。
ただ、ヘルプを読んでれば十分という話も。
0094あぼーん
NGNG0095名前は開発中のものです。
02/12/26 11:15ID:9T0jKzmaVC++ == MFC みたいな
0096名前は開発中のものです。
02/12/26 12:11ID:FD9iJ3tpC++は言語
0097名前は開発中のものです。
02/12/26 12:12ID:LkNUpvkb0098名前は開発中のものです。
02/12/26 13:16ID:u+QTkfIN0099あぼーん
NGNG010090
02/12/26 19:37ID:kDKABYvSVC++の使い方が分かりません。
0101名前は開発中のものです。
02/12/26 21:26ID:KKaDaCig0102名前は開発中のものです。
02/12/26 21:29ID:bqU4KP+U拡張機能多いからな。インラインアセンブラ, typeof, 可変引数を使える #define と
か便利。
話が変わるが、頂点ブレンディング。剛体変換を行う複数の行列 M1, M2, ... と、
頂点毎に重み w1, w2, ... を用意して
M = Σwi * Mi (ただし Σwi = 1)
で出した M を使うってのは分かるんだが、当然この M って剛体変換じゃない
よね。
頂点変換は良いとして、法線ベクトルの計算をどうしたものかと思ってるんだが、
o 法線ベクトルの算出も M を使う。
o ただし法線と M の積を求めた後で、出てきたベクトルをノルムが 1 になるよう
に正規化する。
で良いのかね。
0103100
02/12/26 22:09ID:kDKABYvSまずはVC++の使い方から調べます。
0104名前は開発中のものです。
02/12/26 23:04ID:hDb5j8vT0105103
02/12/26 23:14ID:kDKABYvSVC++を立ち上げて新規作成を選んでファイルのところに
C++ソースファイル
HTMLページ
SQLスクリプトファイル
とか色々あるのでどうすれば良いのか分からなくなってます。
0106名前は開発中のものです。
02/12/26 23:31ID:u+QTkfINヘルプに「チュートリアル」があるので、
まずはそれを一通りやってください。
0107名前は開発中のものです。
02/12/26 23:50ID:5pSEx7R5VCの本を買えばプロジェクトの作り方から実行方法までは迷うことはないです。
その金も惜しむなら、検索エンジンで
猫でもわかるプログラミング
で検索をかけてください。
0108名前は開発中のものです。
02/12/27 03:00ID:8wDhiAR8君はここじゃなくてプログラム板の初心者質問スレッドで
聞いたほうがいいよ。
0109あぼーん
NGNG0110105
02/12/27 10:18ID:CvRh/hw0がんばります。
0111名前は開発中のものです。
02/12/27 10:19ID:3lURIe+n「素人は数値や文章を打ち込む事をプログラムだと勘違いしている」
「数値や文章なんて、プログラムと切り離してエクセル等でササーっと打ち込めば済む事」
といった類の事を耳にしました。
テキストエディタのマクロを使う事くらいしか思いつかず、
どういやって切り離すのかまったくイメージ出来ません。教えてください。
あと、「そんな事はスクリプトを組んでスクリプトにやらせるべきで、逐一書くのなんて作業効率悪すぎ」
なんて事もどこかで読みましたが、ここで言うスクリプトって言うのは関数の事で合っていますか?
0112名前は開発中のものです。
02/12/27 10:27ID:USn1psUAいいえ。
0113名前は開発中のものです。
02/12/27 12:00ID:njWlRsrn遅レスだけど、
>if ( (mx<ex+exa)&&(mx+mxa>ex)&&(my<ey+eya)&&(my+mya>ey) )
こーやったほうが処理が稼げると思ふ。。。
if( mx > ex+exa ) goto HIT_CHECK_END;
if( mx+mxa < ex ) goto HIT_CHECK_END;
if( my > ey+eya ) goto HIT_CHECK_END;
if( my+mya < ey ) goto HIT_CHECK_END;
// 当たったヨ
アボーン;
HIT_CHECK_END:
// 当たらなかったヨ
ヤレヤレ;
0114名前は開発中のものです。
02/12/27 12:38ID:lBLepIDxコンパイルかけたら同じ出力になると思う。
0115あぼーん
NGNG0116名前は開発中のものです。
02/12/27 14:55ID:V5zq1+E8即レスありがとうございます。用語辞典読んでも実感が沸かない。
スクリプト==サクラエディタで言う所のマクロだと理解していいんですか?(秀丸マクロとか)
「そんな事はスクリプトを組んでスクリプトにやらせるべきで、逐一書くのなんて作業効率悪すぎ」って言うのは、
せんし・300/150/150/50
ぶとうか・200/160/70/150
ゆうしゃ・2500/140/140/140
と打ち込んだテキストをスクリプトにかけてCの書式にする方が、
逐一ステータスをCで記述して行くよりも圧倒的に速い。って事ですか?
0117あぼーん
NGNG0118名前は開発中のものです。
02/12/27 19:33ID:USn1psUAそんな感じ。
ただし実際には素の C まで落とさずに、中間言語に落として、プログラム側では
中間言語を解釈するインタプリタを用意することが多い。こうすると、パラメタやら
イベント処理を変えても再コンパイル不要になるからプログラマの手間・データを
変更してから実際に動かして試すまでのタイムラグが減る。
0119名前は開発中のものです。
02/12/27 23:28ID:1/oKDJhPオレが悲しい 年末2ちゃん
当方C++歴5年、DirectX歴1年、4月から新人プログラマ
がっくり。
0120名前は開発中のものです。
02/12/28 01:08ID:w/8XZg/Yバイナリを吐いて、それを解釈しつつ実行というのが多いと思う。
UCSD PASCALみたいな感じか。
0121あぼーん
NGNG0122名前は開発中のものです。
02/12/28 16:40ID:XAkUMvyT私は最近Cをはじめた者です。一つ疑問があります。
アプリケーションなどを開発するのと
ゲームを開発するのは、まったく同じものと考えてよろしいのでしょうか?
使用する言語が同じだとしましても、アプリとゲームを開発するのでは、
何か違いがあるのでしょうか?最近非常に悩んでおります。
専門学校などでも、アプリ開発の学科もあれば、「ゲームプログラム学科」
というのもありますし、何か違いがあるのかと思いまして質問させて
頂きました。よろしくお願いいたします。
0123名前は開発中のものです。
02/12/28 16:55ID:6+UzED5V違いは無い。
0124122
02/12/28 16:58ID:XAkUMvyTありがとうございます!
コレで悩みが全て飛びました。
気がねなく勉強できます。ありがとうございました!!
0125名無しは開発中
02/12/28 17:36ID:6v0StEIP0102aabb...とかいう16進数なのです
プログラム中では定数をあてはめます。
#define command_1 0x01
#define command_2 0x02
.....
command_kaiseki(int no){
switch(no){
case command_1:
1の処理
break;
case command_2:
2の処理
......
}
}
0126名前は開発中のものです。
02/12/28 17:45ID:9/qiHtylyaccやlexを使えるようにしておくと楽でいいかもね。
あと、参考スレ
http://game.2ch.net/test/read.cgi/gamedev/1005114698/
0127名前は開発中のものです。
02/12/28 21:35ID:a5KU/+oB0128名前は開発中のものです。
02/12/28 21:43ID:LbjIcZ3v0129名前は開発中のものです。
02/12/28 22:26ID:Q6tgt9eh男の子もキボーン (笑)
0130名前は開発中のものです。
02/12/28 23:56ID:/o2fnhX+0131あぼーん
NGNG0132名前は開発中のものです。
02/12/30 13:32ID:KFhb8kwQ大きく人生を狂わせるような発言では?
0133名前は開発中のものです。
02/12/30 13:48ID:c0Wr5svx0134名前は開発中のものです。
02/12/30 23:20ID:9kumBzuaロックマン知らなくてもどんな人でもいいので少しでも手助けを
脳内ロックマンを作るスレ
http://choco.2ch.net/test/read.cgi/nanmin/1033731222
0135あぼーん
NGNG0136名前は開発中のものです。
03/01/04 14:14ID:Oaz/Glfr敵の出現場所を定義するのがすごい面倒なんですよ。
ファイルに、敵が現れる時間、場所、種類などを書いて、それを読み込ませて
るんだけど、ちょっと間に敵を追加したいと思ったら、それ以降の敵の時間を
全部ずらさなければいけなくなります。
みなさんはどんなフォーマット使っていますか?
0137名前は開発中のものです。
03/01/04 14:18ID:RYWMO7ZD適切なツールを作るのが賢明じゃないかなあ。
0138名前は開発中のものです。
03/01/04 14:19ID:Pe6gSFnI直前の敵との相対時間
0139名前は開発中のものです。
03/01/04 14:36ID:Oaz/Glfr相対時間ならそれはそれで、面倒になることはないかな…
一応やってみますか。
0140あぼーん
NGNG0141名前は開発中のものです。
03/01/04 14:41ID:Siq0Vq2wこれだとペンティアム4のハイパースレッド機能という奴を使わないといけないのでしょうか?
最近PCをX68000からWindowsXPに変えたばかりなのでよろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています