トップページgamedev
1001コメント378KB

【初心者】スレを立てる前にココで質問を【Part20】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/09/29(火) 07:08:29ID:OO8C9kYO
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc11.2ch.net/gamedev/

>>980 を踏んだ人は次スレ立てをお願いします。
【アップローダ・避難所・Wiki】
ゲーム製作技術板公式Wiki
http://wiki.game-develop.com/

ゲーム製作技術板公式アップローダ
http://gmdev.xrea.jp/

ゲーム製作技術板予備(機能停止中?)
http://yy13.kakiko.com/gamdev/

アップローダー予備
http://gamdev.hp.infoseek.co.jp/

gamdev.orgが落ちるたびにあげてみるスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1107022166/
0320名前は開発中のものです。2009/11/18(水) 22:55:36ID:vrhmXAes
>>318みたいなスルー出来ない奴ってなんなの?

「ツル科」などいう分類はない -> パースエラー -> 理解不能 -> 野暮なツッコミ

こういう流れだとしたら、脳の性能が悪いからかな?

「ツル科」などいう分類はない -> ツッコミどころ発見! -> 野暮なツッコミ

こっちだとしても、頭悪いね
0321名前は開発中のものです。2009/11/18(水) 22:57:52ID:k1u1gloe
一行目とそれ以降に矛盾を感じる
0322名前は開発中のものです。2009/11/18(水) 23:11:35ID:vrhmXAes
>>321
と思いがちだけど、別に矛盾はないよね
何でもかんでもスルーしろとは言ってない
>>318やお前のようなクソなレスを馬鹿にする分には
そりゃ個人の勝手でどうぞ
0323名前は開発中のものです。2009/11/18(水) 23:14:38ID:k1u1gloe
以上、僕と>>322の共同のネタでした
お騒がせしました
03243142009/11/19(木) 05:35:34ID:aOkcC/Yj
>>312
マトモにレスが付いてないし、釣りじゃなかったんだが反応の方も無いので一応。

メッセージ枠として無難なデザインに過ぎないけど、
背景を透明度の有る黒 枠は不透明に近い好みの1色 文字は不透明な好みの1色
使う色はなるべく黒・白を基本にもう1色などと少ない方が勝手に見栄えが安定する。
色は勘で作らずカラーパレットでググって、サンプルを見ながら色調を揃えるなど計画的に使う。

それでそっけなくて満足出来ないならば、どこか1辺だけ枠を無くしたり色味や形を変える。
右上だけに角取りをするorワンポイントを置いたりする。枠の一部をわざと少しだけ突き出す。など。

