[過去ログ] ゲームプログラミング相談室 (986レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
500: 02/05/24 00:29 ID:??? AAS
>>497
あんまり、本当の事を言うと話が止まるので
わかっていてもしらんぷりしとけよ(ワラ
501(1): 02/05/24 01:21 ID:??? AAS
トルネコみたいなダンジョンではなく、女神転生シリーズに近い
通路ばかりのダンジョンをランダムで生成したいのですが、
唯一見つかったアルゴリズムでは綺麗なダンジョンが作れませんでした。
トンネルを掘るようにしてダンジョンを作るアルゴリズムを使うと
綺麗なダンジョンが作れる、と読んだのですが、参考になる
情報などがありましたら教えていただけないでしょうか?
よろしくお願いします。
502(1): 02/05/24 01:54 ID:??? AAS
外部リンク:members.tripod.co.jp
このページ見た?なんか凄そうだけど。
色々なパターンが紹介されているみたいだし。
503(1): 416(HSP) ◆HoSW/FCI 02/05/24 03:53 ID:btbuBamk(1) AAS
>>501
0が通路で1が壁だとすると、まず、n×mの広さを1で全部埋めます。一番外側だけ0にすると範囲チェックしなくて済むから楽かも。
で、親座標と子座標を用意して、親は左上から右下まで2ステップずつ捜査させます。子は親からランダムに4方向を選んで移動するわけですが、これも2ステップずつ移動させます。子の移動先が壁だったら掘って、またランダムに移動。
移動予定先が全部通路で選択肢が無い場合は、子の移動は終了して、親を1つ進めます。
そしてまたその親座標から子を移動させて動けなくなるまで掘っていく。これを最後まで繰り返すと解が1つだけの迷路ができます。
同様の方法で2つの接しない壁を作っていくという方法もありますが、上記のほうがシンプルかも。
504: 416(HSP) ◆HoSW/FCI 02/05/24 04:06 ID:??? AAS
上記の方法を発展させ、矩形を用いて自由な角度に掘り進んでいく方法も。
すでに掘った場所には移動しない、という判定自体は同じです。この場合の分岐方法は、掘り進んでいく過程で分岐点を複数置いていく(記憶していく)ことになります。
記憶しないで矩形の範囲単位で掘れるだけ掘るという方法もありますが、洞窟っぽくはならないでしょう。また、掘っていく過程で矩形の大きさを変えれば、より自然の洞窟に近い迷路ができます。
505: 02/05/24 06:13 ID:??? AAS
>>502
アルゴリズムを作れそうにはないけど
パズル的に楽しませていただきました。
>>503
そのアルゴリズムをベースに作ってみようかと思います。
ありがとうございました。
506: 02/05/24 06:23 ID:??? AAS
完全ランダムで無くて良いのなら n x n のサイズの小さい迷路を
いくつか作っておいて、つながるように並べるのもあり
507: やさしい 02/05/27 01:43 ID:??? AAS
板で協力してゲームを作ろうと思ったので
プログラマを募集してます
われこそはと思うつわものは覗いてください
2chスレ:shar
508: [ ] 02/05/27 22:56 ID:??? AAS
509: 02/06/25 01:31 ID:??? AAS
sage
510: オhル艦長 02/06/25 14:18 ID:J1CGzihY(1) AAS
緊急浮上
511(10): 02/07/24 12:32 ID:??? AAS
VBで敵を誘導させて全滅させればクリア、というゲームを作っています。
敵の番になったら、自分のいるマスにむかって1歩(1マス)近づく、
という感じにしたいのですが、ちょっとなやんでいます。
敵のキャラと自分のキャラの座標を比較して、
敵のx座標が自分のx座標より大きければ1マス分増やす、
y座標が自分のy座標より小さければ1マス分減らす、というかんじです。
ifやSelect Case の入れ子でやってみたんですが、
省4
512: 511 02/07/24 12:49 ID:Ml.IF7uc(1/4) AAS
あげてみたり。。。。
513: 02/07/24 12:54 ID:??? AAS
>>511
どうして長くなったのかわかんないけど、行がなが〜くなったらそれぞれの処理を分割するしかないのでは?
ifの条件文が長い場合はあらかじめ比較するモノを変数に入れておくとか。
if〜endifはつかってるよね?
手法としては、移動する処理自体を1つの関数にしておいて後から高速化するのが望ましいかも。
とりあえず遅くてもゲーム自体はできるから。
514: 02/07/24 12:56 ID:??? AAS
>>511
>敵のx座標が自分のx座標より大きければ1マス分増やす、
>y座標が自分のy座標より小さければ1マス分減らす、というかんじです。
敵のx座標が自分のx座標より小さい場合や
y座標が自分のy座標より大きい場合は考えなくていいのか
俺ならとりあえず移動処理をブラックボックスにしてほっとく
あとからいくらでも高速化できる(かもしれない)からな。
515: 02/07/24 13:08 ID:??? AAS
>>511
このスレどうよ
2chスレ:gamedev
516(2): 511 02/07/24 13:22 ID:Ml.IF7uc(2/4) AAS
レスありがとうございます。
>ifの条件文が長い場合はあらかじめ比較するモノを変数に入れておくとか。
んと、とりあえずこんな感じにしてみたんです。
select case Npc.x(敵のx座標)
case is > Player.x(自分のx座標)
if Npc.Y < player.Y then
Npc.X = Npc.X - 32(32はひとますぶんです)
省16
517: 511 02/07/24 14:00 ID:Ml.IF7uc(3/4) AAS
ここに書かせてもらってレスを拝見したおかげで、
ぱにくってた頭が少しすっきりしたみたいです。
移動処理のとこの致命的なミスを発見し、うまくなおせました!
(行の長さは相変わらずながくなっちゃいましたが)
今は敵が死んだときの処理をがんばってます。
518: 02/07/24 17:42 ID:??? AAS
>>516
> そうなんです!パターンのぶんだけif −endif 文がふえてしまって
if 敵のx座標 < 自分のx座標 then 敵のx座標を増やす
if 敵のx座標 > 自分のx座標 then 敵のx座標を減らす
if 敵のy座標 < 自分のy座標 then 敵のy座標を増やす
if 敵のy座標 > 自分のy座標 then 敵のy座標を減らす
コレだけで済むと思うんだが。
省5
519: 511 02/07/24 19:40 ID:Ml.IF7uc(4/4) AAS
レスありがとうございます、書きこみ遅くなってすみません。
>>518
>今の状態では右へ1キャラ分移動するのに32を加えていると思うけど、
>これはそういう風にするんじゃなくて、将棋の「マス」みたいに管理すべき。
>そしてグラフィックを表示するときにx座標とy座標を32倍すればいい。
おお!ということは、移動処理のほうでNpc.X = Npc.X+1にして、線画処理で
BitBlt FrmMain.PicMain.hDC, Npc.X * 32, Npc.Y * 32, 32, 32, FrmMain.PicChara.hDC, 0, 32, vbSrcPaint
省7
520(1): 02/07/25 01:52 ID:??? AAS
>>516
absとsgn関数をうまく使え
if abs(敵のx座標-自分のx座標) < 1 then 敵のx座標にsgn(敵のx座標-自分のx座標)を加える
Y座標についても同じ
521(1): 511 02/07/25 02:23 ID:VlAcWhO2(1) AAS
レスありがとうございます。
>>520
>absとsgn関数をうまく使え
今 abs関数とsgn 関数調べてきました!
絶対値、、、中学のときに習ったような、、自分の不勉強さに身がちぢこまります。
理解できてないままソースにコピペではあまりにも恥ずかしいので
いまから紙にかいて考えてみます。
省3
522(1): 02/07/25 12:19 ID:??? AAS
>>521
お前は効率的な書き方をマスターしたいのかゲームを完成させたいのかどちらだ?と
小一時間(以下略
慣れないうちはきっちり動くものを作り上げてから速度&効率のチューニングをやれYO!
とマジレスもしてみるテスト
523(1): チューニングなんて後から 02/07/25 12:51 ID:??? AAS
とりあえず作りかける
↓
ちょっと効率のいいアルゴリズム発見
↓
それにあわせて書き直す
↓
さらに効率のいいアルゴリズム発見
省7
524(1): 511 02/07/25 21:22 ID:??? AAS
レスありがとうございます。激しく反省中の511です。
>>522
>お前は効率的な書き方をマスターしたいのかゲームを完成させたいのかどちらだ?
ゲーム完成させたいです!
>慣れないうちはきっちり動くものを作り上げてから速度&効率のチューニングをやれYO!
そうですね、まだ直さなきゃ行けないとこがいぱーいあるのに
綺麗なソースをかきたいなんて100年早かったです。。反省。。。
省4
525: 02/07/25 22:06 ID:??? AAS
>>524
報告ならここにしろ
■自主製作ゲーム:開発状況報告スレ■
2chスレ:gamedev
526(1): 西村トオル、ナイスですね〜 02/07/26 20:35 ID:??? AAS
今、DirectX8で3Dのゲーム作っています。
カメラアングルは、女優(対象)を後ろから捉えています。
そこで質問なんですが、
イベント中とかにゲームの動きを止めて
カメラだけを動かして女優(対象)を舐め回すように撮影したいんですが、
(取り合えず、女優を中心に球を想定して、常に女優の方を捉えつつ
その球面上をカメラが移動って方向で)
省2
527: 02/07/26 22:27 ID:??? AAS
>>526
ベジェ曲線みたいにすりゃいいんじゃない?
528(1): 02/07/28 03:47 ID:??? AAS
>>511氏
検証もせずに、他人のコード採用してたら、それこそあぼーんだよ。
解決案が必要なのに、エゴに凝り固まって、他人のソース見ることも出来ないのは、もっと重傷だけどね。
まあ、ゲームに関して言えば、コーディング技術云々より、ゲーム全体としてのデザインの方が重要だから、
そんな小さなことにこだわるな、というのが正解かもね。
529: 02/08/15 17:23 ID:??? AAS
>>528
んなこたーない
530(2): 02/09/15 11:53 ID:??? AAS
おまいらは、リソースの管理はどうしてますか?
基底クラスを書いて、音や絵やその他のデータなんかも
まとめて管理してるんでしょうか?
531(1): 02/09/15 19:09 ID:??? AAS
>>530
PCの話で良い?
データのI/Oはインタフェースに肉付けしてく形で作ってる。
具象クラス側で生ファイル、圧縮ファイル、ネットワーク、リソース、
各I/O方法にあわせる事が出来るし、プロトタイプ作ってる途中は
生ファイルI/Oだけあればよいし。
532: 530 02/09/17 02:30 ID:??? AAS
>>531
私も同じようなもんですが、ネットワークは別にしてました。
参考になりました。
533(3): 02/09/19 05:00 ID:N2qPvY6Q(1) AAS
スプライトを管理するクラスが作れません。C++ です。
今は、各々のキャラクタのクラスがサーフェスやアニメーションの情報も持っていて、
なんとなく不細工な感じがするので、見た目の情報を切り分ける事にしたんですが、
それを一元管理するクラスの設計が出来ません。
今動いてる物をいじるんだから、それなりに便利にしようと思い、
確保したサーフェスやアニメーションの情報や、今表示中のスプライトの情報を、
管理クラスの寿命と共に廃棄できるようにしようとしたり、
省5
534: 533 02/09/19 05:03 ID:??? AAS
sage 忘れてました。
すみません。
535(1): 02/09/19 05:10 ID:??? AAS
普通にリファレンスカウンタ使う
536(3): 02/09/19 05:14 ID:??? AAS
俺の場合
◆オブジェクトクラス
スプライトへのポインタ(場合によってはテーブル)
各種パラメータ
_______
◆スプライトクラス
対象サーフェスへのポインタ
省8
537(1): 536 02/09/19 05:18 ID:??? AAS
場合によっては、
スプライトクラスを
◆スプライトクラス
現在位置
スプライト定義クラスへのポインタ
表示しているRECTのindex
◆スプライト定義クラス
省3
538(1): 02/09/19 05:18 ID:??? AAS
キャラをオブジェクトと見立ててそれぞれで画像を管理するとめちゃくちゃにならない?
私がやったときは、各キャラのデータを保持するクラスを作って
それとは別に「キャラのデータを元に画面を組み立てる」関数を作った。
ハードコーディングでキャラの外見を決める場当たり的な方法だけど、
小規模なら混乱を最小限に防げてプラクティカルだよ。
539(2): 02/09/19 05:35 ID:??? AAS
スプライトをリファレンスカウンタで管理するってどうよ。
シーン構築時に必要な物をすべて読み込んで、
終了時にまとめて削除する方が速いしスマートじゃね?
540(1): 533 02/09/19 05:42 ID:??? AAS
>>535-536
早朝からありがとうございます。
リファレンスカウンタは、調べていてる時に見つけて
>>536 さんのような感じにしていたんですが、
管理するクラスと、それに管理されるクラスとの関係を
上手くまとめられませんでした。
ゲーム開始前の時点で、管理クラスにサーフェスやアニメーションなんかの
省5
541: 533 02/09/19 06:08 ID:??? AAS
>>540 を書き込む前に、その間の書き込みを確認してませんでした。
>>537
そうやって定義を分けておくと、同じ種類のキャラクタのスプライトで使いまわせますね。
参考になりました。
>>538
>「キャラのデータを元に画面を組み立てる」関数
が私が最初にとっていた方法だと思います。
省8
542: 02/09/19 12:33 ID:??? AAS
>>539
読み込み失敗時のエラー処理が繁雑になるから、ゲーム開始時点で
まとめて読んでしまった方が良いかも。データ量にも依るけど。
543(1): 02/09/19 15:44 ID:0CTGoUX3(1) AAS
vertex-shaderってなんですか?
544(1): 02/09/19 15:57 ID:??? AAS
vertex-shader(頂点シェーダ)ってのは、
トランスフォームやライティングやテクスチャやブレンディングなどの頂点処理機能のこと。
プログラマブル頂点シェーダは、いままで処理系(Direct3Dなど)の
固定機能のみであったのに対して、これらの機能をプログラムできるってやつ。
545(1): 02/09/19 16:04 ID:39QNxA7D(1) AAS
外部リンク[html]:muvc.net
546: 543 02/09/19 16:38 ID:??? AAS
>>544
サンクス。
禿しくわかりました。
オレイデス(・∀・)つ旦~
547: 02/09/20 02:00 ID:??? AAS
>>545
イイ!
548: 02/09/20 04:38 ID:??? AAS
ここはひどいインターネットでしたね
549(1): 02/09/22 18:44 ID:lBYio+jt(1) AAS
画角を、視点からの距離に応じて自然に変化させる事はできますか?
普通の人間に近い画角を設定すると、至近距離での物の見え方が
おかしいように感じます。
550(1): 02/09/22 19:54 ID:??? AAS
その問題は随分昔から色々言われてきて、
今のところ現実的な解決方法が見つかってないと思う。
至近距離のものは、目には歪んで見えているのに真っ直ぐのものを
真っ直ぐと認識できる。これは脳みそが補正しているからです。
至近のものをなんとかして正しくゆがめて表示すると、
それはそれで不自然に感じるはず。
なぜなら、脳が補正しないから。
551(2): 02/09/22 19:57 ID:??? AAS
もー少し書くと、
最大の問題は、目からディスプレイまでの距離が離れているから、
自然な映像は目からディスプレイよりも近い映像を表示し得ない
のです。
ヘッドマウント式のディスプレイであれば、
正しくゆがめるとちゃんと認識できると思う。
552(1): 02/09/22 22:18 ID:??? AAS
>>551
HMDは焦点距離を1mくらいに設定してるので、
結局うまく認識できないと思う。
553(1): [ほんと聞きながしてほしいんだけど] 02/09/22 22:28 ID:??? AAS
それは16Bitでの単色のグラデーションが汚いことより重大な問題なのか?
554(1): 02/09/22 22:52 ID:??? AAS
Virtual Realityとしては結構な問題。
グラデーションはbit数を上げれば解決するけど。
555(1): 02/09/23 00:45 ID:ThYVC2el(1) AAS
dxfフォーマットの詳しい解説ページ教えて下さい
本は絶版みたいだし、お願いします
556(1): 02/09/23 01:03 ID:v6pFfVCj(1/2) AAS
>>555
やめとけ。検索すればすぐでると思うが、情報がいい加減でひどい
フォーマットってうわさだ。何に使うん?
557(1): 02/09/23 01:11 ID:??? AAS
ちょっと調べたが酷いもんだったなあ
3D拡張もあるらしいが
558(1): 02/09/23 01:13 ID:v6pFfVCj(2/2) AAS
外部リンク[htm]:homepage1.nifty.com
559: 02/09/23 01:53 ID:??? AAS
>>556>>557>>558
ありがとうございます。
3Dを扱う一般的なフォーマットは知っておかんといかんかな、と思いまして
560: 549 02/09/23 03:58 ID:??? AAS
>>550-554
単純な問題じゃないと言うわけですね。
自分の知識でまだまだ足りない部分があった事がわかりました。
ありがとうございました。
561(1): 02/09/23 06:14 ID:FUH7SiPA(1/3) AAS
ゲーム作成用のC++クラスフレームワークいいのありませんか?
DirectX8はWizardもついてだいぶよくなったみたいだけど
構造体がいっぱい残ってるのがうっとしいです。
やれることが限定されても、そのへんクラスで結構隠してくれてるのが
あればいいんですが。
562(1): 02/09/23 07:28 ID:??? AAS
Wizardで作られたものを整理して、テンプレートとしてとって置く
563(1): 02/09/23 07:39 ID:??? AAS
>>561
外部リンク[htm]:www3.justnet.ne.jp
564: 02/09/23 07:57 ID:??? AAS
>>536
オイオイ
> いいの
ダヨ
565: 02/09/23 08:13 ID:??? AAS
elはごった煮だけど良い物だよ。
洗練されているという良い物ではないけど。
566(1): 02/09/23 08:14 ID:FUH7SiPA(2/3) AAS
>>562-563
ありがとうございます。
ELLibちょっとヘッダ眺めてみました(眺めただけ)。
ほかにもあれば、情報収集しときたいのでお願いします。
567(2): 02/09/23 08:34 ID:??? AAS
>>566
やねうらおの奴使っておけ。
まー、完璧ではないかも知れないが普通に使う分には問題ない。
NxDrawが生きてたらそれが良いと思うんだけどね。
あとはゆきいるかの所かなぁ
リンクは面倒なのでぐぐってくれ。
ゲーム用のフレームワークが本格的なゲームエンジンを指す場合、
省1
568: 02/09/23 08:49 ID:FUH7SiPA(3/3) AAS
>>567
ふんふん、なかなか本格的ですね。
これはどうもありがとうございます。YTLには笑った。
趣味で使うつもりなので。
UTって何でしょう。
569(1): 02/09/23 09:41 ID:??? AAS
たぶんUnreal Tournamentのことだろう。
この辺を嫁ばいい。
外部リンク:udn.epicgames.com
570: 02/09/23 10:35 ID:??? AAS
>>569
ありがとうございます。
ちょっと見ただけでは良く分かりませんでしたが
今度暇なときに見てみます。
571(3): 02/09/23 14:39 ID:??? AAS
>>567
あれじゃあ、片手落ちじゃない?
572(2): 02/09/23 15:12 ID:??? AAS
>>571
その前に君は日本語を使いなさい。
「あれ」は何の指示代名詞なんだい。
573: 571 02/09/23 15:22 ID:??? AAS
>>572
ポリポリ
574: 02/09/23 15:29 ID:??? AAS
>>572
571
<#`Д´>パ、パカニスルナ
575: 02/09/23 16:30 ID:??? AAS
「片手落ち」ってのは使わないほうがいいよ
厨に変なツッコミいれられるから
576: 02/09/23 16:52 ID:??? AAS
>厨に変なツッコミいれられるから
575=厨
577(1): 02/09/23 16:58 ID:??? AAS
なんかよく分からんのだが
とりあえず誰か>>571の解説を頼む。
正直、俺には読解不能。
578(1): 02/09/24 23:47 ID:??? AAS
>>577
やねうライブラリでは、2D しか対応してないって事では?
579(1): 02/09/25 00:30 ID:??? AAS
3Dやりたいなんて書いてないじゃん
580(1): 578 02/09/25 02:18 ID:??? AAS
>>579
今時の PC でゲーム作るって言ったら、
3D に対応してるライブラリのほうが、作るのが簡単で良いんじゃない?
無理に 2D に落として仕様を考えるよりも、素直にアイデアを出せるし、
三世代くらい前のカードでも、充分速かったと思うよ。
上下前次1-新書関写板覧索設栞歴
あと 406 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s