[過去ログ] ゲームプログラミング相談室【Part5】 (970レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
65
(3): 02/12/25 02:21 ID:fYJY+WkT(1) AAS
説明めんどいのでこれで理解して。最近流行の弾幕系専用当り判定。

cEnemy…敵管理クラス。

cEnemy* hitRect[40][30];
cEnemy* pHitList = hitRect[mx/16][my/16];

while(pHitList != NULL){
if( pHitList->IsHit(mx,my) ) printf("どっかーん");
pHitList = pHitList->GetNext();
省1
66: 02/12/25 02:33 ID:BLeCLBHq(1/2) AAS
リスト内の各enemyに対して判定するってのは分かるけど、16って何?
67: 02/12/25 02:44 ID:e+neG+8z(1) AAS
16ドットって意味かな?
どちらにしろ定数にしておくべきだと思うが…。
68: 02/12/25 03:27 ID:BLeCLBHq(2/2) AAS
あぁ、640x480の画面を16x16に区切って、自機の近くのやつだけ判定したいってことか
69: あぼーん [あぼーん] あぼーん AAS
あぼーん
70: 02/12/25 07:56 ID:dIcCINXP(1/2) AAS
>>65
マジックナンバー使わんでくらはい(´д`;)

大きな判定の場合はどうするの?
複数のエリアに登録する?
71: 02/12/25 10:40 ID:vBfJXHZb(1) AAS
>>65
高速弾だとすり抜けが多発しそうだが、その辺は考慮に入れてあるのか?これ。
72: 02/12/25 10:48 ID:Bqxu+V45(1) AAS
ていうか、8ビットや16ビット時代ならともかく、最近のPCなら
たとえ弾幕系でも2Dシューティング程度の判定量で
んな小細工する必要皆無だと思うけど。
73: 02/12/25 11:18 ID:ufF3sG4T(1) AAS
一つの弾の判定に30クロックかかったとして(もっと少ないと思うけど)
1000個の弾との判定にかかるのは3万クロックだな。
60fpsで判定すると180万クロック。
1GHzのCPUなら0.2%で、2ミリ秒/秒だな。

安直にできそうなところはさっさとスルーしたほうがいいと思った。
74: あぼーん [あぼーん] あぼーん AAS
あぼーん
75: 64 02/12/25 14:47 ID:aHas5saF(1) AAS
>>65
ゴメン、C++はまだ勉強してないからわからない
スプライトを使った当たり判定をやりたいのだけれど・・・
76: 02/12/25 16:58 ID:dIcCINXP(2/2) AAS
Gems2の再帰的次元クラスタリング(Recursive Demiensinal Clustering: RDC)はどうよ?
計算量を、O(n^2)からO(nlog2n)までもっていけるらしい。
77
(3): 02/12/25 19:40 ID:RXUO2PKH(1/4) AAS
C言語で時代に逆行した2Dアクションゲームを作ろうと思います。
まず何から作り始めると良いでしょうか?
78
(1): 02/12/25 19:40 ID:/cDNIeOU(1) AAS
SRPGの移動に関するサンプルみたいなのありませんか?
79: あぼーん [あぼーん] あぼーん AAS
あぼーん
80
(1): 02/12/25 21:16 ID:ocB35uV6(1/2) AAS
>>77
まずあなたがどこまでできてるのかがわからないことには・・・。

>>78
外部リンク:www.campus.ne.jp
ここの下のほうに解説ページがあるよ。
81
(2): 77 02/12/25 21:26 ID:RXUO2PKH(2/4) AAS
>>80
うむ、確かにな。
プログラミングは教科書に載ってるようなやつなら簡単に理解できるくらい。
ゲーム系はまるっきりってとこでつ。
82
(1): 02/12/25 21:37 ID:Kq2zu9Np(1/4) AAS
>>77
まずマップチップ(背景データの素材)を用意して
それを配置したマップデータを用意して
マップデータから1画面分のデータを読み込んでマップチップを貼り付けて
それをスクロールさせる(読み込み位置を変化)ところから。
グラフィック関係はBitblt関数でやってもいいしDirectX使ってもいいし。
素材が無いと気合入らない事もあるし・・・
省1
83: 02/12/25 21:43 ID:ocB35uV6(2/2) AAS
とりあえず>>82をやったあとは、
マップ上にキャラクターの絵を置いて、キーボード操作によって
キャラの位置を動かすのをやってみるといいかも。
習作としてはシューティングが最適だったりするんだよね。
重力の概念とか考えなくていいし。
84
(1): 02/12/25 21:45 ID:C+V8gp8b(1) AAS
>>81
どんな教科書だ?
85
(2): 81 02/12/25 21:59 ID:RXUO2PKH(3/4) AAS
なるほど、シューティングか。
サラマンダみたいなやつの背景をうごかせるようになればいいのか。
CとDirectX、どっちが関数使いやすいですかねぇ。

>>84
C言語の本で確か「初めてのC」って名前でした。
86: あぼーん [あぼーん] あぼーん AAS
あぼーん
87
(1): 02/12/25 22:06 ID:Kq2zu9Np(2/4) AAS
>85
CでDirectXを操作するのだよ。DirectXは言語じゃない。
88: 02/12/25 22:09 ID:qyObx7qF(1/2) AAS
>87
うむ。

っつか素の ANSI C だとグラフィック関係を制御するライブラリ関数ないし。
89
(1): 02/12/25 22:13 ID:Kq2zu9Np(3/4) AAS
言葉足らずだった。DirectXは慣れないと画面がパー、要再起動だから
C言語の関数でやってみてからDirectXに移行した方がいい。
グラフィックを扱う部分は大した量じゃないから後ですぐ移行出来る。
90
(1): 85 02/12/25 22:15 ID:RXUO2PKH(4/4) AAS
なるほふぉ。
勘違いしてました。

今手元にあるヴィジュアルCはグラフィック関係を制御できますか?
91: 02/12/25 22:26 ID:Kq2zu9Np(4/4) AAS
外部リンク:www.sun-inet.or.jp
VC持ってるんならここのスクリプトを使えばいい。
ここの講座もためになる。
92
(1): 02/12/25 22:40 ID:qyObx7qF(2/2) AAS
>>89
> C言語の関数でやってみてからDirectXに移行した方がいい。
要らぬ誤解を招かぬように「まずは Win32 API (GDI)」とでも言っておいた方が
良いと思われ。

標準 C ライブラリ関数には GUI 関係は全く既定ないから。(それどころか CUI
のスクリーン制御さえ既定ないわけだが)

> 今手元にあるヴィジュアルCはグラフィック関係を制御できますか?
省3
93: 02/12/26 03:31 ID:sowo2pdC(1) AAS
>>92 APIについて
Windows95 APIバイブル1も一冊あるとかなり便利。
ただ、ヘルプを読んでれば十分という話も。
94: あぼーん [あぼーん] あぼーん AAS
あぼーん
95: [0] 02/12/26 11:15 ID:9T0jKzma(1) AAS
VC++をC++とは違う言語と思ってる人もたまに見かけるよね。
VC++ == MFC みたいな
96: 02/12/26 12:11 ID:FD9iJ3tp(1) AAS
VC++は製品名
C++は言語
97: 02/12/26 12:12 ID:LkNUpvkb(1) AAS
言語仕様的には標準のC++とVCのC++はかなり異なる
98
(1): 02/12/26 13:16 ID:u+QTkfIN(1/2) AAS
g++も標準C++からかけ離れすぎ
99: あぼーん [あぼーん] あぼーん AAS
あぼーん
100
(1): 90 02/12/26 19:37 ID:kDKABYvS(1/3) AAS
くじけそうです。
VC++の使い方が分かりません。
101: 02/12/26 21:26 ID:KKaDaCig(1) AAS
なにがやりたくてなにがやれないのか説明しる
102: 02/12/26 21:29 ID:bqU4KP+U(1) AAS
>98
拡張機能多いからな。インラインアセンブラ, typeof, 可変引数を使える #define と
か便利。

話が変わるが、頂点ブレンディング。剛体変換を行う複数の行列 M1, M2, ... と、
頂点毎に重み w1, w2, ... を用意して

 M = Σwi * Mi (ただし Σwi = 1)

で出した M を使うってのは分かるんだが、当然この M って剛体変換じゃない
省6
103
(1): 100 02/12/26 22:09 ID:kDKABYvS(2/3) AAS
ソースをC++で打っていいのか分からなくて困ってます。

まずはVC++の使い方から調べます。
104: 02/12/26 23:04 ID:hDb5j8vT(1) AAS
ソースはテキストエディタで討ってくダサい
105
(3): 103 02/12/26 23:14 ID:kDKABYvS(3/3) AAS
あ、ちょっと説明が悪かったです。
VC++を立ち上げて新規作成を選んでファイルのところに
C++ソースファイル
HTMLページ
SQLスクリプトファイル
とか色々あるのでどうすれば良いのか分からなくなってます。
106: 02/12/26 23:31 ID:u+QTkfIN(2/2) AAS
>>105
ヘルプに「チュートリアル」があるので、
まずはそれを一通りやってください。
107: 02/12/26 23:50 ID:5pSEx7R5(1) AAS
本を買ってきてください。
VCの本を買えばプロジェクトの作り方から実行方法までは迷うことはないです。
その金も惜しむなら、検索エンジンで
猫でもわかるプログラミング
で検索をかけてください。
108: 02/12/27 03:00 ID:8wDhiAR8(1) AAS
>>105
君はここじゃなくてプログラム板の初心者質問スレッドで
聞いたほうがいいよ。
109: あぼーん [あぼーん] あぼーん AAS
あぼーん
110: 105 02/12/27 10:18 ID:CvRh/hw0(1) AAS
ありがとうございます。
がんばります。
111: 02/12/27 10:19 ID:3lURIe+n(1) AAS
RPGを作っているのですが、
「素人は数値や文章を打ち込む事をプログラムだと勘違いしている」
「数値や文章なんて、プログラムと切り離してエクセル等でササーっと打ち込めば済む事」
といった類の事を耳にしました。
テキストエディタのマクロを使う事くらいしか思いつかず、
どういやって切り離すのかまったくイメージ出来ません。教えてください。

あと、「そんな事はスクリプトを組んでスクリプトにやらせるべきで、逐一書くのなんて作業効率悪すぎ」
省1
112
(1): 02/12/27 10:27 ID:USn1psUA(1/2) AAS
> スクリプトって言うのは関数の事で合っていますか?
いいえ。
113: 02/12/27 12:00 ID:njWlRsrn(1) AAS
>>64
遅レスだけど、
>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;
省6
114: 02/12/27 12:38 ID:lBLepIDx(1) AAS
>> 113
コンパイルかけたら同じ出力になると思う。
115: あぼーん [あぼーん] あぼーん AAS
あぼーん
116
(1): 02/12/27 14:55 ID:V5zq1+E8(1) AAS
>>112
即レスありがとうございます。用語辞典読んでも実感が沸かない。

スクリプト==サクラエディタで言う所のマクロだと理解していいんですか?(秀丸マクロとか)

「そんな事はスクリプトを組んでスクリプトにやらせるべきで、逐一書くのなんて作業効率悪すぎ」って言うのは、

せんし・300/150/150/50
ぶとうか・200/160/70/150
ゆうしゃ・2500/140/140/140
省2
117: あぼーん [あぼーん] あぼーん AAS
あぼーん
118: 02/12/27 19:33 ID:USn1psUA(2/2) AAS
>116
そんな感じ。

ただし実際には素の C まで落とさずに、中間言語に落として、プログラム側では
中間言語を解釈するインタプリタを用意することが多い。こうすると、パラメタやら
イベント処理を変えても再コンパイル不要になるからプログラマの手間・データを
変更してから実際に動かして試すまでのタイムラグが減る。
119: 02/12/27 23:28 ID:1/oKDJhP(1) AAS
あんたらが 何話してんのか さっぱりだ
 オレが悲しい 年末2ちゃん
当方C++歴5年、DirectX歴1年、4月から新人プログラマ
がっくり。
120: 02/12/28 01:08 ID:w/8XZg/Y(1) AAS
うんうん。イベントコントロール関係はスクリプトコンパイラ(独自)で
バイナリを吐いて、それを解釈しつつ実行というのが多いと思う。
UCSD PASCALみたいな感じか。
121: あぼーん [あぼーん] あぼーん AAS
あぼーん
122
(2): 02/12/28 16:40 ID:XAkUMvyT(1/2) AAS
質問させていただきます。
私は最近Cをはじめた者です。一つ疑問があります。
アプリケーションなどを開発するのと
ゲームを開発するのは、まったく同じものと考えてよろしいのでしょうか?
使用する言語が同じだとしましても、アプリとゲームを開発するのでは、
何か違いがあるのでしょうか?最近非常に悩んでおります。
専門学校などでも、アプリ開発の学科もあれば、「ゲームプログラム学科」
省2
123
(2): 02/12/28 16:55 ID:6+UzED5V(1) AAS
>>122
違いは無い。
124: 122 02/12/28 16:58 ID:XAkUMvyT(2/2) AAS
>>123さん
ありがとうございます!
コレで悩みが全て飛びました。
気がねなく勉強できます。ありがとうございました!!
125: 名無しは開発中 02/12/28 17:36 ID:6v0StEIP(1) AAS
中間言語というのはバイナリなのですよ。つまり
0102aabb...とかいう16進数なのです
プログラム中では定数をあてはめます。

#define command_1 0x01
#define command_2 0x02
.....

command_kaiseki(int no){
省9
126: 02/12/28 17:45 ID:9/qiHtyl(1) AAS
スクリプト言語作るにあたって、
yaccやlexを使えるようにしておくと楽でいいかもね。

あと、参考スレ
2chスレ:gamedev
127: 02/12/28 21:35 ID:a5KU/+oB(1) AAS
野球拳を作りたいのですが何を使えばいいと思いますか?
128
(1): 02/12/28 21:43 ID:LbjIcZ3v(1) AAS
登場人物には女の子を使えばいいと思うよ
129: 02/12/28 22:26 ID:Q6tgt9eh(1) AAS
>>128
男の子もキボーン (笑)
130: 02/12/28 23:56 ID:/o2fnhX+(1) AAS
野球拳ってどんな拳法ですか?
131: あぼーん [あぼーん] あぼーん AAS
あぼーん
132: 02/12/30 13:32 ID:KFhb8kwQ(1) AAS
>>123
大きく人生を狂わせるような発言では?
133: 02/12/30 13:48 ID:c0Wr5svx(1) AAS
プログラムを学校で習おうとする時点で人生が狂っている
134: 02/12/30 23:20 ID:9kumBzua(1) AAS
プログラミングの知識がある方、興味を持たれた方、
ロックマン知らなくてもどんな人でもいいので少しでも手助けを

脳内ロックマンを作るスレ
2chスレ:nanmin
135: あぼーん [あぼーん] あぼーん AAS
あぼーん
136
(2): 03/01/04 14:14 ID:Oaz/Glfr(1/2) AAS
あのさ、今シューティング作ってるんだけどさ。
敵の出現場所を定義するのがすごい面倒なんですよ。

ファイルに、敵が現れる時間、場所、種類などを書いて、それを読み込ませて
るんだけど、ちょっと間に敵を追加したいと思ったら、それ以降の敵の時間を
全部ずらさなければいけなくなります。

みなさんはどんなフォーマット使っていますか?
137: 03/01/04 14:18 ID:RYWMO7ZD(1/2) AAS
XMLみたいなmachine/human readableなフォーマットにして、
適切なツールを作るのが賢明じゃないかなあ。
138: 03/01/04 14:19 ID:Pe6gSFnI(1) AAS
>>136
直前の敵との相対時間
139: 03/01/04 14:36 ID:Oaz/Glfr(2/2) AAS
う〜ん。
相対時間ならそれはそれで、面倒になることはないかな…
一応やってみますか。
140: あぼーん [あぼーん] あぼーん AAS
あぼーん
141
(6): 03/01/04 14:41 ID:Siq0Vq2w(1) AAS
2人で戦えるゲームを作ろうと思うのですが、二人が同時にボタンを押したら同時に処理しないといけないのでしょうか?
これだとペンティアム4のハイパースレッド機能という奴を使わないといけないのでしょうか?
最近PCをX68000からWindowsXPに変えたばかりなのでよろしくお願いします。
142: あぼーん [あぼーん] あぼーん AAS
あぼーん
143: 03/01/04 14:59 ID:RYWMO7ZD(2/2) AAS
>>141
mainloop()
{
 一人目のキー処理();
 二人目のキー処理();
 時間を進める();
 描画();
省3
144
(1): 03/01/04 15:02 ID:HHCJx2gu(1) AAS
>>141
まぁマルチスレッドで処理するという手もあるが、見たところゲーム製作は
初心者(失礼)っぽいので、擬似タスクから勉強したほうが良いと思うよ。

参考URL
外部リンク[html]:www.hh.iij4u.or.jp
145: あぼーん [あぼーん] あぼーん AAS
あぼーん
1-
あと 825 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s