どんなゲームなのか解らんからよく使われがちなデザインでの話。で、現状に不満を持てるならセンスは磨けるはず。
諦めずにAmazonとかで本買って来て見よう見まねで手を動かせば誰でも成長はする。がんが。
0325名前は開発中のものです。2009/11/19(木) 19:41:28ID:YLHEX+S1
半透明の青(#4040ffくらいの)を使ったらそれだけでSFC時代の雰囲気になって、そのワクもない単なる青い四角で満足してしまったことがある
03263122009/11/19(木) 22:27:14ID:7rUNhOL9
>>324
とりあえずベース黒(すこし透明)に枠は白(不透明)で文字は白と黒の袋文字とかはやってます
基本読みやすさ重視だけれども、それだとそっけないなーと思ってたので…
色とか勘で決めてたので、今度から色調揃えてみるわ

とりあえず、本漁ったり他ゲーム見て勉強したりしてがんがってみる
レスありがとうー
0327名前は開発中のものです。2009/11/22(日) 20:03:20ID:MB5dnDgT
自分ひとりの力でSRPGを作りたくて今いろいろ調べてるんですけど、どうやらHSPといった言語で作るのがよさげ?なんでしょうか
自分は情報系の大学2年で言語はC++を一通り習った所で、できればC++を使って作ってみたいと思ってます
何かちょうど良い解説書とかないでしょうか?
坂本千尋著のロールプレイングゲームプログラミングといった本が良いらしいのですが今は絶版になっているみたいで手に入らなそうなので・・・
もしくはHSPとやらを学んで作ったほうが楽だったりしますか?
0328名前は開発中のものです。2009/11/22(日) 20:36:27ID:wKuwCJgN
「S」は知らんけど、RPGツクールでも使ったら?
情報系の学生ならHSPの長所短所ぐらいは自分で評価しなさい。
0329名前は開発中のものです。2009/11/22(日) 21:01:19ID:N6TMmKQz
http://tkool.jp/products/srpg95/index.html
0330名前は開発中のものです。2009/11/22(日) 21:45:15ID:x0jBp7Mc
HSPはまったくプログラム知らない初心者用のプログラム入門用言語だと思ったほうがいい
C++使えるならそっちでいいと思うよ
0331名前は開発中のものです。2009/11/22(日) 22:40:53ID:GOKoLW92
14歳はどうよ
03323272009/11/22(日) 23:19:12ID:MB5dnDgT
レスありがとうございます

>>328 >>329
ツクール系のものも考えてみたのですが、今回はプログラミングを使用してゲームを作りたいと考えてます
実際に使ったことはないのですが、どうやらプログラミング的な要素は無いように思えます
もしかしたらプログラミング的な要素がないという時点で自分は勘違いをしているのかもしれませんが・・・
HSPについては、すいません、自分で調べてみることにします

>>330
申し訳ありません、ソフトを作るといった時点で自分はまったくの初心者なんです
先にこのことを書いておくべきでした・・・
C++で作成できるという情報はありがたいのですが、まっさらな状態から何かソフトを設計するといった行為すら初めてなものでして・・・
こんな状態でもなにかしら自分の思いつく限りでソースを書き、試行錯誤していくべきなのでしょうか

>>331
14歳、というのは「14歳からはじめるC++わくわくゲームプログラミング教室」のことでしょうか
調べてみたところ、すぐにSRPGに繋がるものではなさそうですがC++でのゲーム設計の基礎が学べるようで、すごく気になりました
書店で探してみようと思います、有益な情報ありがとうございます
0333名前は開発中のものです。2009/11/22(日) 23:24:57ID:x0jBp7Mc
ソース書く前に企画書・仕様書書いたほうがいいと思うよ
0334名前は開発中のものです。2009/11/22(日) 23:28:37ID:YA9W724+
とりあえずゲームを作り始める前にウィンドウの表示のさせ方を調べることからはじめたほうがいいよ
0335名前は開発中のものです。2009/11/23(月) 00:33:14ID:+PDJqU2B
ああ14歳はSPRGの作り方が載ってると思ったから言ったけどあれはRTSだったかすまそ
まあ参考にはなるかも知れんが
0336名前は開発中のものです。2009/11/24(火) 03:52:16ID:ACaH6Yw9
C++できるならSDL使えばすぐ出来るよ
0337名前は開発中のものです。2009/11/24(火) 04:40:21ID:Yv5cTTds
SDLのが簡単なのか
俺はDXLIBの方選んだが
0338名前は開発中のものです。2009/11/24(火) 09:51:31ID:STKTYU9D
SDLはdirectx使ってないから遅い
0339名前は開発中のものです。2009/11/24(火) 12:41:16ID:UBQYebjm
そんなに重いの?俺はDirectX使った自前ライブラリだから関係ないけど。
0340名前は開発中のものです。2009/11/24(火) 13:18:10ID:5CvqamB+
下のページに載っているような「長距離型3Dレーザスキャナ」を野外に持っていって
木・草・建築物をスキャンしてやれば
低コストでPS3対応実写系3DCGの製作が行えると思うですが、
実際のゲーム製作現場において
あまり使われていない(室内での彫刻スキャンのみ)のはなぜなのでしょうか?
ttp://www.krcnet.co.jp/tech/tech_3Dlaser01.html

やはり3Dレーザースキャナの価格が高いからなのでしょうか?
0341名前は開発中のものです。2009/11/24(火) 14:03:10ID:iDm1reyZ
PS3対応実写系3DCGってなに?
03423402009/11/24(火) 17:15:50ID:5CvqamB+
>>341
「クオリティが高い」という意味です。
0343名前は開発中のものです。2009/11/24(火) 18:23:14ID:iDm1reyZ
・1つのオブジェクトをスキャンするのに、あっちこっちに移動して、いろんな角度から取らないといけない
・木や草など風で揺れるものはスキャンできない
・ゲームには実際に存在しないオブジェクトが、たいていの場合登場する
・高いクオリティとはポリゴンの微細さのみによるものではない
0344名前は開発中のものです。2009/11/24(火) 19:13:43ID:AApCK1M7
バカっぽい質問に目頭が熱くなった
これからも頑張ってほしい
0345名前は開発中のものです。2009/11/24(火) 20:16:16ID:AUHoNChH
>>343は偉いな
0346名前は開発中のものです。2009/11/24(火) 22:23:53ID:O7akk6aZ
初めてboost::shared_ptrを使おうとしたんですが、エラーが出てしまいました。
以下のような使い方はできないみたいです。

boost::shared_ptr<IDirect3D9> m_pD3D;

m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );

