07/07/18 20:55:21 ux1Fssbs
>>425
> 値を保持するクラスと操作するクラスは分けろこのスカポンタン
インターフェースと実装を分離するのは一般論としては間違いじゃないが、粒度が違う。
メンバ変数単位ではなく、意味のあるメンバ変数のセットをインターフェースにしろって
意味だと思うよ。
// 衝突判定後に、消灯判定マネージャから衝突回避のために位置をずらされる
struct IMovable {
// 現在位置
virtual void getPosCur(VECTOR3* p) const = 0;
// 移動したい位置
virtual void getPosNext(VECTOR3* p) const = 0;
// 衝突しないようにマネージャがずらした位置
virtual void setPos(VECTOR3 const& v) = 0;
};
class Player : public IMovable { ... };
class CollisionManager { /* こいつは IMovable だけ使用 */ };
こういう話かと。
427:名前は開発中のものです。
07/07/18 20:55:52 ux1Fssbs
>>426
s/メンバ変数のセット/メンバ関数のセット/g
428:名前は開発中のものです。
07/07/18 23:49:47 1k3Xg7ZP
>>425
>値を保持するクラスと操作するクラスは分けろこのスカポンタンとか言われたのでそうするようにしてる
なんでそうしなくちゃいけないか理由は分からないの?
プログラムは芸術じゃないんだから外の人のどうしたこうしたで中身が変わったりしないよ?
429:名前は開発中のものです。
07/07/19 00:19:41 RaZNmmmq
> 値を保持するクラスと操作するクラスは分けろこのスカポンタンとか言われたのでそうするようにしてるんですが
つかこれ自体間違いだろ。
430:名前は開発中のものです。
07/07/19 00:38:54 PDuVn1ka
>>429
だよな多分
431:名前は開発中のものです。
07/07/19 05:21:01 5YEt12VO
getterとsetter作って、アクセス管理するくらいしかやったことねえや
触らせたくないなら、関連クラスからのみアクセスとか(C++ならfriend?)
それ以上ってコストかかりすぎねえ?
432:名前は開発中のものです。
07/07/19 11:40:10 LxxDZCLh
少人数・小規模製作でアクセス制限も糞もないわな
433:名前は開発中のものです。
07/07/19 15:01:29 3ArgKadV
少人数小規模だろうが、
開発期間中に、年単位で空白があったコードを読むこともあるわけで。
そういう場合は、アクセス権は考えといて損はねーですがよ。
434:名前は開発中のものです。
07/07/19 18:50:40 TacCeKvZ
アクセス権?になってくるとまた話が変わってきちゃうんだが
そんなファイルのパーミッションみたいな機構小規模だろうが大規模だろうがつけたらあかん
というか無駄、損がないというか何の得もない
435:名前は開発中のものです。
07/07/19 18:59:00 ajveBJeZ
とりあえず理由を
436:名前は開発中のものです。
07/07/19 19:27:00 3ArgKadV
なんでファイルのパーミッションの話になってるんだ
>>432のアクセス制限って、クラスのメンバーに対することで、
>>433のアクセス権ってのもそのことだろ?
437:436
07/07/19 19:27:51 3ArgKadV
変な日本語になった
正しくは、
なんでファイルのパーミッションの話になってるんだ
>>433のアクセス権って、クラスのメンバーに対することで、
>>432のアクセス制限ってのもそのことだろ?
438:名前は開発中のものです。
07/07/19 19:39:53 /RFbeqQb
「使いたいものを使いたいときに即使えないのはうっとうしい」
ということではなかろうか>ファイルシステムの例え話
個人管理のLinuxなんかだと、最初からrootでログインして使う人もいるくらいだから
それはそれで別に当人の自由だと思う。
要はアクセス権限を分ける方がトクか分けない方がトクかは
ケースバイケースで判断すればいいってことだけど
439:名前は開発中のものです。
07/07/19 20:12:33 TacCeKvZ
>なんでファイルのパーミッションの話になってるんだ
おまえがアクセス権なんていうからじゃん
440:名前は開発中のものです。
07/07/20 12:39:13 vUDuhb3O
スレタイを百回声に出して読んでくれ
441:名前は開発中のものです。
07/07/20 12:40:51 vUDuhb3O
ついでに二人とも正座な
442:名前は開発中のものです。
07/07/20 21:52:02 +3gqdIHH
難しく考えすぎ。
他のオブジェクトにアクセスして欲しくないメンバは
クラスの中に隠蔽して、プライベートメンバにしておくのがセオリーでは。
アクセス権ってのは本来そうやってコントロールする。
外からオブジェクトにアクセスできるようにしておきながら
アクセスできないように制限する仕組みを作るってのがナンセンス。
443:名前は開発中のものです。
07/07/20 22:07:32 lyxTTGt6
「する」「しない」の二択にするという話ならその通りだが
特定の状況でのみ●●に大して××させることを許可するとかいう話なら
ソースレベルで静的に操作するのは困難
444:名前は開発中のものです。
07/07/20 22:32:40 +3gqdIHH
動的にアクセス権を与えたいなら、まずは隠蔽しておいて、
状態に応じてアクセスを許すかどうかを決めればいいのでは。
445:名前は開発中のものです。
07/07/20 22:52:28 +3gqdIHH
本当にアクセス制御の問題で困っている人が大勢いるなら、
今頃boostにそれらしいクラスが含まれていると思うけどね。
例えばnoncopyableはオブジェクトのコピーを禁止するクラス。
こんなレベルのものでも有用さが認められればboostに仲間入りできる。
URLリンク(www.kmonos.net)
でも今現在boostにアクセス権制御のクラスがないってことは、
需要がないってことでは?
まずはプライベートメンバを使ったシンプルな隠蔽によるアクセス制御で
どこまでできるのか突き詰めてみた方がいいでしょ。
今のところ自分はそれで困ったことはないけどね…。
446:名前は開発中のものです。
07/07/21 00:49:20 DMrsrXyJ
ナンセンス。この一語に尽きる。
447:名前は開発中のものです。
07/07/21 01:16:04 oWQ5iQEX
progress_displayがあるのにそんなこと言われても説得力無いなぁ
動的にアクセス権決めるならgetter,setterを隠蔽してfunction使ってアクセス権を与えたいクラスに
そのgetter,setterを与えてやるって方法もあるけど
functionは1個で40bytes近く食う割と重たい(?)オブジェクトだから無茶かな、無茶だな
448:名前は開発中のものです。
07/07/21 03:00:31 DMrsrXyJ
動的ってことになってくるとそれは普通にインターフェイス呼び出し時の
認証の機能の話になってしまうんじゃ?RMIとかそーいった話の流れ方向での
静的だと外側の構造も知らん一クラスごときが誰に使われるのが良いだ悪いだ
決めるとか何いい気になってんだって話だ
>>443
>静的に操作するのは困難
困難どうこうより、そのポリシーを決める根拠をどこにも求められないということだよ
適当に決めてしまえば後で直せなくなる
根拠がどこにもないから
449:名前は開発中のものです。
07/07/22 02:55:07 /VC165Eo
>>443
インターフェースを多重継承して、必要な時・相手にアップキャストしたものを渡せば。
450:名前は開発中のものです。
07/07/22 03:36:44 jrExVTdK
簡単な具体例も挙げてくださいお願いします
451:名前は開発中のものです。
07/07/22 13:24:51 /VC165Eo
>>450
struct IFoo { virtual Vec3 getPos(); const = 0; };
struct IBar { virtual setPos(Vec3 const& pos) = 0; };
class CPlayer : IFoo, IBar { ... };
f1(IFoo&);
f2(IBar&);
CPlayer player;
f1(player); // f1には getPos() しかさせない
f2(player); // f2には setPos() でメンバ変数書き換えを許可
452:名前は開発中のものです。
07/07/22 15:08:54 PSHVXCKb
>>447
functionって40byteも食うの?
その半分くらいですみそうなんだけどな。
453:名前は開発中のものです。
07/07/22 18:59:44 jrExVTdK
なるほど、呼び出す側にインターフェースを渡すんですね
参考になりましたありがとうございます。
454:名前は開発中のものです。
07/08/05 01:30:04 CiKwXSKt
boost::functionって便利だけどむちゃくちゃヒープが汚くなりそう
455:名前は開発中のものです。
07/08/05 07:10:10 4IAfjfpf
>>454
小さなオブジェクトが多数 new されそうって意味? 気にしなさんな。
456:名前は開発中のものです。
07/08/05 07:37:18 CiKwXSKt
まあ、それが気になって使ってない、という訳じゃないけどねえ。
アロケータ作れば何とかなるだろうし。
457:名前は開発中のものです。
07/08/05 20:35:16 ki20ixME
javaでTCBを使いたいんだけど、どうしてる?
458:名前は開発中のものです。
07/08/05 20:46:45 4IAfjfpf
>>457
ふつーにメンバ変数使えばいいだけでは? Task Control Block なんてのは、アセンブリ時代の名残だから、
C++, Java あたりでは使わんでしょ。
459:名前は開発中のものです。
07/08/06 00:04:42 Mz0XA0lP
ゲームのデータを独自のフォーマットとかにする場合にヘッダを用意する?
460:457
07/08/06 00:40:04 wjb80OI1
URLリンク(ueno.cool.ne.jp)
こんな感じに組みたいんだけど、javaには関数ポインタがないので、引っかかり中。
461:名前は開発中のものです。
07/08/06 00:44:36 N/EWx1nS
>>460
まじめに勉強したら?
462:名前は開発中のものです。
07/08/06 00:45:37 N/EWx1nS
というかあからさますぎて夜釣りに思えてきた
463:名前は開発中のものです。
07/08/06 02:03:36 dDj8AjaH
TCBと言えばRTOSなので
ここはeCosに実装されたwabaを紹介してやるのが筋だろうか
464:名前は開発中のものです。
07/08/06 03:43:57 r8MqGT/t
ppc arm super wabaなら・・・
465:名前は開発中のものです。
07/08/06 07:16:51 R+5scQVe
>>460
Java だとインターフェースもしくは抽象基底クラス使う。
466:457,460
07/08/06 22:38:48 dCjdYchV
aを規定クラスにしたb1タスク
aを規定クラスにしたb2タスク
b1、b2タスクが混在したリストを作成したい。
C/C++なんかだと、関数ポインタnextなどにタスクをつなげてゆけるところだが・・・
javaだと関数ポインタがないので、配列にしてインデックス参照にするしかないのだろうか?
インデックス参照だと、個々のタスクごとに属性を割り振って、別々に読み出すか32bit以内に押し込むかなどして値を管理し、switchで分岐
して実行する記述が必要・・・。
C++なら多重継承があるので、b1からb2にたどることもも可能だが、javaには多重継承はないし・・・。
インターフェースは同じインプリメントを保障してくれるだけど、結局タスク切り替えのロジックが必要になるし・・・。
関数ポインタに比べて、これだと積極的に使うにはオーバーヘッドが気になるのと、記述が煩雑でプログラム的にCより退化しているように感じてしまう。
(今はリスト構造にせず、配列でタスクリストを持つ方向性で考慮中・・)
467:457,460
07/08/06 22:41:30 dCjdYchV
だれか経験豊かなjavaプログラマた通りかかったりしないかなぁ。
468:名前は開発中のものです。
07/08/07 00:03:46 ziyaQFb3
Vectorじゃだめなのか
469:名前は開発中のものです。
07/08/07 00:17:53 2nrPyfF8
やはり釣りだったか
470:名前は開発中のものです。
07/08/07 00:42:53 lyE3j1c/
HSPでOOPをやろうとするのと同じくらい馬鹿げてるな
471:名前は開発中のものです。
07/08/07 01:25:29 /sDbVbxZ
>>466
ぐちゃぐちゃ言ってないで書いてみろ。あんまりにも考察がめちゃくちゃで
どこから突っ込んでいいのかわからん。ソース晒してみれば突っ込みも入れやすい。
472:名前は開発中のものです。
07/08/07 01:55:24 sukzLC0P
>>466
日本語でおk
473:名前は開発中のものです。
07/08/07 03:33:11 jZSDWWPE
>>466
参照使え馬鹿
474:名前は開発中のものです。
07/08/07 03:37:03 Qoe4Y4zA
なんでみんな冷たいんだwww
475:名前は開発中のものです。
07/08/07 06:44:09 vUw1LN3Q
>>468
LinkedList の方が。
476:457,460,468
07/08/07 07:55:20 8/4fXdca
void (*func) ();
これのjavaでの代用法が知りたい。
477:457,460,468
07/08/07 08:07:53 8/4fXdca
LinkedList ....
Thanks! >> 475
478:名前は開発中のものです。
07/08/07 08:09:00 /sDbVbxZ
>>476
java.lang.Runnable func;
479:名前は開発中のものです。
07/08/07 08:24:51 88OVU+XC
>>466
aを要素にとるコンテナを宣言して
それにb1インスタンスだのb2インスタンスだのを加え、
コンテナを走査して処理メソッドを順に呼び出せばいいだけの話。
データ構造だとかクラス設計だとかいうレベルじゃない。
単にプログラミング言語の勉強が足りていないだけ。
それにお前は多重継承を激しく誤解している。出直して来い。
480:名前は開発中のものです。
07/08/07 10:39:17 98Sz9x7X
なんかタスクってGoToやってるような雰囲気があるな
481:名前は開発中のものです。
07/08/07 10:48:42 TDGAxW6A
>>476
>>460では関数ポインタ使ってなくね?
482:名前は開発中のものです。
07/08/07 14:27:28 lyE3j1c/
まぁvtableは関数ポインタみたいなもんだけどな。
483:名前は開発中のものです。
07/08/07 14:28:52 gmxLaOKz
>>478
Swingでやってハマるとかw
関数ポインタに直感的に一番近いのはjdk7までお預けだな。
javascriptならそのまま
(function(num){ print(num);})(100); //-> 100
だが。
484:名前は開発中のものです。
07/08/07 15:06:05 2nrPyfF8
>>483
日本語でおけ
485:名前は開発中のものです。
07/08/07 19:51:36 LOGzBd/R
自分が話理解出来てないだけなのに日本語でryとか言ってる奴増えたよね。
486:名前は開発中のものです。
07/08/07 20:52:36 2nrPyfF8
>>485
>Swingでやってハマるとか
理解できないのはこの部分だ
487:名前は開発中のものです。
07/08/07 23:28:41 rZkCIKw7
Swingがスレッドセーフではないって話かな。
もしそうなら >478 が言いたいのはRunnableのインターフェースだけを
借りることだろうから話が飛躍してるな。
488:名前は開発中のものです。
07/08/07 23:51:16 vUw1LN3Q
>>476
だから抽象基底クラスかインターフェース使えと。下のサンプルコードは C++ だが、Java でも
ほとんど変わらん。
#include <boost/foreach.hpp>
#include <boost/ptr_container/ptr_list.hpp>
struct ITask {
virtual ~ITask() {}
virtual void exec() = 0;
virtual void draw() const = 0;
};
class TaskManager {
public:
void exec() { BOOST_FOREACH(ITask& task, m_tasks) task.exec(); }
void draw() const { BOOST_FOREACH(ITask const& task, m_tasks) task.draw(); }
private:
boost::ptr_list<ITask> m_tasks;
};
489:名前は開発中のものです。
07/08/08 00:01:44 2nrPyfF8
>>488
優しいな
490:名前は開発中のものです。
07/08/08 07:33:12 71C/M+UG
たったこれだけのことなのに
さも凄まじいシステムであるかのように
タスクシステムと言う人の気がしれない
491:名前は開発中のものです。
07/08/08 07:48:40 4PM0J5aw
>>490
歴史を勉強しましょう
492:488
07/08/08 07:51:26 obrNCieZ
>>490
同意。
アセンブリ言語でハードコーディングしていた時代に初めて見たら「やるな」と思うが、
今時だとふつー過ぎて何も言うことがないよね。UNIX V6 のころのデバドラも、既に
こんな作りだし。
自分でコード書くのもいいけど、もっとコード読もうよ、と思う。
493:名前は開発中のものです。
07/08/08 07:53:43 HMa+110c
今とは比較にならない制限の厳しさの中で
TCBを弄り回してた時代のことを知らないんだろね
494:名前は開発中のものです。
07/08/08 08:21:56 XmcrCIW0
そういう話題は以下のスレでやってくれ
タスクシステム総合スレ
スレリンク(gamedev板)
495:457,460,466,476
07/08/09 01:21:26 WI6u6LTt
できた。
抽象基底クラスは知っていたが、
仕様上、基底クラスから上位のクラスをたどる必要があったので、
関数ポインタ云々といっていたのだが・・
キャストすればよいだけだった。
javaにはポインタの概念がないから、
javaのクラスは当然キャストできない、というような誤解があったので。
496:名前は開発中のものです。
07/08/09 01:24:51 Tm6LW0Jp
>>495
それなんか設計がおかしくないか?
みんなの意見無視ってところか
497:名前は開発中のものです。
07/08/09 02:27:45 RcnrWFRi
>仕様上、基底クラスから上位のクラスをたどる必要があったので、
そんな仕様にするのが悪い。
第一、抽象基底クラスを知っているのならば
そんなところで困ったりしない。
498:名前は開発中のものです。
07/08/09 02:50:07 yVPi3RJq
初心者には冷たいもんだな
499:名前は開発中のものです。
07/08/09 03:14:21 v8CPCZuZ
というか言語仕様勉強しろ
500:名前は開発中のものです。
07/08/09 04:12:56 k08h5JG9
キャストってw
ポリモフィズムをカケラも理解しとらんじゃないか
501:名前は開発中のものです。
07/08/09 04:46:19 BskRNsfr
自分から質問してきたくせに
まともな意見すら無視するような勉強不足君は
鮮やかに放置して、次の話題ドゾー
502:名前は開発中のものです。
07/08/09 05:27:24 nQyaGvDb
まともな意見を無視するのと勉強不足なのは関係ないと思うぞw
質問者はどちらの属性も持ってるけど
503:457,460,466,476,495
07/08/10 20:04:16 aK9bbQO3
失礼。
>>488
解決のヒントになりました。
ただboostライブラリはjavaにはないような気がします。
>>468
Vectorの案内が最初の解決のヒントになりました。
504:名前は開発中のものです。
07/08/11 20:49:07 AcYB8hIq
>>503
さんざん情報貰ったんだから、せめてソース晒して恩返ししてみないか?
505:名前は開発中のものです。
07/08/17 01:53:51 7sSY46ad
JavaSEでVectorつかってそーだな・・・
506:名前は開発中のものです。
07/08/21 16:35:31 /oULNmRu
質問すまそん。DXライブラリ&VC++でゲーム製作してます。
例えばRPGで、キャラデータ・アイテムデータ・フラグおよび
ゲーム内システムデータ(ゲーム世界での日付とか)は、
それぞれグローバルなデータクラスにしてるんですが、
もうちっとスマートな設計の仕方はないでしょうか?
ほぼ全てのインスタンスから参照するデータ(例えばフラグとか)って、
いちいち参照やポインターで格納させるよりか、データクラスとしてグローバルに
展開してメソッド経由でアクセスさせたほうがいいような気がするど素人なんですが、
こんな俺はオブジェクト指向として根本的に間違ってますね?
507:名前は開発中のものです。
07/08/21 18:54:06 /OCncB5N
ちゃんと管理できるなら問題ない
508:名前は開発中のものです。
07/08/21 19:55:25 LQCVNOKZ
>>506
>>507に同意
オブジェクト指向をしたいのか、ゲームを作りたいのか。
書き方に明確な規則やルールがあれば、それだけでいいと思うけどね。
でも自分が「オブジェクト指向的」に組むなら、その辺の情報はグローバルにはしないと思う。
必ずシステム内で生成する。何故なら、ゲームシステム≠ゲームの世界と考えてるから。
1.ゲームシステム=ゲームの中の宇宙を作る(ゲームシステム=プログラム本体)
2.宇宙の中に惑星を一個作る。(ゲーム世界(日付等含む))
3.ゲームの世界の中に、登場人物やアイテムを作る。(キャラクターデータ、アイテムデータ)
4、登場人物とアイテムは、状態を所有している。(フラグ)
単純に現実に沿って状態を作る(これがRPG向きか?と言われると、そうではないけど)
データは必ず1→2→3→4の順にアクセスする。面倒くさいけど、一応これにも利点がある。
・ゲーム内での登場人物の役割を切り替えやすい。
・同時に複数キャラが操られても破綻しにくい。(マルチプレイさせやすい)
・同様に、ゲーム世界以下の要素は増やすのが比較的容易。
まとめて言えば、人や物、物事の取り扱いを現実と同じようにできるってことね。
最初に戻ると、規則があるなら君の好きで良いんじゃないってことで。
509:名前は開発中のものです。
07/08/22 02:49:01 xHfctKqh
>>505
標準ライブラリが互換性のために未だに使いまくってるんだが・・・。
んで使い勝手悪いからいい加減JCFに移行しろと叩かれてるじゃないか。
510:名前は開発中のものです。
07/08/22 10:20:41 lSyOGrel
Universe.MilkyWay.SolarSystem.Planets.Earth.Enabled = false;
511:名前は開発中のものです。
07/08/22 21:45:27 HTZJHbeS
>>508
> 単純に現実に沿って状態を作る(これがRPG向きか?と言われると、そうではないけど)
単一システムで作るのは、結構つらいなぁ。
俺だと RPG はフィールド&シナリオ、戦闘、デモシーンでシステム完全に切り離して
作っちゃうけど。どーしてもフィールドからシームレスに戦闘に入りたいと言われたら
考えるが、工数は開発もデバッグも倍かさむよって感じ。
512:名前は開発中のものです。
07/08/22 21:58:56 9DW3Phyd
>>506が心配してるようなのって構造化手法の方の話で
オブジェクト指向とはあんまり関係ない気がする
オブジェクト指向言語は結局構造化手法の流れを汲んでるから関係あるっちゃあるんだけど
「オブジェクト指向的」に批判されることはないと思うんよ
513:名前は開発中のものです。
07/08/22 22:26:25 9DW3Phyd
>>508はこの方針でゲーム作ってなんかあったらここへ相談しにきてね
514:名前は開発中のものです。
07/08/23 00:15:28 mSgl7P3T
>>60が参考になるんじゃね
515:名前は開発中のものです。
07/08/24 15:43:24 C1/M3//R
>>513
>>510みたいなことは流石にやってないけど、マップが複数面あって
自由にキャラクターを選べるのを作ってるから、今のやり方で全く問題なかったりするぜ!
516:名前は開発中のものです。
07/09/01 13:35:04 +CS1vDDV
>>510おれもそんな感じだww
517:名前は開発中のものです。
07/09/01 15:26:53 AAlSvZp8
>>516
お前って奴は…
518:名前は開発中のものです。
07/09/01 18:53:13 pEzsrlB5
チラウラだが .NETの自動生成コードとか見ると
クラス名がネームスペース入りのフルネームで書かれてて
>>510と比べてもあまり遜色ないくらい長ったらしい記述になってる
519:名前は開発中のものです。
07/09/03 18:50:24 pkJ0HJ1y
>>510はどこまでが名前空間でどこからがコレクションなんだろ
520:名前は開発中のものです。
07/09/03 18:56:19 l4kjvmoQ
Universe.、までが宇宙空間
521:名前は開発中のものです。
07/09/03 20:58:24 nm3JiNC1
Planetsまでじゃないのか
522:名前は開発中のものです。
07/09/03 21:43:06 l4kjvmoQ
C#とかだと区切り記号が全部ピリオドだから分かりにくいよなあ
523:名前は開発中のものです。
07/09/03 22:51:36 4m5q0iOi
俺ならPlanetsは入らないな。
Universe.MilkyWay.SolarSystem.Earth
しかし、こんな話題しかないものか。
524:名前は開発中のものです。
07/09/03 23:01:33 nm3JiNC1
いいんじゃない、超光速星間航行を多用するスペースオペラ的ゲームのデータ構造。
525:名前は開発中のものです。
07/09/04 00:01:23 aU+sltFh
>>522
そんなこと言いだしたらjavaのエンクロージング型の完全修飾名は恐ろしいことになる。
526:名前は開発中のものです。
07/09/04 00:51:30 SZHcTWC/
外から内部クラスをアクセスすることはほとんどないんじゃね?
527:名前は開発中のものです。
07/09/04 01:36:58 aBG3sZkW
>>522
Delphiはわかりにくいと申すか
528:名前は開発中のものです。
07/09/04 01:47:09 h5r4WGWI
まあDelphiもC#も、同じヘルスバーグ氏設計の言語だからな
俺は氏の思想は好きだが
529:名前は開発中のものです。
07/09/04 09:17:06 /fq60VcD
どっちもIDEで使うための言語だからそんなに問題にならないでしょ
530:名前は開発中のものです。
07/09/04 14:17:11 A5VD8Kop
C#はCLRで使うための言語だろ。
VSがIDEなだけで。
531:名前は開発中のものです。
07/09/04 17:20:53 /fq60VcD
独立して使えるように体裁は整えてあるし確かにそうなんだけど
#regionとかpartialとかIDE向けの機能があるのは確か
URLリンク(www.atmarkit.co.jp)
>Q.C# 3.0では、型推論によって読むのが難しいコードになってしまうのではないか?
>A.Visual StudioのIDEを強化すればおk
さすがにスレ違いだなすまん
532:名前は開発中のものです。
07/09/04 18:32:28 1MQtcsKR
まあ、確かに動的な型変換と型推論は型の決め方が違うから読み辛い。
というかC#は既存言語の枯れたパラダイム
てんこもりにしただけのくせに信者が騒ぎだすんだろうなぁw
533:名前は開発中のものです。
07/09/05 22:29:15 wushZy2l
アンチうぜぇ
534:名前は開発中のものです。
07/09/06 00:13:48 XDEo8NLL
信者うぜー
535:名前は開発中のものです。
07/09/06 01:04:58 ojjbKURb
突然何の脈絡もなく言語叩きをしだす馬鹿は放置して次の話題ドゾー
536:名前は開発中のものです。
07/09/07 00:33:06 B51b23c5
JAVAとかC#とかってキャストないよね
タスクシステムのワーク領域のキャストってどうやるのかな
537:名前は開発中のものです。
07/09/07 00:44:42 GaWvLQQX
>536
今どきそんなC時代の古典的「タスクシステム」に無理矢理合わせようとしないのが正解。
538:名前は開発中のものです。
07/09/07 00:54:28 qKvVhzB0
>>536
だからインターフェース継承しろと。どうせメモリ管理は GC 入ってるんだし。
539:名前は開発中のものです。
07/09/07 09:56:16 +KS6LJ+F
キャスト自体はあるだろと
まぁC++でもそんなコードかいてたら殴り倒すけど
540:名前は開発中のものです。
07/09/07 10:04:18 puv664XK
>>539
シューティングゲーム プログラミング
松浦 健一郎 (著)
この本ではC++でワーク領域のキャストしてたけど、殴るの?
541:名前は開発中のものです。
07/09/07 10:07:03 ODKwq4Ib
ワーク領域のキャスト(笑)
542:名前は開発中のものです。
07/09/07 11:36:49 +KS6LJ+F
それ悪い見本だろ
543:名前は開発中のものです。
07/09/07 12:02:42 xHXwrHzM
>>542
普通に使ってたよ
本を書いてる人を殴れる程、出来るプログラマーなの?あなたは
544:名前は開発中のものです。
07/09/07 12:51:19 6U+LdAPY
松浦 健一郎 (著)、じゃなくて
松浦 健一郎 (笑)の間違いだろ。
545:名前は開発中のものです。
07/09/07 13:28:52 43uHszUC
MAKKENは殴ってよい
546:名前は開発中のものです。
07/09/07 13:54:05 NUmtK/nu
>>540の本って継承知らない程度の初心者向けの本ってところか?
継承使わずにやるやり方にページ割くくらいならさわり程度でも継承教えたほうがためになりそうだが・・・
547:名前は開発中のものです。
07/09/07 16:11:07 g09BD/TG
>>543
>>542が出来るプログラマーかどうかはわからんが、
基本的に日本だと本を出す奴ってのは3流だから
とりあえず本出してる人すごいって認識は改めたほうがいい。
548:名前は開発中のものです。
07/09/07 16:48:36 HXEpQNDZ
3流は本すら出せんだろ
549:名前は開発中のものです。
07/09/07 16:51:44 wO5yXJcP
>>547
三行目に同意
俺も高校まではそういうステレオタイプを持ってた
550:名前は開発中のものです。
07/09/07 17:54:50 VwzOSVjv
じゃあ「俺よりは凄い」で。
551:名前は開発中のものです。
07/09/07 20:37:04 B51b23c5
ここは自称凄い人がたくさんいるスレですね
552:名前は開発中のものです。
07/09/08 00:42:34 hAtUkBFn
>>546
一応継承は使ってるみたいだよ
new deleteのオーバロードも使ってるし
だから単に継承を使ったやり方をしらないだけじゃね
553:名前は開発中のものです。
07/09/08 02:39:33 RITYgY6W
最近のライターがコード書けんのは確かだな。
554:名前は開発中のものです。
07/09/08 07:47:53 bNPXbGtI
はいはいスレ違い
555:名前は開発中のものです。
07/09/13 22:14:56 1Bt3Jrj9
"Those Who Can't Do, Teach"という言葉があってだな。
シューティングの本?
同人シュー作者の俺がそのうち書いてボコボコにしてやんよ
∧_∧
つ≡つ);:)ω・).,,';
_| ̄ ̄||≡つ=つ )
/旦|―||// /| \
| ̄ ̄ ̄ ̄ ̄| ̄| . |∪ ̄\_)
|_____|三|/
556:名前は開発中のものです。
07/09/13 22:42:21 sAjH+7xy
>>553
正直、本を書いてもあまり儲からないんだよな……。前に技術書書いたことがあるんだが
印税8%で初版3000部とかだったから、時間単価考えたらコード書いてた方が遥かにマシ
だった。
もう少し幅広く売れる本とか、時間かけずに書けるとか、その後の仕事受注につながる類の
ヤツなら良いんだが。
557:名前は開発中のものです。
07/09/13 22:44:13 p9GEmztQ
何系の本なの?ゲーム系?ハード系?
それとも普通の言語系?
558:名前は開発中のものです。
07/09/13 23:27:43 sAjH+7xy
>>557
ネットワーク系。だいぶ前だけど、当時は翻訳やら執筆やらイロイロやってた。
今じゃすっかりコンサル稼業で、趣味でしかコードかけない人生だけどな……。
559:名前は開発中のものです。
07/09/14 00:00:01 qAC7e6UH
技術書って印税8%も来るのか。
560:名前は開発中のものです。
07/09/14 01:56:40 kBeEhHlB
>>559
でも 1 冊 2,000 円 x 8% x 3000 冊だと 48 万だぜ。駆け出しのプログラマだった頃は
実質 1.5 ヶ月かけても割に合ったけど、もうダメだ。金以外に何か目的がないと
やってられんよ。
561:名前は開発中のものです。
07/09/14 04:58:49 CTgFkt8N
やねうらおさんですか?
562:名前は開発中のものです。
07/09/15 18:37:54 odGWNMQb
けっこう、計算するとシビアな値段だな・・・
人生掛けてまでやることじゃない
クソ本あろうとしったことか!
あ、俺?俺は、情報商材にして、単価上げて(゚Д゚)ウマー
563:名前は開発中のものです。
07/09/15 20:05:14 5hbSwr+P
自分の備蓄禄だと思えば良いじゃない。
何ページで執筆に何カ月かけたか知らんが、
コード書けない人間なら数こなせば良い金になるな。
eclipse本なんてコード書かなくても良いしソフトの新版出る度に改定するから副業にはちょうど良いじゃないか。
デザインパターン本なんて同じ内容なのに言語ごとにあるぞ。
コード書いて食ってる人間に本なんて書いてる暇があるかは知らんが・・・。
564:名前は開発中のものです。
07/09/15 20:15:34 zE0h51TJ
日本の場合、コード書いても食えない人間ばかりだろ。
だから低レベルな本しか出てない。
そんな本ばかりだから若い人が育たない。
で、その若い人がコードで食えないから、さらに劣化した本を書くというスパイラル。
565:名前は開発中のものです。
07/09/15 20:27:26 lBqIBG3l
と、コードを書けもしない人間が申しております
566:名前は開発中のものです。
07/09/15 21:30:05 kmdFdmdy
>>564
> 日本の場合、コード書いても食えない人間ばかりだろ。
というか、単価の高いプログラミング仕事がほとんどない。
大手ゲームメーカーでリードプログラマやるより、中小の基幹システム改修
案件の SE やってた方が全然収入がいいという。技術的にもプロジェクト運営の
面でも、ゲーム屋の方が大変なんだが。
567:名前は開発中のものです。
07/09/16 03:07:48 YcEkQAYx
しょせん日本のマは末端の土方
568:名前は開発中のものです。
07/09/16 07:52:57 hBA8iHMq
プログラマなんて、IT土方だからな
569:名前は開発中のものです。
07/09/16 09:22:16 bdw4UY6n
>>568
GoogleとかMSだと給料高いけどな。現地ではなく日本採用でも。
570:名前は開発中のものです。
07/09/16 09:44:24 hBA8iHMq
>>569
プログラムだけできるだけじゃ、入れないところじゃねーか
571:名前は開発中のものです。
07/09/16 11:01:46 5DEnzRu4
>>569
M$はともかくgoogleは給料安いんでないの?福利厚生はともかく給料は。
572:名前は開発中のものです。
07/09/16 12:12:44 bdw4UY6n
>>571
Google は給与水準公開してないから情報限られるけど、俺が中の人から
聞いた話だと十分高いと思った。
それより株式公開前にストックオプション貰ってた連中は、上場と同時に
億万長者の仲間入りしちゃってるから、それと比べると給与はどうでも
良いっつー話らしいが。
573:名前は開発中のものです。
07/09/16 19:28:45 OIlosS2z
絶望した。上場したてのGoogle株を買って、任天堂に乗り換えれば
たった3年で20倍になってる事実に絶望した。
絶対うまいこと乗れたギーク系投機家がどこかにいるはず。
574:名前は開発中のものです。
07/09/16 20:24:04 JalQ3AgQ
お前ら良いなgoogleが上場とか、俺の頃はまだyahooすらなかった。
CEREN vs NCSAのhttpd戦争終結後くらいか・・・。
575:名前は開発中のものです。
07/09/16 20:58:05 uZJ+v8CM
みんな、UMLとかdoxygenとか使ってる?
576:名前は開発中のものです。
07/09/16 23:32:07 cz5uVFrl
どっちもつかってます
577:名前は開発中のものです。
07/09/17 01:15:23 YnotUqm6
javaだからdoc toolはデフォだな。
578:名前は開発中のものです。
07/09/17 01:50:53 VnVYOx3U
色気出してプリプロセッサ・テンプレートメタプログラミングしてると
doxygenが酔ってくれるから困る
579:名前は開発中のものです。
07/09/17 10:46:54 4TcSZ3vD
doxygenはマニュアル作ってくれる事もいいんだけど、コメントの規格を統一できるのもいいよな
でも、心がけてくれないチーム員もいるんだよなあ
580:名前は開発中のものです。
07/09/17 11:33:01 wCNRu3Bd
■□■□■□■□■□■□■□■□■□■□■□■□■□■ □■□■
――Click Click Click――
それは、一番クリックした国が優勝するバカバカしくも熱いゲーム!
2ch全板から力を結集して日本を1位にしよう! 日本は過去に8勝(世界最多)しています。
めざすは、台湾の6連勝記録を打ち破ること!
現在日本は3連勝中だけど、猛加速のハンガリーに昨夜逆転されてしまいました。
日本のツールはとても優秀ですが、参加人数が足りません!!
逆転するには、最低でもあと100台のPCが必要です。
専用ツールを落として、ブラウザを起動しておいてくれるだけでOKです!
放置できるので、寝ながら日本の戦力になることができます!
どうか力を貸してください!
【日本2位】一番クリックした国が優勝【版画ksk】
スレリンク(news4vip板)l50
※オリジナルのゲーム制作チームがあります。ぜひ力を貸してください。
581:名前は開発中のものです。
07/09/17 11:46:33 gzVOF+3o
doxygen で生成したドキュメントは使ってないが、doxygen 用にコメントは
書いてる。(javadoc 形式というべきか)
> コメントの規格を統一できるのもいいよな
目的はこっち。
582:名前は開発中のものです。
07/09/17 12:30:12 GfvjK68d
実際のチーム開発の現場って、
コメントだけでなく、ファイル名とかクラス名とか変数名とかのコンベンションも
やっぱ決められてるもんなの?
583:名前は開発中のものです。
07/09/17 12:33:20 gzVOF+3o
>>582
当然。
ただ汎用ライブラリを持ってくることもあるから、そっちとこっちで
規約が違って一部混在することはある。たとえば STL と DirectX
だと名づけ方大分違うしな。
584:名前は開発中のものです。
07/09/17 15:33:27 GfeYD8ac
>>575
Delphi使いなんで、Togetherで UMLはコードから自動生成だぜ~(嘘、使いません
ドキュメント生成ツールは、日本語対応したものがなくて、使ってない orz
585:名前は開発中のものです。
07/09/17 19:51:10 W3g8XPDv
doxgenは日本語出せたよ、Delphiに対応してない気が下が
586:名前は開発中のものです。
07/09/17 23:45:15 /t9Slj66
>UMLはコードから自動生成だぜ
普通設計してからコード書かないか?
UMLの仕様上は確かにcode2UMLもUML2codeも相互運用可能だけど・・・。
587:名前は開発中のものです。
07/09/17 23:57:57 zeWn8DxN
>>586
ネタにマジ(ry
> UMLの仕様上は確かにcode2UMLもUML2codeも相互運用可能だけど・・・。
C++ は code generation に向かない言語だなぁとおもうよ。
集約・コンポジション・関連の区別とかつけにくいし、boost::scoped_ptr で pimpl イディオム
使ってる場合とか、マジメに piml クラスもクラス図に入れると煩雑になりすぎ。
私は設計段階で主要クラスだけ図に書き出して、あとはコードでって感じ。
クラス図は必要があれば更新するけど、あくまでコードが第一の文書に
しちゃってる。
588:名前は開発中のものです。
07/09/18 00:16:16 0DwxQSyZ
UMLはドキュメントとしてはいいが、コードにそのまま適用されるものではない
というのは比較的お堅い業務アプリでの常識なんだが
柔軟性が求められるゲーム開発ならなおのことじゃね?
組込み系が今突撃中
589:名前は開発中のものです。
07/09/18 00:22:12 3aYPJasO
そこでinterface definition languageですよ
590:名前は開発中のものです。
07/09/18 01:16:19 5yeO/Swt
IDLでも結局は各言語に落とさなきゃ使えないからやる事はUMLとかわらなくない?
591:名前は開発中のものです。
07/09/18 08:32:52 FiLXhuol
UMLってやっぱEAでやってるの?
eclipseでNECのプラグインのを最近使ったんだが
592:名前は開発中のものです。
07/09/18 19:37:18 QkVIQXVh
個人的には MagicDraw とホワイトボード。
593:名前は開発中のものです。
07/09/19 06:01:52 8Q9ZtqfD
まず、マインドマップで手書きして頭の中整理してからUML使うな。
594:名前は開発中のものです。
07/09/19 07:15:57 kYNbLBEe
紙と鉛筆最強
595:名前は開発中のものです。
07/09/19 08:22:34 +HDOOkBH
同意。小型ホワイトボードもいい。
596:名前は開発中のものです。
07/09/19 21:49:02 umm3ZbPO
Eclipseのプラグインなんて使うのは、UMLドキュメントも成果物として要求されるような
ソフトウェア製作現場くらいじゃないか
597:名前は開発中のものです。
07/09/19 22:07:56 sx0yn1sA
そうなんだ・・・eclipseのプラグインでしか良いのないなーって思ってた
598:名前は開発中のものです。
07/09/19 22:43:10 amMsIx49
それよりeclipseのプラグイン=UMLツールって図なのはどうなのよ?
スタンドアローンなUMLツールもちゃんとあるんだからね!?
599:名前は開発中のものです。
07/09/19 22:49:24 jK01tyWi
>>598
> スタンドアローンなUMLツールもちゃんとあるんだからね!?
俺が使ったことあるのは、こんな感じ。結局 MagicDraw の Standard Edition 買って
使ってる。
Visio
・汎用お絵かきツールなので UML 専用ツールとしてみると、かなりイマイチ…
Together 試用版
・ソースコードに特定の形式でコメント埋め込む必要あり。ソースコードと UML の
同期は完璧だが、C++ だとマクロやらテンプレートやらあって逆に足枷に。
Enterprise Architect
・細かいことは忘れたが、値段の割りによくできてた気がする。
Jude竹
・使いづらかった記憶が。Java 前提で C++ だとイマイチ。
MagicDraw
・それなりに自由に図がかけつつ、UML 固有のサポートも十分している(基底クラスの
メソッドをコピーしてくるとか)。サポートしている図の種類も豊富で、開発も順調に
継続中。Pure Java アプリなのでメモリは多めに。
ただ C++ だとソースコードと同期する reverse engeneering, forward engeneering は
制約ありすぎで使い物にならない。
600:名前は開発中のものです。
07/09/21 00:31:32 KPDpA4Lk
C++ …
601:名前は開発中のものです。
07/09/21 16:35:38 GgMzSNNV
なんかC++のマクロが元凶なだけじゃ・・・。
javaにマクロないし。
602:名前は開発中のものです。
07/09/21 22:17:12 RhYk6YdF
>>601
スマートポインタ・pimplイディオムあたりも、そのまま図にすると冗長で
ワケわかめ。
603:名前は開発中のものです。
07/09/23 23:05:37 7hC9eV3o
javaにスマートポインタなんてないし世代別GCという逸材が組み込まれてる。
とか言ってみて良い?
実際javaでGCが必要になるケースって言語実装する場合だけど、javaのGCに投げれば良いだけだし。
604:名前は開発中のものです。
07/09/23 23:32:34 /EvVKbRp
え、いや、だから何?としか・・・
605:名前は開発中のものです。
07/09/24 00:13:37 5E4o0Iyz
>>603
文面見るだけだと、集約とコンポジションの区別がつかんけどな。関連との区別も
つかないし。
606:名前は開発中のものです。
07/09/24 00:36:17 N33NsFp0
>>603
CでもC++でもライブラリでGC使えるようになるよ
とか言ってみて良い?
デストラクタのタイミングがJavaだと曖昧だから、
確実に呼ぶためには明示的に呼び出す必要あるよね
とか言ってみて良い?
607:名前は開発中のものです。
07/09/24 00:38:43 wP3VhiV8
Dispose論争がやりたいなら他でやってくれ
608:名前は開発中のものです。
07/09/25 01:43:17 cUqDGz0b
共同開発で、Bohemなんか使ったら(ry
609:名前は開発中のものです。
07/09/25 01:59:20 Ubo+pWpI
>>608
アーーーー!!
610:名前は開発中のものです。
07/09/25 02:50:51 j6V698Ny
Bohemと言えば、吉里吉里3の開発で使っていたような。
と思って調べてみたら、やはりけっこう面倒になことなっているようですね。
URLリンク(kikyou.info)
C++でGCをするのは、やはりリスクは大きいんでしょうかね。
挙動をきちんと把握していないと、余計なバグを出しまくると。
611:名前は開発中のものです。
07/09/25 07:15:30 p/ZTpO6S
まさにそれで右往左往してるじゃん。吉里吉里3は。
というか誰のコードが入るか分からんOSSにはBohemGCは向いてないと思う。
612:名前は開発中のものです。
07/09/25 14:42:50 IK+Mi4/+
> とくにファイナライザ(デストラクタ)が呼ばれるタイミングや、
> そもそも呼ばれるか呼ばれないかすら信用できなくなるというのは痛いです。
これってBohemGCというか、
JavaでもC#でも似たような問題抱えてるような気が。
C#はusingでだいぶ良くなる(というか必須)けどね。
613:名前は開発中のものです。
07/09/25 15:49:03 j6V698Ny
C#でusingを使えるような状況なら、C++でも
std::auto_ptrやboost::scoped_ptrが使えるのでは。
まあこの当たりのスコープによる廃棄を使えるのは、データ構造でなくその
呼び出し側のほうになるとは思いますが。
データ構造の内側たるメンバ変数では、結局いポインタwをを使おうとすると、
やはりGCかスマートポインタが(r
614:名前は開発中のものです。
07/09/25 19:45:25 w6OvpTgu
ヒープの解放と後片付けは違うぞ
615:名前は開発中のものです。
07/09/25 23:37:49 k19pdkx7
>>611
全然右往左往はしてないので、BohemGCは向いていると思うよ
616:名前は開発中のものです。
07/09/26 02:49:14 9IVyIRI7
>>614
java6からはそこらへんもVMの仕事だな。
>>615
一時期、他のコードとの相性で苦戦してただろ。
というか吉里吉里は実質一人開発なのでバザールモデル開発時の問題は無縁かも知れん、
がソースを公開してるので誰がどう使うか分からないのでBohemGCは向いてないだろ。
617:名前は開発中のものです。
07/09/26 04:16:25 PN2WWo+U
>java6からはそこらへんもVMの仕事だな。
?
618:名前は開発中のものです。
07/09/26 07:07:41 i8F3qiyk
>>616
よく知らないんだけど、BohemGC特有の問題ってなんなの?
>>812はBohemGCだけの問題では無いよ。
619:名前は開発中のものです。
07/09/26 08:13:44 3isC6Gy4
>>616
w3m も BohemGC 使ってなかったっけ?
俺は C++ だとスマートポインタで十分なケースが多いので、BohemGC は
まず使わないけど。
620:名前は開発中のものです。
07/09/27 02:23:21 +pE/2Wnl
>>616
ほら、言い直した。
「一時期問題があった」だろ?
それなのに>>610-611で2006年から今もずっと右往左往してるかのような印象操作をして、
BohemGCがOSSに向いてないとか、そんな詭弁はやめろ。
お前が古い人間で、よく理解出来ていないガベージコレクションが嫌いなだけなんだろ?
>ソースを公開してるので誰がどう使うか分からないのでBohemGCは向いてない
これとかまったく意味不明。
boostのshared_ptrでも、まったく理解しないで使うと罠がある。
そういう仕組みをまったく使わないで、手作業で開放しても罠がある。
お前の論では、ナニをやろうが向いていないんだよ。
>>619
スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
var a = [0];
a[0] = a;
これだけでメモリリーク起きるなんて、危なくて使えん。
621:名前は開発中のものです。
07/09/27 02:44:05 VvpaMtLQ
GCは魅力的だと思うが、まだ”枯れてないから”じぶんは好きくない
技術は何かを実現する手段であって目的ではない
622:名前は開発中のものです。
07/09/27 07:51:02 N1wjX3wO
枯れぬなら 枯らしてしまえ ほととぎす
623:名前は開発中のものです。
07/09/27 08:18:58 w2Fnc2yT
>>620
> スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
スクリプト言語の仕様にもよるな。
PCのギャルゲーだとスクリプト言語自体をリッチな仕様にして、動的な
メモリ確保なども可能にする(文字列連結とか)場合もあるみたいだけど、
俺はスクリプトでは完全にコンパイル時にメモリ割り当てが確定しちゃう
ようにして、メモリやリソース管理は C/C++ 側のコードでプログラマが
責任を持って行うようにしてる。
スクリプタとプログラマの役割分担どうするかだが、スクリプタ大量投入
するタイプのプロジェクトだと、スクリプトの自由度を下げた方がバグの
発生頻度が小さくなって、結果的に ウマー なことが多いと思う。
624:名前は開発中のものです。
07/09/27 10:54:43 5M+6zylX
なんで>>620はエスパーレッテル張りまでして必死なの?
吉里吉里信者?
625:名前は開発中のものです。
07/09/27 11:00:37 qVZI5NrD
確かに必死さが伝わってくるな
626:名前は開発中のものです。
07/09/27 11:33:55 ET62U43b
nanndeこんんあに必至なの?
627:名前は開発中のものです。
07/09/27 12:37:22 vs9qugjh
池沼だから
628:名前は開発中のものです。
07/09/27 13:19:16 HGokK3wm
荒れていても技術的な話題が堪えることのない名スレ
でも最近少々荒れ気味だから皆落ち着け
629:名前は開発中のものです。
07/09/27 14:40:58 1l0/TfAT
落ち着いてないのは>>620くらいじゃ?
元々隔離板の過疎スレだから少数が騒ぐと目立つだけ。
またーりログ読んでるか、生温かい目で見守ってるのが大半じゃない?
630:名前は開発中のものです。
07/09/27 23:24:46 foTLrBw8
言うに事欠いて「必死だな」で切り抜けようと試みる
古典的バカが未だに生き残ってるとは驚きだな
631:名前は開発中のものです。
07/09/27 23:31:57 n9Qt+CRZ
煽っても必死さが正当化されるわけじゃないよ
632:名前は開発中のものです。
07/09/27 23:38:28 Kt0ma0Lg
BohemGCサイコー
633:名前は開発中のものです。
07/09/27 23:47:44 CbY2cE68
「必死さが正当化される」ってのはよく分からないけど・・・
とりあえず、「必死だな」とか言う前に>>620を論破してみれば?
例えば、
1,BohemGCだけにある、もしくはJavaやC#のGCでは解決された重要な問題を列挙する
(数値とアドレス値が識別できないという問題はあるけど、確率的にそれが不都合になることはほとんどない)
2,吉里吉里にはBohemGCが向いていないことを示す他のソースを提示する
とかね。
個人的に1はとても興味があるので、問題があるなら教えて欲しかったりする。
634:名前は開発中のものです。
07/09/27 23:48:30 w2Fnc2yT
>>620
本題からそれるけど、
> スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
> var a = [0];
> a[0] = a;
> これだけでメモリリーク起きるなんて、危なくて使えん。
スクリプト言語におけるインスタンスの寿命管理と、C++ インスタンスの寿命管理は
別の話だよね。
俺は VM のスタックは C++ のスタックを使わず、C++ で std::vector<> 使って確保した
記憶域を使ってる。でないとスクリプト一時中断する (co-routine 実装) のが難しい
からさ。
当然スタック上にあるスクリプト言語のインスタンスは全部 VM でトラッキングできる
ので、ガベコレできる。C++ 側のメモリ管理が GC 使ってるかどうかとは無関係に。
635:名前は開発中のものです。
07/09/28 00:02:16 qVZI5NrD
>>634
ようするに実装がスタックレスってことだな。
つかスタックレスでないVMにコルーチンを実装するのは不可能じゃないか?
636:名前は開発中のものです。
07/09/28 00:23:32 l1EYGW9S
>>635
多少制約がつくけど、Cスタックを保存・切り替えできればスタックフル VM でも
コルーチンは実装できます。
ただ、どうやってもポータブルなコードにはならないし、C++ 例外の実装方法に
よっては問題出るから、お勧めしないけど。
637:名前は開発中のものです。
07/09/28 01:10:11 iJmhMBkl
>>636
スタック切り替えてまでやるかw
猛烈に処理系依存なコードになりそうだな
638:名前は開発中のものです。
07/11/17 17:10:37 iMK/PWng
戦闘シーンの進行管理をするクラスって、どういう名前にしたらいいんだろう?
BattleManagerかな…でもManagerは使うなって話もあるし。
639:名前は開発中のものです。
07/11/17 17:27:39 tjJHhoDY
>>638
Manager 使うなって話は、つまり「管理」というあいまいな言葉を使うなって話。
「戦闘シーンの進行管理をするクラス」の役割を見直さずに名前付けだけ考えてても
無意味。
640:名前は開発中のものです。
07/11/17 17:45:31 iMK/PWng
>>639
レスありがとう
そう、今プログラム素人の子と話してたんだけど、
漠然と「場」みたいなもので考えるから名づけに迷うんであって、
相撲の行司みたいなのがいると仮定して、
そいつに戦闘の進行管理をさせればいいんじゃない?
という意見をもらった。
そこでまた、「戦闘の進行」っていう、時間を伴ったものを、
その「行司」の中に持たせちゃっていいのかなと迷うんだけど、
その辺りは割り切っちゃったほうがいいの?
OOPド素人丸出しでごめん
641:名前は開発中のものです。
07/11/17 17:53:06 3LkIon8X
戦闘シーン関連の処理に関して、俺が抱いてるイメージとしての「管理」から考えると
そのManagerが関連する他のクラスに処理を分配して、それを仲介するようなクラスだとMediatorあたりになるんじゃなかろうか
俺が作ってた「Manager」は上記のものがさらにFacadeの役割も果たすってのが多かった
デザパタから借りてるだけで正解とはとても言えんけど、「Manager」よりはマシかな…と
642:名前は開発中のものです。
07/11/17 18:09:05 tjJHhoDY
>>640
> そいつに戦闘の進行管理をさせればいいんじゃない?
それじゃ何も解決しないでしょ。「管理」という役割が同じなままなんだから。
「管理って、実際のところ何するの?」と問い、「あれして、これする」っていう
もっと具体的な単位に分解できれば、「あれするクラス」「これするクラス」に分割する
ことが考えられる。それらを組み合わせたものを「戦闘シーン」というクラスにすることも
考えられる。
どうしても「管理」としか呼べないんなら、それを Manager と名付けること自体には
何の問題も無い。
「戦闘の進行」と「行司」という切り分けができるなら、前者を Advance() なんていう
関数、後者を Rule とかいうクラスにすることが考えられる。 Advance() は Rule に
従って処理をする、って感じね。具体的な状況がわからないんで、全然ダメかも
しれないけど。
643:名前は開発中のものです。
07/11/17 18:34:11 2u92yTvZ
SceneManagerとか定番だな
644:名前は開発中のものです。
07/11/17 18:35:34 JxWacONa
javaの立場が・・・
645:名前は開発中のものです。
07/11/17 20:30:54 /rbqSJ11
class Referee
{
public:
Referee(const class Rule& current_rule);
const bool judge(const class Battle& current_battle);
void bribe(const int price);
inline void win(void) { URLリンク(youtube.com) }
};
646:名前は開発中のものです。
07/11/17 21:45:56 K5pYaEDh
>>644
?
647:名前は開発中のものです。
07/11/18 06:00:26 D4743XwF
使うなとは誰もいってないよ
648:名前は開発中のものです。
07/11/18 07:27:13 mDvA2is2
>>642
俺の場合、Manager って名前は使っちゃうな。ただし Manager クラスで
何でもかんでも処理せずに、分割できるところは別のクラスに切り出して
Manager クラスに集約する。
Facade やね。
649:名前は開発中のものです。
07/11/20 01:41:42 Xv2CgjLa
さっきからしょぼいBGMのループがひどいな
2ループもすりゃ十分だろ
650:名前は開発中のものです。
07/11/20 02:00:34 B+/JlwAo
>>649
何に対して言ってるのか
651:名前は開発中のものです。
07/11/20 06:51:02 x6OdnLNb
B・・・・・GM・・?
652:名前は開発中のものです。
07/11/24 17:27:35 5kPj3Eca
シューティング作ってて、敵のクラスと自機のクラスを分けちゃったけど、わけない方がスマートだったかなあ
653:名前は開発中のものです。
07/11/24 17:36:40 BsLqDTe0
>>652
一部同じインターフェースを持つことはあるだろうけど、普通に考えてまったく同じクラスに
なるとは思えない。
654:名前は開発中のものです。
07/11/24 19:10:43 XdMXhxj/
自分は敵1と敵2とかでもわけてる
655:名前は開発中のものです。
07/11/24 21:09:45 vFIasKer
>>654
そりゃ、作るゲームにもよるな。キャラクター数少なくて差異が大きい場合には
クラス分けるが、RPG のように数が多いと基本1クラスでデータ駆動にする。
656:名前は開発中のものです。
07/11/24 22:25:37 Y480fdwm
>>652
何シューティングか知らないが、
よくある2Dのシューティングなら自機と敵機で違う処理したほうが、
当たり判定の最適化しやすそうだな。
(同じ基底クラスから派生させるとかいう話はおいといて、