トップページgamedev
985コメント286KB

DXライブラリ 総合スレッド その7

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2010/10/04(月) 17:24:47ID:zBoueRHu
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
0613名前は開発中のものです。2011/02/03(木) 19:04:03ID:gm3wvLOR
>すぐに発症しない潜在的なバグも多いから対策が難しい
たとえば?
0614名前は開発中のものです。2011/02/03(木) 19:22:23ID:eEyTX7bP
C++は簡単にやばいコードが書けちゃうのと、例外周りが洗練されてないと思う

あと、LINQとラムダ式はいいぜ!
ラムダ式はBoostにもあるみたいだけど、使いやすそうには見えない

オブジェクト指向なんてこだわる必要ないと思うな
クラスライブラリの扱いは慣れたほうが良いけど
0615名前は開発中のものです。2011/02/03(木) 19:33:35ID:3u282UvH
C++はSTLとboost使ってなんぼ
テンプレートは良いな
DXライブラリは算術系がだるいから他のライブラリから引っ張ってきたら楽
0616名前は開発中のものです。2011/02/03(木) 19:43:45ID:1Y7LXctB
テンプレートは深入りしないのが大切
C++は手段が目的化しがち
0617名前は開発中のものです。2011/02/03(木) 21:34:09ID:nMZv1rw7
C++よりC#が簡単てネタかと思ってたが本気か
クラスを理解しないと使えないはずだけど
ベターCみたいな使い方なのだろう
0618名前は開発中のものです。2011/02/03(木) 21:49:29ID:RrMzr2Df
なんとかしてC#は難しいと言うことにしたいんですね
0619名前は開発中のものです。2011/02/03(木) 21:56:17ID:1Y7LXctB
ゲーム作り自体の方がよっぽど難しい
言語なんか道具、理解してはじめてスタートライン
0620名前は開発中のものです。2011/02/03(木) 22:18:07ID:Hk0Hmg4J
最期まで作る忍耐力が問題。RPG作ってた筈なのにいつの間にか放置してるわw
0621名前は開発中のものです。2011/02/03(木) 22:19:16ID:zXV2l6v9
どっちが難しいかなんて人によりけりだろ。
俺にとってはメモリ管理なんかよりオブジェクト指向のほうが厄介だった。
ただ、初期の段階では、C++のほうが単純だから、
取っ付き易い気はする。まあ、C#使ったことないんだけどさ。
0622名前は開発中のものです。2011/02/03(木) 22:56:55ID:Bd1QwGmt
ゲームが作れりゃいいんだよ、とC++でBASICみたいな組み方しかしてない俺が言ってみる。
オブジェクト指向? なにそれ。
0623名前は開発中のものです。2011/02/03(木) 23:53:40ID:oJ9LxkAh
何で作るかじゃなくて何を作るかだと思うわ
0624名前は開発中のものです。2011/02/04(金) 00:41:23ID:597nw0QH
ナニで作るかは重要じゃない。
でもナンで作るかは重要だぜ。
0625名前は開発中のものです。2011/02/04(金) 00:47:31ID:tSG+uAMN
C/C++以外カス
0626名前は開発中のものです。2011/02/04(金) 00:57:03ID:gYkXmix/
C++か・・・これまでの負の遺産を全部捨てたら使ってやってもいいよ
0627名前は開発中のものです。2011/02/04(金) 00:58:12ID:dtLxRZPd
何が悪くて何がいいのか分からない俺はとりあえずC++を勉強している
0628名前は開発中のものです。2011/02/04(金) 01:05:58ID:DD99IIri
複数やったほうがいいよ
思い込みだけで他の言語叩く子にならないように
0629名前は開発中のものです。2011/02/04(金) 01:11:49ID:597nw0QH
Cやアセンブリを学んで、コンピュータの基礎を理解したり、
JavaやC#を勉強してオブジェクト指向やクラス化の重要性に気付いたり、
PerlやPythonに触れて目的ごとの向き/不向きを感じ取ったりすることはあるかもね。
0630名前は開発中のものです。2011/02/04(金) 02:05:25ID:3/Y06AUg
マルチですいませんが、分かりましたら教えてください。

          /|
         /  |
       /   |
      /     | x
    /      |
   /        |
 /θ        |
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
      y        