たしかに普通にnewして入れるやり方と違いますし・・・
この場合、どのようにすればよいでしょうか??
0347名前は開発中のものです。2009/11/24(火) 22:26:33ID:i8576o9O
sptr.reset(rawptr)
0348名前は開発中のものです。2009/11/24(火) 22:48:37ID:CNN1XPTb
ブーストポインタって名前は無駄にかっこいいと思う
03493462009/11/24(火) 22:48:41ID:O7akk6aZ
>>347
ありがとうございます!

m_pD3D.reset( Direct3DCreate9( D3D_SDK_VERSION ) );

でエラーが出なくなりました!

しかし!今度は、上記で得たm_pD3DからIDirect3DDevice9を取得する関数がうまくいきません(涙)

SPtr<IDirect3DDevice9> m_pD3DDev;

m_pD3D->CreateDevice(
   D3DADAPTER_DEFAULT,
   D3DDEVTYPE_HAL,
   hWnd,
   D3DCREATE_HARDWARE_VERTEXPROCESSING,
   &m_D3DPP, &m_pD3DDev );

生ポインタを取り出せばよいかも、と思って、最後の引数を以下のようにしてみましたが、

&( m_pD3DDev.get() )

「'&' に左辺値がありません。」と怒られてしまいました・・・。
どのように与えればよいのでしょうか??
03503462009/11/24(火) 22:53:29ID:O7akk6aZ
↑すみません、SPtrというのは自分で以下のように定義したものです。

#define SPtr boost::shared_ptr
0351名前は開発中のものです。2009/11/24(火) 23:18:32ID:i8576o9O
普通のポインタで取得してから、スマートポインタに渡す。
03523462009/11/24(火) 23:45:30ID:O7akk6aZ
>>351
ありがとうございます!
コンパイルが通るようになりました!

しかし!終了時に以下のようなエラーが出てしまいます・・・ orz

Debug Assertion Failed!

Program: xxx.exe(プログラムのパス)
File: dbgdel.cpp
Line: 52

Expression: _BLOCK_TYPE_IS_VALID( pHead->nBlockUse )

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

どうも、m_pD3D.reset( Direct3DCreate9( D3D_SDK_VERSION ) )がマズいようなんです。
そこの記述以外、コメントアウトして確認しました。
どうも、上記のエラーは多重deleteで起こる例があるようなんですが・・・

DirectX系の変数にshared_ptrはけっこう厄介でしょうか?
素直にSAFE_DELETEマクロで対応しておくか、それともCComPtrにするか・・・
他の方はどうされているか、気になります。
0353名前は開発中のものです。2009/11/24(火) 23:58:20ID:i8576o9O
IUnknownオブジェクトはdeleteせずに、Releaseメソッドを呼ぶ。
0354名前は開発中のものです。2009/11/24(火) 23:59:01ID:i8576o9O
というハンドラをセットすればいいだけ。
0355名前は開発中のものです。2009/11/25(水) 00:18:03ID:FbKntm27
いやいや普通boost::intrusive_ptrか
com_ptr_t使うでしょ
地味な嫌がらせすんなよ
03563462009/11/25(水) 00:45:40ID:b8pKhHr5
>>353
教えてくださってありがとうございます!

