トップページgamedev
986コメント314KB

ゲームプログラミング相談室

■ このスレッドは過去ログ倉庫に格納されています
0001プチ9627m01/11/06 18:47ID:G6Fk/ND/
ゲームプログラミング全般についての質問スレッド。
駄スレ立てる前にココで聞きましょう。

■旧スレ(プログラミング技術板より)
○パート1
http://piza.2ch.net/tech/kako/969/969984472.html
○パート2
http://pc.2ch.net/test/read.cgi/tech/985540361
○パート3
http://pc.2ch.net/test/read.cgi/tech/1002894129/
0423名前は開発中のものです。02/05/09 21:53ID:???
>>422
メンボスレ
0424ゲー作初挑戦@ ◆ByBD3yHE02/05/09 22:15ID:PutN4UaM
メンボスレ?
0425名前は開発中のものです。02/05/09 22:36ID:???
>>424
おそらくこれだろ

☆メンボスレ☆(メンバーボシュースレッド)
http://game.2ch.net/test/read.cgi/gamedev/1005323011/

良いひとそうだし(スレ違いの質問してるが)、暇なら手伝いたいがのぉ。
とにかく同人作りは、相方選びが一番重要なりよ。…いやマジで(´・ω・`)
0426ゲー作初挑戦@ ◆ByBD3yHE02/05/09 22:42ID:???
スマソ、ありがとうございます。
思いっきりスレ違いですたな。

頑張ってオモロイ技術者をゲットして楽しく作ってきまつ。
0427名前は開発中のものです。02/05/10 22:12ID:lw3De0y2
 
0428名前は開発中のものです。02/05/11 01:00ID:???
あ、もう逝っちゃった?
http://natto.2ch.net/test/read.cgi/2chbook/1020693668/
0429名前は開発中のものです。02/05/11 13:22ID:???
すみません、DirectXが上手く動かないんですが…
VBから使ってるんですが、
プライマリサーフェイスとバックサーフェイスの
フリップが上手くいきません。
っていうか、概念がいまいち分かりません。
バックサーフェイスに画像転送

フリップ

ループ
させているんですが、バックサーフェイスに画像を書き込めていない見たいなんです。
どなたか分かる方いませんか?
0430名前は開発中のものです。02/05/11 17:31ID:npO7xgR2
もう少し情報出してもらえないとわからないよー。

Windowモードでフリップしてないよね?
0431名前は開発中のものです。02/05/11 20:40ID:???
>429
>バックサーフェイスに画像を書き込めていない
ならFlipとは別問題じゃない?
0432名前は開発中のものです。02/05/11 21:24ID:???
一応解決しました。
>>431さんの言うとおり、フリップとは一応関係ありませんでした。
クリッパーの設定がおかしかったみたいです。
クリッパーを外したらちゃんと書き込めました。
で、結局クリッパーの使い方は分からず終いでした。
ついでに、320,240のフルスクリーンです。

っていうか、クリッパーの使い方教えてください(;´Д`)人
検索してみましたが、ページが一箇所しか見つからず、
しかも、そこに書いてある通りにやっても上手くいきませんでした。
0433名前は開発中のものです。02/05/11 22:04ID:???
ヘルプにはのっとらんのか?
0434名前は開発中のものです。02/05/11 22:06ID:???
ヘルプ!?
って?
DirectXの?
あるの?
0435名前は開発中のものです。02/05/11 23:14ID:???
DirectXのヘルプはみんなの心の中にあります
0436名前は開発中のものです。02/05/11 23:34ID:???
わかりました、心を磨くため、しばらく旅に出ます。
探さないでください。
0437名前は開発中のものです。02/05/12 00:21ID:???
心配しなくても探しません。
安心してください。
0438ピル・ゲイツ02/05/12 00:24ID:???
>>435
ナイスアシスト!!
0439名前は開発中のものです。02/05/12 01:13ID:???
DirectXができません、同じ症状の人いませんか?

コンパイラ :Borland C++
SDK :DirextX 7,DirectX7a
症状 :プログラムを起動したら「このプログラムは不正な・・・」
       MAINのエラーです。DDRAW.DLLなどのメッセージ。
プログラム :DirectDrawのオブジェクトを作る簡単なもの、
      DirectDrawCreate,DirectDrawCreateEx共にエラー、戻り値も帰ってきてない模様
      コンパイラに付いてきたライブラリ(DirctX3)なら動きました。