この角度、θを求めるためには

θ = atan2 ( y , x ) ;

って書けばいけるかと思ったんですが、だめでした。
------------------------------------------------------------------------
atan2
Error:オーバーロードされた関数"atan2"の複数のインスタンスが引数リストと一致します:
------------------------------------------------------------------------
って、エラーがでます。どう修正すればいいですか?( )の中身がおかしいんでしょうか?
0631名前は開発中のものです。2011/02/04(金) 10:56:35ID:nHohQiTe
ちゃんとコードを書きなさい
どうせx,yの型がintだからとかそういうのじゃないの
0632名前は開発中のものです。2011/02/04(金) 11:29:10ID:597nw0QH
図のx,yの位置については触れたほうが良いのかしら?
0633名前は開発中のものです。2011/02/04(金) 11:44:14ID:FnunGuWc
言語の話になるといつも学習論や効率論になるけど
世の中EXCELやRPGツクールなんかでSTGとか作るような奴だっているんだから
どんなもの使っても作りたい物を完成させた奴が勝ちだと思う
0634名前は開発中のものです。2011/02/04(金) 12:52:26ID:uMhav2M7
マルチポストですかやれやれ
0635名前は開発中のものです。2011/02/04(金) 13:25:29ID:IKcKTpst
>>633
確かに同人ならどんな開発環境を使おうと自由だけど
>>611みたいな嘘撒くのは辞めたほうがいい、初心者や入門者が可哀想だ
どうあがいてもC#・Java・VBなどの方が難易度は低い、C++自信なくて諦めても前者で十分やっていける
0636名前は開発中のものです。2011/02/04(金) 13:35:23ID:tJPYGZbh
初心者には嘘かどうかの判断基準もまだ無いんだからお前も同類だけどな
0637名前は開発中のものです。2011/02/04(金) 13:36:36ID:dPpvdfF6
初心者はC#やJAVAから入れってのはどこでも言ってることだしな
0638名前は開発中のものです。2011/02/04(金) 14:20:17ID:nHohQiTe
だいたい、絶対的に”初心者向けだ”と言い切れる言語なんてない
目的によって変わってくるし、言語の難易度もひとつの指標に過ぎない。

ただ、簡単なゲーム作りや、多くの人が思うアプリ製作を目的にするなら、
GUIを非常に作り易いC#やJava、VBで始めるべきだろうな。

まあでも、C++でオブジェクト指向わかんねって投げ出した奴は、
たとえC#をやったとしても出来ないとは思う
0639名前は開発中のものです。2011/02/04(金) 14:38:04ID:MVi9WYrf
実例を交えたわかりやすいドキュメントが沢山ある言語こそが「初心者向け」という持論
初心者に必要なものは言語の簡単さよりも、最初の壁をいくつか超えるためのやさしい解説だと思う

初心者ならC#やJAVAから、ってのはゲーム意外の一般的なプログラムでのことなんじゃないかな
C++以外はゲーム制作の為の解説サイトとかかなり少ないし
0640名前は開発中のものです。2011/02/04(金) 14:41:03ID:CU+f2z6I
よくわからんなぁ。
初心者の話してるんだよな?

俺はC++とDXライブラリでゲーム作ってるし作ってきたが、実際のとこC++を使いこなしてるわけじゃない。
初心者に毛が生えた程度だ。けど、何の問題も出ていない。

例えば>>612の言ってるメモリ管理だのメモリ周りのバグだの、なんて全然考慮してないし存在すら知らない。
むしろそういう事を気にするようになったら上級者だよな?
初心者にはそんな事全然関係ないよ。