>>355
boost::intrusive_ptrやcom_ptr_tなんてものがあったんですね!
教えてくださってありがとうございます!
03573462009/11/25(水) 19:33:56ID:b8pKhHr5
先日はスマートポインタについて教えてくださって、ありがとうございました。
今日、早速、_com_ptr_tを導入してみたのですが、疑問があります。

_com_ptr_t<_com_IIID<IDirect3D9, &IID_IDirect3D9 >> m_pD3D;

で、実際にDirect3D9オブジェクトを取得するとき、

m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );

でも、エラーやメモリリークの警告なく動きましたが、以下のようにAttachメソッドを使って、

m_pD3D.Attach( Direct3DCreate9( D3D_SDK_VERSION ) );

としても同様でした。

これってどちらでも同じということですか??
だとすると、Attachの存在意義というのは何なんでしょう??
0358名前は開発中のものです。2009/11/25(水) 23:52:09ID:txSAQlU4
オブジェクト指向がわかりません
何をどう質問したらいいかもわかりません
だから
ttp://homepage2.nifty.com/natupaji/DxLib/program/ActionSample.cpp
オブジェクト指向でこれと同じものを作ってソースください
お願いします
0359名前は開発中のものです。2009/11/26(木) 00:22:24ID:FX3L1wrJ
人に頼むときは銭を出せ
0360名前は開発中のものです。2009/11/26(木) 01:14:35ID:O1ccXkKB
スーパーマリオ系の2Dアクションを想定。

プレイヤーキャラとして、32x32のドット絵があるんだけど、これを2倍に拡大して、64x64として表示させてるんだ。
本当は64x64のドット絵を用意できればいいんだけど、自分の技術力が追い付かないので苦肉の策。

さて、この時、プレイヤーキャラ以外の部分、
例えばマップチップなんかも同じように2倍表示させないと違和感が残っちゃうかな?
0361名前は開発中のものです。2009/11/26(木) 01:24:38ID:PfXzni20
なんだか最近質問が増え始めた?
往年の過疎板に人が増えてるのかな
0362名前は開発中のものです。2009/11/26(木) 01:48:29ID:ZnyqECYM
高卒の就職難に伴うニート候補生の流入。

> 往年の過疎板
ttp://dictionary.goo.ne.jp/srch/all/%25B1%25FD%25C7%25AF/m0e/
0363名前は開発中のものです。2009/11/26(木) 01:55:19ID:ZnyqECYM
おっとスマン回答忘れたw

>>360
全部二倍にするって事?
もちろんそんな事する奴いないから経験談に基づく回答は期待できないと思うよ。

で想像するにマップチップを二倍にしようがしまいが、どっちもどっち。
キャラだけ2倍ならすぐばれる。
全部2倍ならしばらくはばれないが、違和感を感じさせるだろうね。

でもゆくゆくはちゃんとした64x64でキャラを用意するなら、
下手にマップチップ2倍にしないほうが良いと思うよ。
じゃないとマップチップを元の倍率に戻すときに、全部敷きなおすハメになる。
0364名前は開発中のものです。2009/11/26(木) 02:08:55ID:3yAXikhn
windows標準添付のペイントを使って画像の拡大縮小をすると補完処理されてドット絵が汚くなる
0365名前は開発中のものです。2009/11/26(木) 06:29:41ID:5GTdN3Md
ググレばサイズ変更のアプリくらい見つかるっしょ
0366名前は開発中のものです。2009/11/26(木) 15:10:44ID:O1ccXkKB
>>363
とりあえず、バレるとかバレないとかは問題じゃないです。
そういう意味での違和感という意味でもなかったつもりです。

レトロ感を出すために、わざとドットを荒くしてるゲームは見かけるのですが
僕が考えていた方法とは全く違う手法で実現されているということですね。

ありがとうございました。
0367名前は開発中のものです。2009/11/26(木) 21:02:58ID:X3yV1HjG
> とりあえず、バレるとかバレないとかは問題じゃないです。
> そういう意味での違和感という意味でもなかったつもりです。
だったら質問の仕方がおかしい。質問スレに来る以前の問題だ。
0368名前は開発中のものです。2009/11/26(木) 21:09:03ID:gOvUHsCw
解像度の異なる画像を同時に表示するって話じゃねの?
演出とか、あとはボスキャラなんかだと拡大表示してるのは見たことある
0369名前は開発中のものです。2009/11/26(木) 21:19:26ID:PfXzni20
話を極端にしてみて、たとえば、今のゲームレベルの高精細のきれいな背景に32x32のドット絵を
4倍くらいに拡大して表示するとする。それがレトロっぽいかというとそうは思えないだろうね
つまり解像度の違うものを一緒に表示することそのものはレトロぽさの表現方法にはなりえないんじゃないか?