SDKのサンプルは動きました。
DirextX :DirextX8.0
0440名前は開発中のものです。02/05/12 01:38ID:4YN9DEeo
>>439
DirectXができません、って・・・(sigh

COFFとかOMFとかでgoogle検索しる!
044143902/05/12 01:41ID:???
わかりました、探索してみます。
044243902/05/12 01:51ID:???
OMFで検索したら「オメコファイヤー」とでますた
044343902/05/12 01:59ID:???
オブジェクトファイルの種類についてでました。
0444名前は開発中のものです。02/05/12 04:15ID:???
>>439
implib.exeでddraw.libを作り直してください。
0445名前は開発中のものです。02/05/12 05:27ID:rvy9Ukfg
いや、ルパンはとんでもないものを盗んでいきました。
それは貴女の心です。
0446名前は開発中のものです。02/05/12 09:53ID:VspODHGo
最近プログラミングを勉強しはじめた厨房の質問なのですが
c++buliderとWindows付属のツール(ペイントなど)だけでゲームの製作は可能ですか?
0447名前は開発中のものです。02/05/12 09:55ID:???
>>446
可能
044843902/05/12 09:59ID:???
解決しました、
必要なのはIncludeFileだけで、
SDKの中のライブラリは使わなくていいんですか?
0449名前は開発中のものです。02/05/12 09:59ID:VspODHGo
プログラミング以外にもさまざまな知識が必要ですか?
0450名前は開発中のものです。02/05/12 12:56ID:???
DirectX8SDKいれたらVCで「DirectX AppWizard」っていうのが追加されますよね。
それつかってゲーム作ってる人います?
0451名前は開発中のものです。02/05/12 15:13ID:???
抽象的な質問ばっかり
0452名前は開発中のものです。02/05/12 15:25ID:W8mXt2BA
 
0453名前は開発中のものです。02/05/12 16:56ID:???
答えられないヤツばっかり。
0454名前は開発中のものです。02/05/12 17:40ID:???
なかなか返答が難しい質問だからな
0455名前は開発中のものです。02/05/12 17:56ID:???
企画屋撲滅スレに行けば優秀なプログラマが沢山いるんできっと質問に答えてくれるYO
045644002/05/13 03:21ID:???
>>448
どのように解決したのか、後続のためにtipsのまとめキボンヌ
045744802/05/13 22:44ID:???
えっと、
IMPDEF ddraw.def c:\windows\system\ddraw.dll
でモジュール定義ファイル作って、
IMPLIB ddraw.lib ddraw.def c:\windows\system\ddraw.dll
で作ったファイルをリンクしたら動いた。

けど、このファイルがDirextX7で動くか心配だ・・・
045844002/05/14 01:21ID:QkMxU4bA
>>457
THX!

ま、正直なところ、DirectXであれこれやるならVC++を使うことをお薦めするが・・・。
0459名前は開発中のものです。02/05/14 06:42ID:???
>>457
それでいいと思うよ。
0460名前は開発中のものです。02/05/14 08:45ID:???
DirectXの機能を使うと楽になる部分もあるけど、ほとんど使わないで済む程度のゲーム
だったらVC++とかDelphiのライブラリ内で作っちゃった方がいい。
0461名前は開発中のものです。02/05/14 14:24ID:???
>>460
そりゃそうだ。
マインスイーパ作るのにDirectXはいらないな。
適材適所。
0462名前は開発中のものです。02/05/14 21:31ID:gp9yAFEg
 
0463名前は開発中のものです。02/05/18 20:47ID:OvBslwUs
 
0464名前は開発中のものです。02/05/19 11:39ID:l8bBGy5I
FF XIでのヘタレッぷりには大いに笑わせてもらった。
映画で懲りたかと思えばコレか、
おまえらゲームプログラマの質なんてたかが知れてる。

次はどんな手で笑わせてくれるんだ?
サーバが重くてつながらないのにチョコボ大陸横断レースでもするのか?(藁
0465名前は開発中のものです。02/05/19 11:41ID:???
>>464 スレ違い、板違いです。
0466名前は開発中のものです。02/05/19 14:58ID:???
人間以外の生物は書き込みにこないで下さい。
0467名前は開発中のものです。02/05/19 15:25ID:???
プログラミングあるいはソフトウェア構築の話なら歓迎だぞう
0468名前は開発中のものです。02/05/19 16:38ID:5QVs0KEU
構造設計スレに書いたんだけど、あっという間に閉鎖スレになっちゃったのでこっちで再送


すいません、STGを作るの初めてなんで疑似タスクで質問させてください。
疑似タスクの仕組みとしては LogicianLoad を参考にさせてもらっています。

----------------
Q: 1フレームの中でタスクの優先順位を何回も変更する場合ってありますか?

優先順位を変更するならば、タスクをリストに登録する際どうやってその位置を見つけますか?
リストの先頭からざーっとなめてるんですか?
----------------

とりあえず、私としては以下のようにしてるんですが、よくないところとかあったら教えてください。

----------------
固定長ワークの配列を作る。要素数 256個とか。

タスクは、ワークへのポインタを持つ。
いくつものタスクがおなじワークへの参照をすることがあるので、ワークには参照カウンタを持たせる。

タスクのリストへの登録は map<優先度, list<タスク *> > な優先度マップを用意して、

優先度マップ[優先度].push_back(&タスク);

としてリストに登録。タスクの優先度変化とか、チェンジタスクとかは同じワークを参照するタスクを
つくって対応。状況に応じて自殺。
----------------
0469名前は開発中のものです。02/05/19 18:12ID:???
>>468
適切なソートアルゴリズムを選択すれば良い。
この場合、バケットソートが丁度良いかもしれない。
バケットソートについてはgoogleで検索して下さい。
0470hosoku 02/05/19 18:16ID:???
優先順位別のバケット(リスト)を用意しているのだから
要素を追加する位置をサーチする場合、そのコストはゼロ。
0471hosoku02/05/19 18:18ID:???
リストは一つでも良い。
各優先順位の先頭(or最後尾)ノードへの参照テーブルを用意する。
0472hosoku02/05/19 18:25ID:???
「タスク」という言葉は最近は通じない場合が増えている。
外人相手には100%通じないので、その辺も気を付けて。
047346802/05/19 20:33ID:???
>各優先順位の〜

なるほどです。やってみます。
0474名前は開発中のものです。02/05/20 03:37ID:???
優先順位ってどうして必要なんですか?

1 移動
2 衝突判定
3 オブジェクトの生存チェック
4 描画

こういう風に順番を分ければ、処理順が重要になる事って
あまりない気がするんですが・・・
0475名前は開発中のものです。02/05/20 06:46ID:???
>>472
外人相手だと何と言えばいい?
0476名前は開発中のものです。02/05/21 01:09ID:0jVRIemA
>>474
その1〜4の順番分けをすることが、まさに処理の優先順位をつけることだと思うのだが・・・。

もちろん、メインループ内でそれぞれの処理を行う関数を順に呼ぶようにしても作ることは
できるんだけど、その辺をフレキシブルに変更できるようにするための仕掛けがタスクな
わけじゃん。
0477名前は開発中のものです。02/05/21 01:15ID:???
>>476
優先順位と言えば優先順位みたいなモノだけど、
474で書いたように呼ばれる順番を保証しないと、
(好き勝手な優先順位で好き勝手に死んだり生まれたり)
安全と最適化を両立しづらくないですか?
0478名前は開発中のものです。02/05/21 01:43ID:???
だから、優先度は 決められたヘッダーとかで識別子を宣言するように
チーム内で決めるのがふつうなんじゃないの?
0479名前は開発中のものです。02/05/21 14:08ID:lOTv7vN.
DirectX8で、3Dモデルを使い、ようやく簡単なアニメーションが
できる様になったのですが、ここではたと詰まってしまいました。

あるアニメーションセットから、別のアニメーションセットに移る時
一般にどのような補間がなされているのでしょうか?

とりあえず自分でも色々試したのですが、一瞬で移行すると場合によっては
不自然だし、現在の位置から移行先の最初のフレーム位置まで
適当に補間をかけてみたら、なんとも奇妙な動きになってしまう始末で(- -;
……まさか、同じ座るという動作でも、移行前のものにあわせて
何パターンもアニメーションを作るのでしょうか((((; ゚Д゚)))

なんとも手詰まりで…アドバイスいただければ幸いであります。
0480名前は開発中のものです。02/05/21 15:05ID:???
ケースバイケースで、つなぎのモーションをかませるとか、
つなぎの姿勢をかませるとか、
そこら辺はノウハウの問題なんじゃないかと思うんですけど
状態遷移図みたいなのを書いて検討してみるしか。
048148002/05/21 15:06ID:???
訂正。
しか。→とか。
0482名前は開発中のものです。02/05/21 15:58ID:???
D3DXVec4LerpでQuarternionに線形補完を掛けるとか
0483名前は開発中のものです。02/05/21 16:02ID:???
モーションA start<------+------>end
モーションB      start<------+------------------->end
                 ^0.0   ^1.0
この0.0〜1.0の区間を補完すればいいんでない?
0484名前は開発中のものです。02/05/21 16:04ID:???
Σ0<= t <= 1.0 A * t + B * (1 - t)
048547902/05/21 17:14ID:???
レスありがとうございます。返事が遅くてすいません。
…勘違いして、ずっと別のスレを監視してました(;´Д`)

>>480
なるほど!後のパターンを増やすのではなく、つなぎを噛ませるのですか。
うー、しかし同じアニメーションからの遷移でも、どのコマから移るかによって
いろいろ考えなきゃなのかな…。しかし完璧を求めるなら、これをやるべきですよね。
>>482
線形補間でやると、組み合わせによっては突拍子もないのがでちゃうんです。。
たぶん私のモーションの作り方が悪いんですが…でもこれが手軽で良いですよね。
>>483-484
ややや、つまり移行時間を決め、その間のAとBを合成しつつ、
だんだんとAの影響を弱め、Bの方を顕在化させるわけですね!
むはー、プログラム的にも解決できるなんて(*´Д`)

皆様のレスに基づき、それぞれのアニメーションにあった方法をあてて
いきたいと思います。一人じゃ絶対思いつかない事ばかりで…本当に大感謝です〜。
0486名前は開発中のものです。02/05/22 01:58ID:emKWkvCg
姿勢は QuaternionSlerp 位置は エルミート曲線で補間。
その他、キーワードは Catmull-Rom スプラインかな。
あとは自分で調べてくれ。
0487名前は開発中のものです。02/05/22 16:22ID:wmr.hUOI
ネット対戦ゲームつくりたいのですが
いいホームページ知りませんか?
ちなみにVISUALBASICで作ろうとおもいます
04889902/05/22 16:35ID:???
-------風俗の総合商社・MTTどこでも-------

〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
  http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
------------------------------------------------
0489名前は開発中のものです。02/05/22 17:15ID:DJLFFQIk
つーかモーションとモーションをブレンドしてるゲームって少ないと思うけど。
普通キャンセルだろ。
0490名前は開発中のものです。02/05/22 17:46ID:???
>>489
DOA3
0491名前は開発中のものです。02/05/22 19:15ID:???
>>489
今時キャンセルなんてやってるのは時代遅れのメーカーぐらい。
0492名前は開発中のものです。02/05/22 23:37ID:???
GCマリオはキャンセルだったかな
0493名前は開発中のものです。02/05/23 14:44ID:???
ブレンドすると現実的にはありえない動きをしてしまう罠
0494名前は開発中のものです。02/05/23 16:55ID:???
ブレンドしなくても現実的にはあり得ない動きをしてしまう罠。
0495名前は開発中のものです。02/05/23 18:38ID:???
キャンセルした方が良いケースと補間した方が良いケースがある。
mouchottoatamatukaouze
0496名前は開発中のものです。02/05/23 20:02ID:???
基本的にすべての動作は補完で繋ぐべき
不自然になっちゃうなら補完式を考え直すべき
0497sage02/05/23 22:57ID:FUqKSSOQ
現実と照らし合わせれば。
補間もキャンセルとごまかすための手法の一種にすぎないのだが。
だから、どちらが優れているなどないと思われ。
case by case。
一つのことに凝り固まるのは、頭悪いぜ。
0498名前は開発中のものです。02/05/23 22:58ID:???
名前をsageちまった。
俺が頭悪かったようです。
逝ってきます。
0499名前は開発中のものです。02/05/23 23:06ID:???
>>497 FUCK aSS
0500名前は開発中のものです。02/05/24 00:29ID:???
>>497
あんまり、本当の事を言うと話が止まるので
わかっていてもしらんぷりしとけよ(ワラ
0501名前は開発中のものです。02/05/24 01:21ID:???
トルネコみたいなダンジョンではなく、女神転生シリーズに近い
通路ばかりのダンジョンをランダムで生成したいのですが、
唯一見つかったアルゴリズムでは綺麗なダンジョンが作れませんでした。
トンネルを掘るようにしてダンジョンを作るアルゴリズムを使うと
綺麗なダンジョンが作れる、と読んだのですが、参考になる
情報などがありましたら教えていただけないでしょうか?
よろしくお願いします。
0502名前は開発中のものです。02/05/24 01:54ID:???
http://members.tripod.co.jp/karai/
このページ見た?なんか凄そうだけど。
色々なパターンが紹介されているみたいだし。
0503416(HSP) ◆HoSW/FCI02/05/24 03:53ID:btbuBamk
>>501
 0が通路で1が壁だとすると、まず、n×mの広さを1で全部埋めます。一番外側だけ0にすると範囲チェックしなくて済むから楽かも。
 で、親座標と子座標を用意して、親は左上から右下まで2ステップずつ捜査させます。子は親からランダムに4方向を選んで移動するわけですが、これも2ステップずつ移動させます。子の移動先が壁だったら掘って、またランダムに移動。
 移動予定先が全部通路で選択肢が無い場合は、子の移動は終了して、親を1つ進めます。
そしてまたその親座標から子を移動させて動けなくなるまで掘っていく。これを最後まで繰り返すと解が1つだけの迷路ができます。

 同様の方法で2つの接しない壁を作っていくという方法もありますが、上記のほうがシンプルかも。
0504416(HSP) ◆HoSW/FCI02/05/24 04:06ID:???
 上記の方法を発展させ、矩形を用いて自由な角度に掘り進んでいく方法も。
 すでに掘った場所には移動しない、という判定自体は同じです。この場合の分岐方法は、掘り進んでいく過程で分岐点を複数置いていく(記憶していく)ことになります。
 記憶しないで矩形の範囲単位で掘れるだけ掘るという方法もありますが、洞窟っぽくはならないでしょう。また、掘っていく過程で矩形の大きさを変えれば、より自然の洞窟に近い迷路ができます。
0505名前は開発中のものです。02/05/24 06:13ID:???
>>502
アルゴリズムを作れそうにはないけど
パズル的に楽しませていただきました。

>>503
そのアルゴリズムをベースに作ってみようかと思います。
ありがとうございました。
0506名前は開発中のものです。02/05/24 06:23ID:???
完全ランダムで無くて良いのなら n x n のサイズの小さい迷路を
いくつか作っておいて、つながるように並べるのもあり
0507やさしい02/05/27 01:43ID:???
板で協力してゲームを作ろうと思ったので
プログラマを募集してます
われこそはと思うつわものは覗いてください

http://ex.2ch.net/test/read.cgi/shar/1022428219/
0508名前は開発中のものです。02/05/27 22:56ID:???
 
0509名前は開発中のものです。02/06/25 01:31ID:???
sage
0510オhル艦長02/06/25 14:18ID:J1CGzihY
緊急浮上
0511名前は開発中のものです。02/07/24 12:32ID:???
VBで敵を誘導させて全滅させればクリア、というゲームを作っています。
敵の番になったら、自分のいるマスにむかって1歩(1マス)近づく、
という感じにしたいのですが、ちょっとなやんでいます。

敵のキャラと自分のキャラの座標を比較して、
敵のx座標が自分のx座標より大きければ1マス分増やす、
y座標が自分のy座標より小さければ1マス分減らす、というかんじです。

ifやSelect Case の入れ子でやってみたんですが、
行がながーくなってしまって、
どうもこれでは上手いやり方ではないような気がします。

もっと効率の良い考え方がありましたら教えていただければと思います。
説明がへたですみません。。
051251102/07/24 12:49ID:Ml.IF7uc
あげてみたり。。。。
0513名前は開発中のものです。02/07/24 12:54ID:???
>>511
どうして長くなったのかわかんないけど、行がなが〜くなったらそれぞれの処理を分割するしかないのでは?
ifの条件文が長い場合はあらかじめ比較するモノを変数に入れておくとか。
if〜endifはつかってるよね?

手法としては、移動する処理自体を1つの関数にしておいて後から高速化するのが望ましいかも。
とりあえず遅くてもゲーム自体はできるから。
0514名前は開発中のものです。02/07/24 12:56ID:???
>>511
>敵のx座標が自分のx座標より大きければ1マス分増やす、
>y座標が自分のy座標より小さければ1マス分減らす、というかんじです。

敵のx座標が自分のx座標より小さい場合や
y座標が自分のy座標より大きい場合は考えなくていいのか

俺ならとりあえず移動処理をブラックボックスにしてほっとく
あとからいくらでも高速化できる(かもしれない)からな。
0515名前は開発中のものです。02/07/24 13:08ID:???
>>511
このスレどうよ
http://game.2ch.net/test/read.cgi/gamedev/1024902432/l50
051651102/07/24 13:22ID:Ml.IF7uc
レスありがとうございます。
>ifの条件文が長い場合はあらかじめ比較するモノを変数に入れておくとか。
んと、とりあえずこんな感じにしてみたんです。
select case Npc.x(敵のx座標)
case is > Player.x(自分のx座標)
  if Npc.Y < player.Y then
Npc.X = Npc.X - 32(32はひとますぶんです)
Npc.Y = Npc.Y + 32
endif
...こんなかんじで、敵のいる位置のパターンが8こ(斜め4個に上下左右)
もあるんで、どんどん入れ子じょうたいになってしまって。。。

>移動する処理自体を1つの関数にしておいて後から高速化するのが望ましいかも。
ふむふむ。上記の移動の処理をMoveNpc というPublic Subにしているんですが、
そのなかに自作の関数をいれるということでしょうか?

>敵のx座標が自分のx座標より小さい場合や
y座標が自分のy座標より大きい場合は考えなくていいのか

そうなんです!パターンのぶんだけif −endif 文がふえてしまって
ながくなっちゃってるんですよね。これをもっとどうにかして
みじかくならないかなあと。。。

>俺ならとりあえず移動処理をブラックボックスにしてほっとく
ふむふむ、さきにほかのところを完成させちゃえー、ということですね。
たしかに、、、ほかにも考えなきゃいけないとこがいっぱいあるんで
そっちもがんばりたいとおもいます。
051751102/07/24 14:00ID:Ml.IF7uc
ここに書かせてもらってレスを拝見したおかげで、
ぱにくってた頭が少しすっきりしたみたいです。
移動処理のとこの致命的なミスを発見し、うまくなおせました!
(行の長さは相変わらずながくなっちゃいましたが)
今は敵が死んだときの処理をがんばってます。
0518名前は開発中のものです。02/07/24 17:42ID:???
>>516
> そうなんです!パターンのぶんだけif −endif 文がふえてしまって

if 敵のx座標 < 自分のx座標 then 敵のx座標を増やす
if 敵のx座標 > 自分のx座標 then 敵のx座標を減らす
if 敵のy座標 < 自分のy座標 then 敵のy座標を増やす
if 敵のy座標 > 自分のy座標 then 敵のy座標を減らす

コレだけで済むと思うんだが。

ちなみに、
> Npc.X = Npc.X - 32(32はひとますぶんです)
今の状態では右へ1キャラ分移動するのに32を加えていると思うけど、
これはそういう風にするんじゃなくて、将棋の「マス」みたいに管理すべき。
そしてグラフィックを表示するときにx座標とy座標を32倍すればいい。
051951102/07/24 19:40ID:Ml.IF7uc
レスありがとうございます、書きこみ遅くなってすみません。
>>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
てなかんじでいいのでしょうか?
この方がのちのち管理もしやすそうですね。

今までは1個1個のマス目の番号を割り出すときに
intBlockNo = (8 * (Chara.Y / 32)) + (Chara.X / 32)
ってやってたんですが、この方法ならいちいち32で割らずにすむので
かなりすっきりできますね!!!
これからさっそくかきなおします。
0520名前は開発中のものです。02/07/25 01:52ID:???
>>516
absとsgn関数をうまく使え

if abs(敵のx座標-自分のx座標) < 1 then 敵のx座標にsgn(敵のx座標-自分のx座標)を加える
Y座標についても同じ
052151102/07/25 02:23ID:VlAcWhO2
レスありがとうございます。
>>520
>absとsgn関数をうまく使え

今 abs関数とsgn 関数調べてきました!
絶対値、、、中学のときに習ったような、、自分の不勉強さに身がちぢこまります。
理解できてないままソースにコピペではあまりにも恥ずかしいので
いまから紙にかいて考えてみます。

あれれ?と思うようなとこはたくさん有りますが
ゲームのおおまかなソースが書きあがったので、
明日は他の部分ももっと効率的な書きかたができないか考えてみます。
0522名前は開発中のものです。02/07/25 12:19ID:???
>>521
お前は効率的な書き方をマスターしたいのかゲームを完成させたいのかどちらだ?と
小一時間(以下略

慣れないうちはきっちり動くものを作り上げてから速度&効率のチューニングをやれYO!
とマジレスもしてみるテスト
■ このスレッドは過去ログ倉庫に格納されています