初心者にとって易しいってのは、システムまわりの安全性なんかじゃない。
覚える事が少ない段階でも動く物が作れる事。そして、手軽に勉強できる(資料が簡単に手に入る)事だよ。
0641名前は開発中のものです。2011/02/04(金) 15:17:25ID:E/T+upxq
C#やJavaなどの方が難易度は低い、というのは(覚えることが少なくて済む)という
意味じゃない
むしろ C++の方が覚えることは少なくて済むような気もする

C#やJavaの場合、覚えたことをそのまま使うパターンでのプログラミングが多い
それだけ高レベルのライブラリやらオブジェクトやらが揃ってる
→それらの使い方を覚えなきゃならんから、覚えることが多い

C++の場合、覚えたことを組み合わせて応用するというプログラミングが要求される
→だから、サンプルコードがたくさんあると楽できる
もちろん(C#には応用なんて要らない)とは言わないけどな
0642名前は開発中のものです。2011/02/04(金) 15:19:45ID:+mRmK1/Q
>覚える事が少ない段階でも動く物が作れる事。そして、手軽に勉強できる(資料が簡単に手に入る)事だよ。
これはもっともな正論だね。
しかし、これさえも出来ない初心者が多くいるのは事実だ。
0643名前は開発中のものです。2011/02/04(金) 15:31:20ID:4gaOamZV
事実だ(キリッ
0644名前は開発中のものです。2011/02/04(金) 15:32:36ID:B/8/xRi6
DXライブラリは遊びながらC/C++覚えるにはいいんでないかな
コンソール並におまじないが少ないから学習の邪魔にならない
C#でもC#+XNAとかになると完全に初心者お断りだよ
0645名前は開発中のものです。2011/02/04(金) 15:41:20ID:zvmJIej4
>>640
お前の作ったプログラムを公開するとき
このプログラムは予期せぬ動作を起こす可能性があるため
自分のパソコンが壊れてもいい人だけ実行してくださいって注意書きをちゃんと付けろよ。
0646名前は開発中のものです。2011/02/04(金) 15:43:37ID:FTwi59ne
boost使おうとするともれなくテンプレート、メタプログラミング、
ジェネリックの知識が必要になるんだけどね
まあ最初が楽かどうかで選ぶならツクールとかになっちゃうから言語の比較は意味ないな
0647名前は開発中のものです。2011/02/04(金) 15:45:42ID:nHohQiTe
最低動作環境― OS : WindowsXP SP2 以上
でいいだろ
0648名前は開発中のものです。2011/02/04(金) 16:19:24ID:cCo0ykp3
HSPでいいと思うよ
0649名前は開発中のものです。2011/02/04(金) 16:25:18ID:v+xsDxji
>>646
別に「もれなく」ではないだろ
0650名前は開発中のものです。2011/02/04(金) 16:39:47ID:B/8/xRi6
テンプレートなんてマクロに毛が生えただけ
所詮言葉遊びのパズル
0651名前は開発中のものです。2011/02/04(金) 17:13:25ID:FTwi59ne
>>649
詳しくどうぞ
0652名前は開発中のものです。2011/02/04(金) 17:16:28ID:bvXT0uLK
>>651
別にBoostはそんなに敷居高くないぞ・・・
0653名前は開発中のものです。2011/02/04(金) 17:21:27ID:FTwi59ne
ああ「もれなく」って言葉が気に入らなかったのか
0654名前は開発中のものです。2011/02/04(金) 17:50:00ID:bf3eC1dG
CとC++がごっちゃになってんじゃね
Cは簡単、>>640が良い例、でもメモリ管理は必須だぞ
C++全開で書かれたソースは難しいが
ほとんどの場合Cから初めても進むにつれC++寄りになるから続ければ勝手に読めるようになる
webで勉強するならC/C++が一番資料多い
DXライブラリ+Cは初心者におすすめできると思うぜ
んで、さらに時がたつとC#でツール作成してるはず
0655名前は開発中のものです。2011/02/04(金) 18:08:50ID:nHohQiTe
なってないだろ。
DXライブラリのサンプルコードもC++だし、
ほとんど大多数がC++で開発してると思うぞ。


まあ、ほとんどの、C++の入門サイトも入門書も、
Cから受け継いだ構文・機能の説明を省いてるから、
必然的にCを学ばなきゃいけないのが現実かもしれんが。
0656名前は開発中のものです。2011/02/04(金) 18:54:22ID:MVi9WYrf
龍神録のトコなんかC++使ってるのに書き方がまんまCなんで、
クラスもオブジェクト指向もSTLもBoostも使わなくてもあれくらいのモノは作れるってののいい見本だと思う

別にゲーム作るのにオブジェクト指向もBoostも必須なわけではないし、
そんなのが必須になってくるくらいの規模の大きい作品を作ろうとするのは初心者には無茶
使えれば便利だけどね

C++はCに機能が追加されたものなんだから、無理に追加されたものを使おうとしなければ、
C++がCより難しいってことはないと思う
0657名前は開発中のものです。2011/02/04(金) 19:14:23ID:gYkXmix/
話が噛み合ってないな。寝言で会話してるみたいw
0658名前は開発中のものです。2011/02/04(金) 19:22:22ID:lLkvF9Gs
噛み合ってないなw
そりゃ使ってるのはC++だろw
0659名前は開発中のものです。2011/02/04(金) 20:05:12ID:CU+f2z6I
>>654
>でもメモリ管理は必須だぞ

メモリ管理って言うけど、具体的に何をするのかピンとこない。
大事なのはわかるんだけどさ。

俺はオブジェクト指向わからんし、クラスの使い方すらも理解していない。
主に使う変数はほとんどグローバルで配列の数も全て固定。
ポインタもどうしても必要な部分以外使ってない。

エラーが起こるとしたら配列範囲オーバーか0除算くらいで、その程度ならなんとでもなる。

あとはDXライブラリで読み込んだ画像データ等を必要に応じてDeleteしていく、くらいしか気をつけてない。
0660名前は開発中のものです。2011/02/04(金) 21:12:04ID:6/uiWO3/
メモリ管理というと
win98ぐらいの時には
メモリークリーナーが便利だったな
0661名前は開発中のものです。2011/02/04(金) 22:25:14ID:N2iHbnIF
メニュー画面やステータス表示など、決まった場所に数字や
文字列を表示するXとYの位置を直にソースコードに書き込むと
頻繁に位置を変更する時ビルドに時間がかかったり
後でわかりにくくなるので、テキストにずらっと位置情報をまとめて
それを読み込んで使っています
しかし位置情報というのは細かいものまで含めてたくさんあるので
「こんなものまでいちいち読み込んでやるべきなのか?」
と疑問に思うことがあります
皆さんはどうしてますか? 私のやりかたはおかしいでしょうか
0662名前は開発中のものです。2011/02/04(金) 22:47:43ID:bHk+Uq52
>>661
着眼点はよいです
ソースコードに埋め込まないほうがよいのは確かです(最低限マクロか定数として分離させるべき)
複雑になってくると自分でも混乱しますけど、それをうまくやる方法ってのは正解はないです
一定の開発スタイルを決めるとそれなりに整理はできるんですが・・・
0663名前は開発中のものです。2011/02/05(土) 01:16:00ID:a1DliHej
ゲームつくりの最中にそういうこと考える人はだいたい完成させられない
0664名前は開発中のものです。2011/02/05(土) 03:59:26ID:0SOpPPRW
>>659
メモリ管理とは違うけど、とりあえずグローバル変数を極力使わないところから始めてはどうか。
これくらいなら、Cの入門書にも書いてあるレベルだし、慣れれば手間ですらなくなるし。

>>661
小規模開発なら、細かい数字は外部に置かなくても、そこまで問題にはならないと思うよ。
ただし、>662の言う通り、#defineなりconstなりで分離させておくべきだと思う。

>>663
休憩中とか散歩中とか仕事中に考えればいいのよ。
0665名前は開発中のものです。2011/02/05(土) 10:11:08ID:LqlwHybZ
DXライブラリで文字を書いて、ワードとかメモ帳に出力する方法ってしらない?
0666名前は開発中のものです。2011/02/05(土) 10:18:58ID:0SOpPPRW
>>665
ワードやメモ帳に、文字列を食わせる方法ってあるのかな。
一旦テキストファイルに出力するのが簡単なんじゃない?
0667名前は開発中のものです。2011/02/05(土) 10:29:33ID:97+pwl5O
ワードならCOM経由であらゆる操作が出来るけどC++からだとクソ難しいので.NETかスクリプト言語推奨
メモ帳ならキー送るしかない
0668名前は開発中のものです。2011/02/05(土) 10:31:13ID:LqlwHybZ
直接ワードやメモ帳に出力できなくてもいいんです。
DrawString を使うと、画面に文字が描画されますが、
それをコピーペーストしてワードに貼り付けることが出来るならそれでもかまわないんです。
実際はできません。
私はまったくの初心者なので、質問がおかしいところもあるかもしれませんが、
>>666の テキストファイルに出力する っていうやり方を教えてもらえないでしょうか。
どういう関数を使えば出来ることなんでしょうか?
0669名前は開発中のものです。2011/02/05(土) 10:38:37ID:97+pwl5O
クリップボードに入れるにはWindows APIのSetClipboardData関数を使う
ファイルへの出力は、DXライブラリの関数を使ってもいいけど普通はC++の標準ライブラリの
入出力機能を使う
どちらにしてもスレ違い
0670名前は開発中のものです。2011/02/05(土) 10:54:09ID:fuYn973K
>>668
ファイルへ書き出すなら fopen, fprintf, fclose

クリップボードへ入れたければ
GlobalAlloc,GlobalFree, GlobalLock,GlobalUnlock,
OpenClipboard,EmptyClipboard,SetClipboardData,CloseClipboard
を使うといいよ
0671名前は開発中のものです。2011/02/05(土) 10:57:01ID:LqlwHybZ
ありがとうございます。
利用できる関数がそんなにあったんですね。
0672名前は開発中のものです。2011/02/05(土) 21:47:08ID:zsx+Wg5G
>>659
タスク用のワークエリアを確保したり開放したりしないんだろうね
最初にがばっと確保して、タスクごとに使いまわす
0673名前は開発中のものです。2011/02/05(土) 22:05:24ID:GZLq5iGw
それは古に廃れたというタスクシステムのことですか?
0674名前は開発中のものです。2011/02/05(土) 22:07:15ID:n/4Fp6g/
またタスクシステムバカが来たか
0675名前は開発中のものです。2011/02/05(土) 22:19:11ID:op8JGqIp
そんなメモリの節約に必死になるなんて、
PSPのソフトでも開発してんのか
0676名前は開発中のものです。2011/02/05(土) 23:11:04ID:7xJ6Lxp5
PSPは酷かったな
0677名前は開発中のものです。2011/02/05(土) 23:41:09ID:LazTXNwj
PSPでは金玉を回転させるアプリしか作らなかったな
0678名前は開発中のものです。2011/02/05(土) 23:56:58ID:5PjJbGzB
ちなみにメモリ管理ってメモリを節約するためじゃないからな
0679名前は開発中のものです。2011/02/05(土) 23:58:41ID:5PjJbGzB
訂正

>ちなみにメモリ管理ってメモリを節約するためじゃないからな

ちなみにメモリ管理ってメモリを節約するためだけじゃないからな
0680名前は開発中のものです。2011/02/05(土) 23:59:53ID:LazTXNwj
メモリ管理という言葉が漠然としすぎていて、
具体的にどういった事をメモリ管理というのか実例を説明してほしいですね
0681名前は開発中のものです。2011/02/06(日) 00:42:48ID:hi6mskVF
newしてdeleteするってのもメモリ管理、というか普通こっちの意味じゃね?
0682名前は開発中のものです。2011/02/06(日) 00:44:00ID:edmoP5Oc
sharedptrさいきょう!!!
0683名前は開発中のものです。2011/02/06(日) 00:47:12ID:Bcoc3jNp
ポインタにNULLを入れて何回でもdeleteしてやる
0684名前は開発中のものです。2011/02/06(日) 00:50:45ID:Bp6r7tC9
newって何でOSが管理してくれないんだよ
0685名前は開発中のものです。2011/02/06(日) 00:51:42ID:bBxVkAP5
初心者がC++を扱うのはメモリ管理をしないといけないから難しい、
って主張だったのに、初心者はnew・deleteは使わないと思うんだけどな……
だから話がループするのかな
0686名前は開発中のものです。2011/02/06(日) 00:55:29ID:hjXl231Y
C++初心者じゃなくて、new,delete初心者と呼ぼうw
0687名前は開発中のものです。2011/02/06(日) 01:21:28ID:KavCN3Ib
いまだにnew, deleteの必要性がわからなくて使っていない。
0688名前は開発中のものです。2011/02/06(日) 01:24:03ID:Bp6r7tC9
俺は配列を最大でいくつ確保すればいいか不明な場合newを使ってる。
他に使い道あるの?
0689名前は開発中のものです。2011/02/06(日) 01:27:00ID:KavCN3Ib
>>688
よく知らないけど、そういう場合ってvectorとか使うんじゃないの?
まぁ自分は決め打ちでドカッと多目に配列を確保。
0690名前は開発中のものです。2011/02/06(日) 01:40:42ID:edmoP5Oc
よく考えたらnew/deleteを目にみえる場所で使わないためのvectorだったりするのか
いままで気付かなかったわー
0691名前は開発中のものです。2011/02/06(日) 01:46:35ID:Wfa4vAEK
結局このスレはC++初心者ばかりだったということですねw
0692名前は開発中のものです。2011/02/06(日) 01:46:56ID:k3JuiCGX
>>690
いや、根本的に違うだろjk・・・
newはポリモーフィズム使うなら必須っていうかC++使っておいてポリモ使わないとかなにその苦行
0693名前は開発中のものです。2011/02/06(日) 01:48:40ID:edmoP5Oc
Cで多態させるのにnewとかいらなくね?RAIIあるし
0694名前は開発中のものです。2011/02/06(日) 01:54:34ID:k3JuiCGX
>>693
は? 多態とRAIIに何の関連性あるんだアホか
マジでガチ初心者だらけじゃねえか
0695名前は開発中のものです。2011/02/06(日) 01:57:17ID:fHNV/tRC
例えば敵キャラのデータに配列を使うとして、
敵キャラが最大で100体でるのか、それとも10000体以上でるのかわからない、ってのだと
PCの動作環境はどうやって決めるんだろう。

最初に「最大1000体、これ以上は出さない」と決めておけば
1000体動くかどうか確認して、「ちゃんと動くな。ではこのPCの性能を最低環境としよう」ってできると思うけど。
0696名前は開発中のものです。2011/02/06(日) 02:01:52ID:edmoP5Oc
>>694
ちょっと間違って理解してるような気がするので聞いてみるけど
newがポリモーフィズムに必須というのはどういうこと?
0697名前は開発中のものです。2011/02/06(日) 02:11:58ID:KY5hMpMn
ツリーとかグラフ系のデータ構造扱うときはnew必要じゃね?
動的に何かを生成するときは普通使うよね。
ないとできないわけじゃないけど・・・
0698名前は開発中のものです。2011/02/06(日) 02:22:41ID:bBxVkAP5
>>695
基本的には一番重いシーンで快適に動く環境を推奨スペックとして表記するのが普通
その敵が10000体出るっていうのが滅多にないことなら、それとは別に、普通に遊べるスペックを動作スペックということにしとけばいいと思う


newだけど、使い方で一番イメージしやすいのはシーンの管理だと思う
タイトル画面でプレイ開始を選択した時点で、外部からタイトル画面クラスをdeleteしてゲームクラスをnewする
外部では常にNULL以外のクラスをアップデート、的な

あとは、糞大きいクラスを実体化するとき、newやmallocを使わないと失敗して落ちる場合があるってくらいかな
ポリモーフィズムはシラネ
0699名前は開発中のものです。2011/02/06(日) 02:43:28ID:FYHHz7EY
>>697と同意なんだけど
それ以外のやり方あるなら教えてもらいたい
0700名前は開発中のものです。2011/02/06(日) 02:45:17ID:k3JuiCGX
>>696
こういうことだよ
http://ideone.com/Bcd5F
っていうかまず、RAIIが何か行ってみろよマジ・・・
0701名前は開発中のものです。2011/02/06(日) 02:52:22ID:k3JuiCGX
スマートじゃなかったから書きなおし
http://ideone.com/48UwA
0702名前は開発中のものです。2011/02/06(日) 03:32:24ID:3eWOv2dl
あるクラスに、別クラスのインスタンスを持たせたい場合、
自分はポインタにしちゃうことが多いかなあ。

>>698
Stateパターンだっけ?
0703名前は開発中のものです。2011/02/06(日) 03:40:14ID:k3JuiCGX
>>689
シーンクラスを継承したタイトル画面・ゲーム画面クラスをメインループで常にupdateするっていうのはポリモーフィズムだべさ・・・
Scene* p;
p = new Title(); or new Game();
while(...){
p->update();
}
的な。
0704名前は開発中のものです。2011/02/06(日) 03:42:45ID:KavCN3Ib
クラスに別クラスのインスタンスを持たすこと多いけど、やっぱポインタにしないと駄目なんかな…
何か管理が面倒そうでポインタにしてない
0705名前は開発中のものです。2011/02/06(日) 03:46:23ID:KY5hMpMn
>>704
別にオッケーだべ
というかほとんどの言語ではデフォルトが参照だべ
0706名前は開発中のものです。2011/02/06(日) 03:49:17ID:KavCN3Ib
>>703
あ、やっぱ一般的にはそんな風にシーン管理するのね。
なんかかえって難しそうに感じて、ベタにswitchで回してしまう。
書き方としてはギリギリ読めるんだけど、実感としてポリモの便利さがピンと来ない。
0707名前は開発中のものです。2011/02/06(日) 03:55:02ID:LAhGvLpb
まあポリモーフィズムなんてただの暗黙のswitchなんだからそれでも問題ない
0708名前は開発中のものです。2011/02/06(日) 04:01:41ID:bBxVkAP5
>>702,703
アドリブプログラマだから設計パターンとか用語の定義とかは知らないんだよ……
こうやったら管理しやすくないかなー、ってテキトーに書いてるだけだし
これがポリモーフィズムなら、規模の大きなゲーム作ろうとすれば自然に身につくものなんだと思う
0709名前は開発中のものです。2011/02/06(日) 04:16:03ID:FRrxkwCp
シーンみたいに柔軟性が求められるところを抽象化してもあまり得しないけどね
07107022011/02/06(日) 04:49:13ID:3eWOv2dl
>>704
自分も最初はクラスの実体を持ってたけど、必要に迫られてポインタに移行した。
やり方は他にもあるんだろうけどねー。
0711名前は開発中のものです。2011/02/06(日) 05:49:43ID:Bcoc3jNp
実態を持つ方がコンパイル時間がかかる
0712名前は開発中のものです。2011/02/06(日) 07:03:48ID:wzAw0A/n
傍から見てて思ったんだが別にポリモ使うのに new/delete 必須じゃなくね
■ このスレッドは過去ログ倉庫に格納されています