レトロゲーム=レトロなハードで動くものだから、低解像度、少色数、PSG・FM音源など、を感じさせれば
レトロな雰囲気にはなるとは思うが
0370名前は開発中のものです。2009/11/26(木) 21:59:47ID:r4OxX25G
マリオ・ロックマン系アクションゲームで、斜めの床を作りたい場合ってどうすればいい?

考えうる二つの手法は
1. 一定ドット以内なら段差を上れるように+細長い床を沢山置く
2. 「床パーツ」を作り、独自の動作をさせる
とかなんだけど、何か他にいい方法あるかしら
0371名前は開発中のものです。2009/11/26(木) 22:12:39ID:3yAXikhn
斜めの床の移動って地味に難しいよな。左右移動中に自動でY座標操作しないといかんしね。斜めの部分と水平の部分の境目をなめらかにつながないといかんしね。
0372名前は開発中のものです。2009/11/27(金) 00:41:34ID:klVWX06T
ダッシュすると床から浮く事すらもあるしな。
スーパーマリオ3辺りではどうやって実装してんのやら。
やっぱ、斜めに走らせているのかね?
0373名前は開発中のものです。2009/11/27(金) 00:55:17ID:klVWX06T
斜めに走らせると、今度は斜めの部分と水平の部分の境目で、どう動かすかが問題になると。
やっぱ、縦と横とで別々に判定するのかね?
0374名前は開発中のものです。2009/11/27(金) 01:18:37ID:9X6aatWO
良くある手法だけど、当たり判定のレイヤーを作って
キャラから下方向へレイを飛ばして地面高さを検出する。
レイの位置で、傾斜具合と段差具合を感知できる
0375名前は開発中のものです。2009/11/27(金) 01:57:30ID:ciI0pQpp
>>370
マリオやロックマンを参考にデザインするなら2番がいいと思うよ
0376名前は開発中のものです。2009/11/27(金) 03:25:27ID:K0drbZ3q
ただ斜めになっただけであれば直線であれば判定は難しくない希ガス
簡単な計算で済みそうだけど
0377名前は開発中のものです。2009/11/27(金) 03:53:31ID:ZMw5vuW4
坂に向かって、こういう風に移動した場合

               / ̄ ̄
     人→     /
    ̄ ̄ ̄ ̄ ̄ ̄ ̄

横キーを押したまま

                →人
            人/ ̄ ̄ ̄
       人→  /
    ̄ ̄ ̄ ̄ ̄ ̄

坂を登らなきゃならないのよね。
0378名前は開発中のものです。2009/11/27(金) 04:23:39ID:K0drbZ3q
俺だったら

                   /|  | ̄ ̄
                 /  |  |
    ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |  |  |
       1      |  |2 |  | 3

の3つのパートに分けて考えるかな
キャラの右端が1→2のパートに掛ったら
キャラの位置の地面のY軸計算したりしてやったりしたらいいんじゃないの
0379名前は開発中のものです。2009/11/27(金) 04:53:37ID:Ce0qb9f7
1→2で右に向かうとき移動速度下げて、3についたら元に戻す
逆に3→2で左に向かうなら移動速度上げる
Y軸は2上にいるときはX軸から常に計算する
あとは2上でジャンプしたときのことも考えないといけないし、色々めんどくさいよな
0380名前は開発中のものです。2009/11/27(金) 05:11:27ID:K0drbZ3q
地面上の移動速度同じにするなら2の所では
─÷/分掛ければいいだろうね
この45度の場合は1/√2を
別の角度の時も同様にして
0381名前は開発中のものです。2009/11/27(金) 08:44:13ID:oVvXQuEW
>>357
operator=()はAddRef()を実行する。
Attach()は実行しない。

>m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );
これだと、Direct3DCreate9()から返った時点で参照カウント=1、
m_pD3Dに代入した時点で+1、つまりリークしている可能性がある。

>m_pD3D.Attach( Direct3DCreate9( D3D_SDK_VERSION ) );
これは、Attach()後、参照カウント=1で正しい値だ。
Attach()は既に生成されているCOMポインタを、
スマートポインタに入れる際用いる。

0382名前は開発中のものです。2009/11/27(金) 09:59:45ID:YTfLn1jQ
斜面移動中に”落下状態”に遷移しちゃいけないって問題もあるね
0383名前は開発中のものです。2009/11/27(金) 11:31:43ID:B55jAkdN
それもあるな、むずいぬ
細長いブロック重ねると汎用性はあるけどそれに対処できないっぽいし
斜めブロック作るのが一番いいっぽいか…
0384名前は開発中のものです。2009/11/27(金) 12:37:21ID:K0drbZ3q
斜面上にいる状態で左右押せば斜め移動させる処理させればいいだけだから落下状態に遷移する心配はないでしょう
0385名前は開発中のものです。2009/11/27(金) 17:06:09ID:kH+0vKoL
坂を下りるときは加速がついて、ジャンプの高さが増加したり?
0386名前は開発中のものです。2009/11/27(金) 19:05:57ID:mZhrlxRy
すみません。
3Dゲームで4分木(平面)を使うか8分木(立体)を使うか、どっちが効率が良いか悩んでいます。
みなさんはどういう判断基準で使い分けてらっしゃるのでしょうか?
03873462009/11/27(金) 19:22:34ID:e6wpKS0b
>>381
なるほど!そういうことだったんですね!
すごく勉強になりました!
早速修正してきますw

ありがとうございました!!
0388名前は開発中のものです。2009/11/27(金) 19:59:55ID:8DiO8Iwy
ゲーム開発でよくいるアホの巻

ステータス管理の構造体に
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char






アホである。体力のように、数値が問題になるやつは最低限確保しないといけないが
ステータス異常は10個以上あってもshort int1つだけでよいというのに!
0389名前は開発中のものです。2009/11/27(金) 20:06:30ID:h8Solbwr
>>388
で、質問は?
0390名前は開発中のものです。2009/11/27(金) 20:16:35ID:8qehWSsl
>>388

ステータス異常が抵抗値や時間によって直るようなゲームならいいんじゃないか?
0391名前は開発中のものです。2009/11/27(金) 20:30:52ID:ZMw5vuW4
ビット単位で持てよってことでいいのかしら。
0392名前は開発中のものです。2009/11/27(金) 21:11:47ID:oVvXQuEW
>>386
4分木と8分木ではメモリの喰い方がアホほど違う。
4分木で十分ならそっちを使うべきだろうな。

たとえ3Dであっても、キャラクタが地表を這いずり回るだけの
ゲームシステムなら、高さ方向の分割は殆ど意味がない。
だったら、このゲームには4分木で十分ということになる。
0393名前は開発中のものです。2009/11/27(金) 21:46:42ID:kH+0vKoL
へー8分木とか使うんだ
Bとか赤黒とかで全部やっちゃうのかと思ってたよ
0394名前は開発中のものです。2009/11/27(金) 23:17:42ID:GByxMg7v
最終的な目標はFPSまたはTPSを作ること。
3DCGはできるが、プログラミングについては全くの初心者。
簡単なものから始めたいのから最初はHSPにしようかと思うのだが、後々C++とDirectXとかに乗り換えれるもんかね?
最初からC++とDirectXのほうがいい?
0395名前は開発中のものです。2009/11/27(金) 23:26:36ID:K0drbZ3q
手っ取り早く始めるにはHSPでいいかも
C++は難しいと思うがなあ
やるんならCから始めた方が良くないか、+DXLib
0396名前は開発中のものです。2009/11/27(金) 23:30:49ID:GByxMg7v
>>395
C++じゃなくても良いのか。
とりあえずCとDirectXで2Dシューティングができるまでがんばってみる。
0397名前は開発中のものです。2009/11/28(土) 00:00:58ID:b1OkGnWM
3DならDarkBasicがかんたんだ、英語版がフリーになってるし
Cで難しいと感じたらBASICで始めるのも方法だよ
少し出来るようになれば、どの言語でも出来るようになる。

プログラムが少しでも書けるまでが最初の壁
ゲームアプリを作れるまでが次の壁
新しいゲームのアイディアを出すのが壁
超えるべき壁がいくつもあるけれどもがんばりなさい。
03983582009/11/28(土) 00:03:44ID:z8tWkRBO
C++でオブジェクト指向はやってられんことに気がついた
少なくともわてのような初心者のやることやないで
0399名前は開発中のものです。2009/11/28(土) 00:05:53ID:QR+JPnNN
HSPがC++&DirectXの練習台になるとは思えない。

そもそもコンセプトが違っていて、DirectXは
「マシン依存を最小限にして、描画や入力等をする」
ためだけのものと思ったほうがいい。
そのためきめ細かい使い方ができる分、手順が煩雑だ。

HSPは使ったこと無いけど、
細かい考えないで済むようにするもの。だよ、きっとw

というわけで、
言語に拘らないなら「HSP TPS」や「HSP TPS」でぐぐれ。
0400名前は開発中のものです。2009/11/28(土) 00:43:42ID:QR+JPnNN
> 「HSP TPS」や「HSP TPS」
「HSP TPS」や「HSP FPS」だな。どう考えてもorz
04013862009/11/28(土) 05:35:37ID:XgZJpSwb
>>392
なる程。高さが被る事もそう多くはないので、4分木で分割数を増やす方が効率的なのですね。
ご助言感謝!  >>393 も情報が参考になりました。感謝っ
0402名前は開発中のものです。2009/11/28(土) 14:25:19ID:w9vdp9I4
>>394
最初からC++とDirectX使ってもいいけど、
その場合はDiectXをそのまま叩くんじゃなくてseleneみたいなラッパーを使うと
幸せになれる場合もある。
0403名前は開発中のものです。2009/11/28(土) 20:14:51ID:/TG0tfuk
4分木って平衡木化って可能?
0404名前は開発中のものです。2009/11/28(土) 21:51:13ID:RSQKd3RZ
ムーゲー業界でよくいるアホの巻
ウェイト

ウェイトやカウンタを、「加算で」やるやつ


アホである。ウェイトとは、あるタスクを待たせることだが
そこで加算してどうするというのか。その加算した値が規定数になるまで待つというのか。
加算するのは何がやるのか。CPUである。
待ってる間にCPUを使うのか。

その間他のタスクが動けない

ではないか。
まさしく真性である。
0405名前は開発中のものです。2009/11/28(土) 22:58:07ID:rcUExsx3
なにこのアホ
0406名前は開発中のものです。2009/11/29(日) 01:41:40ID:qJTyqa7X
まさしく真性(のアホ)である。
0407名前は開発中のものです。2009/11/29(日) 01:43:03ID:GrR16dKF
N88BASICとかで使ってたな、FOR文によるウェイト
0408名前は開発中のものです。2009/11/29(日) 04:26:47ID:joetfkc7
>>403
空間分割の4分木なら分割の方法から変えないと無理な気がする
0409名前は開発中のものです。2009/11/29(日) 14:55:06ID:l4cjGc2r
連結リスト(構造体)ってどういう時に使うべき?
例えばステージデータでブロックを沢山置いたりする場合
構造体の配列使うより連結リスト使ったほうがいいの?
0410名前は開発中のものです。2009/11/29(日) 15:29:25ID:VrqeXLDD
>>409
その1
並びに意味があるとき。
メッセージキューのようなFIFO(ファーストインファーストアウト、先入れ先出し)など。
データをリストの前に追加、後ろに追加、AとBの間に追加、など追加する時点で
ソート状態が保たれているからソートしなくてもいい。

その2
配列要素を全検索するより、リストに繋がっているものだけ検索すればその分速い。
さらにその1の順序も利用できる。「Z」の付く名前は後ろから検索すれば速いなど。

その3
メモリが連続していなくてもいい。
動的に確保した構造体データをあたかも配列のように扱える。



ステージデータのブロックの例は微妙だ。
配列は計算で簡単に移動先のマスが割り出せるが、リストは検索する必要がある。

四分木などのアルゴリズムで、法則によって簡単に割り出すことも可能だが
初心者には小難しい話になるので省略。
0411名前は開発中のものです。2009/11/29(日) 16:00:03ID:l4cjGc2r
なるほど、ありがとう
自分の場合だと特に使う必要も無さそうね…
0412名前は開発中のものです。2009/11/29(日) 17:45:06ID:tzBSBmZk
なんか変だぞ

その1のFIFOやLIFOは循環配列でも実現可能だしその方が高速
リストのメリットは、連続データの途中にデータを挿入する場合に処理が高速なことで、連結リストを使えばソート状態が保たれるというのは間違い
追加の度にソート状態を保つ必要があるのであれば、配列も単純連結リストも使用せず、2分木などの木構造を使用する
ただし、木構造は挿入・削除処理にコストがかかるので、場合によっては、データを配列にためるだけためて、1度ソートしてから、2分探索などを使った方がよい場合もある

その2に書かれていることはリストの特性とは関係がない
この場合のメリットは、データが大量にある場合に、リストで行うとメモリの節約ができることぐらいかな?

ステージデータの場合、必要な要素数がおそらく固定で順序も関係ないので配列で行うべき
リストで管理するメリットはおそらくない

4分木を使用するのは、動的なオブジェクトの衝突判定用の空間分割で、マップデータの配置には使用しない
0413名前は開発中のものです。2009/11/29(日) 23:07:48ID:a1srYgYG
必要な要素数が固定とは限らないと思うが
俺だったらリスト使うかな
0414名前は開発中のものです。2009/11/29(日) 23:33:33ID:gjXLMnRr
最近は連結リストの必要性は薄れたな。
0415名前は開発中のものです。2009/11/29(日) 23:58:08ID:tzBSBmZk
>>412
想定しているものが違うんだろうな
想定している前提が違って、リストの使用にメリットがあるなら、リストを当然使用するべきだね

>>410に、「配列は計算で簡単に移動先のマスが割り出せるが、リストは検索する必要がある。」
とあるから、おそらく、マップの一部かそれに準ずるもので、移動したり、出現したり、消滅したりしないものを
想定したんだろうと推測したうえでのレスだったんだが
0416名前は開発中のものです。2009/11/30(月) 00:30:02ID:Bl3MhMn5
そうか
マップチップ辺りのことかな
それなら配列かな
0417名前は開発中のものです。2009/11/30(月) 12:24:08ID:qHeQjtKt
DirectDrawからDirect3D9に移った所、
ティアリングが発生するのはどうにかならないのでしょうか?
もしかして、DirectDrawに戻った方が良いのでしょうか?
0418名前は開発中のものです。2009/11/30(月) 12:44:07ID:YAmXO68P
>>398
一つ言っとくと、オブジェクト指向は考え方や設計方針(見たいなもの)。

まずはプログラムを考えるとき、
プログラムは上から下に進むけどここはサブルーチン、見たいな考え方を止めて
こんな機能(部品、データ型)組みたてるか、全体構成は後で考えてとりあえず部品作ろう、
見たいな考え方が出来るようになればなんとなくわかると思う。

文法的には
継承だけでなく、委譲や集約の設計的な意味を感じるようになってからじゃないとしっくりこないだろう。
最初はインタフェース(抽象メンバのみのクラス)のみ許容して、それ以外の継承は禁止するぐらいの勢いがちょうどいいと思う。



0419名前は開発中のものです。2009/11/30(月) 12:58:11ID:YAmXO68P
>>417
Direct3Dは、デバイスを基準に色々描画などを管理する。
何も余計なことは考えずに、デバイスを初期化する際のD3DPRESENT_PARAMETERS(プレゼントパラメータ、つまり描画や更新の為のパラメータ)
こいつのプレゼントインターバルにONEかDEFAULTを設定する。
あとは初期化が終わったあと、普通にClear、BeginScene、描画、EndScene、Presentの順番でやる。だめならPC環境的に無理。
0420名前は開発中のものです。2009/11/30(月) 13:20:18ID:qHeQjtKt
>>419
プレゼントパラメータを変更した所、ティアリングが発生しなくなりました。
ありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています