オブジェクト指向は本当に正しいのか? → YES!×2
2 :
uy :2012/05/04(金) 18:17:44.94
前スレまとめ Firefoxからパーサ部分を取り出すのは10分で出来る ミサイルとホーミングミサイルを多態化で表現してくれる奴まち オブジェクトの状態の変化とは、ライフポイントの変化のことである クラスとBoostとCOMの関係性とは
>>2 Firefoxからパーサ部分を取り出すのは10分でコピーペースト出来る
なw
uyは無知なんです。自分でもわかってるので大目に見てあげてください。 wwwwwwwwwwwww
773 名前:uy[sage] 投稿日:2012/05/04(金) 01:57:56.50
あ、変化をライフポイントって文字入れてみたらしっくりきたwwwwww
これは俺の負けでいいわwwwwwwwww
>>673 >自分自身をライフポイントを変化させる、新しいオブジェクトを生成する
>>668 >オブジェクト自身がライフポイントを変化する。
>オブジェクトのライフポイントを変化と生成に対応していれば、なんでも対応できるよ。
>>655 >それぞれ衝突情報を元に、自分自身のライフポイントを変化を記述すれば良い。
>自分自身がライフポイントを変化してもいいし、新たなオブジェクトを生成して
----
774 名前:デフォルトの名無しさん[sage] 投稿日:2012/05/04(金) 01:58:08.22
997 名前:デフォルトの名無しさん[sage] 投稿日:2012/05/04(金) 18:22:04.29
1000ならuyは童貞wwww
998 名前:デフォルトの名無しさん[sage] 投稿日:2012/05/04(金) 18:22:09.64
>>994 継承でいいのかなー?
999 名前:デフォルトの名無しさん[sage] 投稿日:2012/05/04(金) 18:22:29.40
uy、図星だからって必死だなw
1000 名前:uy[sage] 投稿日:2012/05/04(金) 18:22:31.62
| |/)+}∠..ノ: :+:∠: : +: ∠: :+:!: :.! |
| Lノノ: :+: :(.../ゝ: : /_:_:_:_.ノ∠L |
| ノ 厂 ̄ ̄ ̄厂 ̄ノ ハハ:.!ヽ: : : : :\|
. |/ ー=彡' : : : :/: : :/:.:./ ! `トハ l: :.厂 !
. / /: : ノ: /: :∠../∠厶イノ 」ノ__」ハハ. | ハァーーーーー?
/ 厶イ: ://______ー ´弋ン{ |/
. / |: : { ヽ 弋Zソ ー''^| |,′
/ /|: : | ^''ー一' , 八 .!
. / /‐|: : | /、___, /|:::ヽ', __ .、
{`ヽ`ヽ. /ム|: : |`ト . { ∨ ..イ: |::::::/) // ノ
. (`ヽ「ヽ \i`ヽ /く:.:.:!: : !、\` ヽ..__,ノ .イヽj: :|:::/ ムイ/ /ノ
\ | i ヽ \ \.> |: : |:.\ ` ーニ二厂「 r=ミ.|: :|/ //ノ
/∧ ゝ、 ヽ.!: : ! :.:.:.\ イ:.: :l Vノヘ: :| /
. // \ }: : l:.:.:.:.:.:.:.\ ノ:.:.:/ \|: :| . イ
uyをいじめるスレ、再開です!
7 :
uy :2012/05/04(金) 18:25:02.68
リア充は忙しい
2ちゃんねるで一日中忙しい。
1000 で痛いAA貼るなよ。 アニオタなのかよ Orz
uyは福岡のアニオタwww
665 名前:uy [sage] :2012/05/03(木) 22:51:56.70
>>662 いや想定しろよw
どんだけ経験ないのにしゃべってんだよ
雛形のスケルトンプログラムっていうのがあるよな?
ゲームを作る時には、基本的にそこからやっていくわけだけど
何度も作っていくうちにその雛形は進化していかなきゃおかしい
経験がないから「想定」が甘いんですよ
12 :
↓ :2012/05/04(金) 18:28:49.11
773 名前:uy[sage] 投稿日:2012/05/04(金) 01:57:56.50 あ、変化をライフポイントって文字入れてみたらしっくりきたwwwwww これは俺の負けでいいわwwwwwwwww
uyは福岡のアニオタでゲーム会社勤務の推定年齢32歳
14 :
uy :2012/05/04(金) 18:31:52.81
無関係の人を特定したつもりになって晒すのはやめろ
じゃあ、自分が何者か言ってみろよw
17 :
uy :2012/05/04(金) 18:35:38.13
大学院生
COMはOOPL以外でも作成可能。
>>17 まさに
> どんだけ経験ないのにしゃべってんだよ
COMはOOPL以外でも作成可能。 ただし、OOPL以外で使うのは面倒。
COMはOOPL以外でも作成可能。 ただし、OOPL以外で使うのは面倒。 さらに、OOPL以外で作るのも面倒。
>>19 同意。
未だ実際の事件現場に関わった事がないようだな。
プログラミング経験1〜2年っていうプロファイルと合致してたか
まあ、rubyって時点で経験ないの解るでしょw
始まってもいないのにオワコンな言語。
VC++知らないって言っているのでCOMの実装は知らないんだろうな。
いくらRubyが下位互換がないからってオワコン言うなよ これから始まるんだよヽ(;▽;)ノ
オブジェクト指向はRubyと共にオワコンしましたとさ
29 :
uy :2012/05/04(金) 19:02:41.45
ここは誤読と決めつけを競うスレです 参加資格:読解力が欠落していること
>>29 COMをVC++から使うときの面倒さを知らない点で
VC++碌に知らないって判断されたんだよ
本当に読解力ないなw
32 :
uy :2012/05/04(金) 19:15:24.57
経験ないんだから黙ってろ そんな理由でRuby選ばねえよ。VC++言ってる時点でわかれ Rubyはあくまでおまけ道具。それがRubyの立ち位置だ
35 :
uy :2012/05/04(金) 19:21:51.44
uyは無知な子
uyの狭視野クオリティは今日も健在か。安心した。
>>32 オマエは現実世界から乖離しているなぁ。
パンが無けりゃケーキを食べれば良いのと同じ発言だぞ。
現実世界では開発環境を決めるのはお金を出すクライアント様だ。
39 :
uy :2012/05/04(金) 20:05:08.55
>>38 マ板とム板を勘違いしてるんじゃないのか
仕事の話したいならマ板にいけよ
>>39 プロは銭儲けに繋がらないRubyでOOなんてしないからな。
Rubyやる時間があれば飯にありつけるjavascriptをやるw
> 仕事の話したいならマ板にいけよ いつから仕事の話がマ板になったんだ?
仕事の話はム板だよ? わかってるの? 2ちゃんねる初心者かい?
43 :
uy :2012/05/04(金) 20:23:31.95
>>40 そんなに金に困っちゃってるのか?
>>41 そういえばプログラマって職業じゃなくて平成奴隷の総称だったな
uyはこの先仕事つけるかあやしい立場なんだから そんなにいぢめてやるなw
>>43 お前の大好きなRubyを作ったのも
プログラマだよ。
いいのかい、そんな事言ってw
>>43 オマエは世の中が超不況なのを知らないのか。
親のスネかじりは良いな。
お前らがいぢめるからuy壊れちゃったんじゃまいか
>>47 たぶん以前から精神か脳に何らかの問題を抱えてると思うよ
最近はまだ安定してるほうだと思われる
49 :
uy :2012/05/04(金) 21:08:05.40
ラムダでやれ
平成奴隷、なんてのが出る時点で昭和のおっさんじゃねーかw
uyって名乗ればどんなバカを言ってもいいのはある意味いいな。
平成奴隷と言うと国民全部になってまうがな オレたちゃデジタルドカタだ。
まだミサイル言ってるのか 「誰かに全部書いてもらわないと誰かに説明してもらわないと理解できない」んじゃ 理解しても意味ないだろ。仕事にならん。 要は「誰がそのコードの管理者であるべきか」だよ簡単だろ んで正解は1つじゃない そういう状況に応じた最適解を早く見つけるスキルこそ オブジェクト指向を理解するってことなのさ
関数型みたいな機能が欲しいと思った時点で要注意。
オブジェクト指向の一部として、関数型を取り込むことは可能。
たまに関数型vsOOPみたいな図式にしたがる人いるけど、ぶっちゃけ共存するのが一番よね両者は
うん。オブジェクト指向は全体の構造担当。 その中で呼ばれる関数では関数型を使う。
関数をファーストクラスにすれば問題ない
だが事実リファクタリングする度に関数型機能は削除の方向に向かう。
副作用隠すためにモナドみたいな歪んだものを使わなきゃいけないなら 普通にオブジェクト指向で書いたほうが素直だし保守しやすい罠
モナドが副作用対策の為にあると思ってるんだな。
とわからないけど言ってみた
nomad 遊牧の民.,放浪者,巡回者,遍歴者
少なくともHaskellにモナドを導入した最初の目的は副作用の隔離だが?
67 :
デフォルトの名無しさん :2012/05/07(月) 15:50:02.41
オブジェクト指向は良い切り口を見つけられる人なら最高の仕事ができるが、頭が悪い奴がやると最悪になる諸刃の剣。 頭が悪い奴は使わないでください。
Javaのような言語を対象にしたオブジェクト指向ネタで公理的意味論とか契約による設計に一言も言及しない文章はモグリ
メイヤー先生のオブジェクト指向入門は不朽の名著だよね
>>68 また何の役にも立たない言葉引っ張ってきたもんだ
背伸びしたいお年頃なんだろ、スルー推奨
というか教科書用語でしょ。
>>73 DbCが役立つことが、このスレにどんな関係があるんだ
野良記事へリンクはって何がしたいのか
メイヤーをスキャンしてうpするがよろし
>>2 ミサイルとホーミングミサイルってどう違うの?
ミサイルが全てのミサイルクラスの親となる仮想クラスで ホーミングミサイルはその派生クラスのひとつ、じゃねえの?
ミサイルを通常のミサイルとして考えると、 MissaileBaseという抽象クラスがあって MissaileBaseを継承したMissaleと MissaileBaseを継承したHomingMissaleを 作るかもしれないな。
もしかして: Missile
あ、うん。そう。
そしてその各クラスが生成されているのはキャラ管理クラス。
みっせいる!
ホーミングしないミサイルじゃなくて、無誘導ロケット弾つーんだよw
>>79 俺はその場合でもMissileでなくStandardMissileとかにするなあ
Missileだと総称と紛らわしいから
ミッソー
88 :
uy :2012/05/09(水) 21:07:32.71
通常ショットと、ホーミング弾だろ ミサイル(笑)とかロケット(笑)とかセンスを疑うわ
89 :
uy :2012/05/10(木) 01:54:24.08
これからセンスのことは俺に聞けよ
91 :
uy :2012/05/10(木) 12:47:09.22
ちなみに通常ショット以外のショットはない
92 :
uy :2012/05/10(木) 14:09:58.51
は? ホーミングしかつくってねーわ レーヴァティンうめえええええええええええええええええええええええええええええええええええええええええええ
93 :
uy :2012/05/11(金) 02:06:15.03
やった! 二週間かけてようやくホーミングみさいるをOOで作れた 俺すげえ
94 :
uy :2012/05/12(土) 00:48:11.78
さいきん自分で書き込んだ覚えのないレスが いつの間にか残っている。ボケたかな
基本メディエーターとコンポジットで良いんだよ。 その基本さえあれば何のパターン使うか自ずと分かる。
Mediator of Mediator of Mediator of ...
コンポーネントじゃないわコンポジションの間違いだった。
98 :
uy :2012/05/13(日) 13:53:19.10
ないなら自分で書くのがプログラマ 他人に期待するのはIT土方のすること
100 :
uy :2012/05/13(日) 15:50:57.36
俺には無理だからお願いしてる
101 :
uy :2012/05/14(月) 02:38:57.78
結局誰も出来ないのか クズの集まりだな
もういいから ほうっといてください ゲーム製作 12日目 あ、順調ですよ 多分これ、最低でも2,3ヶ月かけることになる(プログラム関連だけで) uyの名前で公開はしないから、 はい バイバイ
もし本当にuyが「@本物」なんて付けているとしたら相当ヤバイ、弱ってきてる
大方がuyっぽいと判断する書き込みは全てuyのものだと思えばいい uyという人物がいるのではなく、これまでのuyらしき人物による書き込みやuyに対する噂から形成されたuyのイメージそのものがuyの定義である そうすれば本物だ偽者だというのは問題ではなくなる
とんちんかんなこと言って荒らすときは なまえをuyにするのが作法
弱ってきてるよ 俺のここ12〜15日間の生活スタイル 朝、4時起きる ぷろぐらみンぐ開始する、→12時、昼食べながらぷろぐらミんぐする 15時ごろ、ちょっと疲れたのでコンビニにでもいく 15時→22時、ラストスパートかけてぷろぐらミんぐする→風呂&夕飯たべてすぐ寝る23時→4時〜5時 起きる これで衰弱しないわけないじゃんアホなの俺本当は7〜8時間ねないとダメなはずなのに、 頭を活発に働かせすぎてるせいか、長く眠れない
107 :
uy :2012/05/16(水) 05:23:45.12
設計は完璧 やばい でも設計の上で、実際に書かなければならない手続きコードは完璧とは程遠くなる その処理部分の手続きコードをどこまで簡略化するかだ 君たちはその、手続きコードでかいたほうがいい処理部分を、何故かオブジェクト指向で書いたりするけど それは間違ってるよ とある処理を書く為に、新しくクラスやらを何個も作ってメソッドを用意して、OOを考えてなんて そんなの開発が遅すぎる オブジェクト指向、などという概念を入れるのは、「設計全体」だけだ 枝葉の末端のコードは、一番最適なのはどうせ結局OOも関数型もない手続き型のコード
伝説のuyはまだわかってないな オブジェクト指向は保守と再利用なんだよ
109 :
uy :2012/05/16(水) 05:56:28.90
保守なんてのは せいぜいファイルorモジュール分け、クラス分け、処理分け だけやってれば出来る 再利用に関しては、熟練すればどんな形のコード書いていようと再利用は出来る
110 :
uy :2012/05/16(水) 06:15:21.08
つかRubyでOOでかくと結局 @つきのメンバ変数使わなくちゃいけなくなってソース汚れるんだよね そこをRubyは認めなければならない lambdaを上手く使うと@つかない変数使って、クラスで書くのと同義のことは出来るから、俺はライブラリの半分はそうかいてるけど ソースがカオスになってる よく考えないで書くと、クラスになって@使いまくりの(俺から見たら)ひどいソースになる 客観的に見たら普通のOOだけどなそれ Rubyでself.extended とか object.define_singleton_method :func do 〜 end なんて直に呼び出して使ってる奴は俺くらいだと思う
111 :
uy :2012/05/16(水) 06:31:01.75
http://ideone.com/xg7xZ ライブラリの一部はクラスではなくこうなってる
つか今見直したけどわざわざOpenStructにsingleton_method追加してるのはアレか
lambdaの再帰が出来ないからこうしてるんだった
lambdaの再帰マジ重要
112 :
uy :2012/05/16(水) 07:11:01.25
>>111 ちげ
それもあるけどOpenStruct使ってるのは
ライブラリ内の状態変数を外部から見るためだ
113 :
uy :2012/05/16(水) 08:42:41.50
結局大規模なソースコードを管理するには 1、ソースの質を上げる 2、自分自身がそのソースコードの全体把握に努める 結局どんなソースコードをかいたとしても、2が優れていれば別に何の問題もなく作業は進む むしろ逆に、1ばかりをどうにかしても、2がダメであれば何やってもダメだ 100万行のソースコードを1年見続けてきた奴と、 ↑のソースを50万にまで減らしたしたソースを1ヶ月しかまだ見続けていない奴 どちらが全体把握しているというのか 多分前者だよ
手続き型指向が勝手にオブジェクト指向を過大評価して勝手に絶望してる様に見える。
115 :
uy :2012/05/16(水) 13:58:46.51
>>111 uniq_sym
「プログラム中、絶対にかぶらない文字列(シンボル)」を返す関数を
オブジェクト指向的に書いてみてよ
俺様の実装は実は中途半端
自分1人で使う分には良いけど、本当はこれだとかぶる可能性もある
:misaka_0001
というシンボルを uniq_sym で作ったとしても、
uniq_symじゃない場所で :misaka_0001 をもしかしたら作ってしまっている可能性があるから
これではダメなんだ
だけどSymbol.all_symbolsをみて新たに生成するとかしたら遅いじゃん
このままどこまで勘違いし続けるんだろうか。
117 :
uy :2012/05/16(水) 14:09:48.36
は? かけよコラ ちなみにlet over lambdaに”文字列”版の答えは書いてあったな シンボルで、高速にそれを行うにはどうしたらいいかちょっとまだ見えてこない 別に完璧じゃなくても動いてるから委員だけど
118 :
uy :2012/05/16(水) 14:14:32.42
俺様が「絶対にかぶらないシンボル」が欲しいときは
木構造でのタスク生成のとき、タスクにつける名前
だから、同じ階層に同じ名前がないシンボルであれば
>>111 こういう風にrand 10000 やって後は、同名のシンボルがないかチェックしてから
生成する感じでとりあえず何とかなってる
でも全階層中、どこのシンボルとも絶対にかぶらないシンボルを返すメソッドというのはまだ作れていない
なくてもいいんだけどあるとちょっとうれしい
>>111 は中途半端実装だからあまり積極的には使ってない
あーメモリ番地とかでシンボル作る手もあったか
どういう用途でその関数が必要になるか思い浮かばない bashでの$$、DBでのsequence、tmpfile()、mutex&static変数カウンタ、javaでnew Object()をキーに、 とか用途で変わると思うけど
p "test_" + A.uniq_sym() p "test_" + A.uniq_sym() p "rrrr_" + A.uniq_sym() p "rrrr_" + A.uniq_sym() p "rrrr_" + A.uniq_sym() test_1 test_2 rrrr_3 rrrr_4 rrrr_5 でええやん、なんで連番にしたいん?
プログラム中絶対被らない文字列を探さなくてはならない悲劇にいつ気付くのだろうか。メモリ番地w
122 :
120 :2012/05/16(水) 14:54:05.55
完全に流し読みしてたわすまん >uniq_symじゃない場所で :misaka_0001 をもしかしたら作ってしまって 何でだよw 指定API使う保証無いなら文字列じゃなくてクラスにしろよ UUIDクラスってあるじゃん、そんな感じで UYIDって
123 :
uy :2012/05/16(水) 15:09:52.86
>>119 ゲームでエフェクトオブジェクトを作る時などに
裏でエフェクトのひとつひとつにユニークな名前をつけてる
ハッシュで管理してるから、名前がかぶると同じオブジェクトとして扱われてしまう
>>122 プログラム中にuniq_symとは関係なくシンボルを使う事はあるだろ
そのどれともかぶらない物を生成したい
ハッシュねえ・・・ ここまでの話だと、無意味どころか余計遅くなる使い方をしてる可能性高いなw
125 :
uy :2012/05/16(水) 15:13:23.70
>>121 少しはこの問題を知っているようだな
俺様設計はプログラム全体が1つの木構造だから
その木構造の範囲の中でしか、そのシンボルを必要としない上に
オブジェクトが破棄されたらシンボルも破棄されるから俺様設計ではシンボル名にメモリ番地割り当てても大丈夫だという事に気づいた
それでもuniq_sym以外で生成したシンボルとはかぶる可能性はあるけど
rand(10000)とかやるよりはマシなアルゴリズム
ハッシュのキーにuniq_sym使ったものと使ってないものが混入するのが既におかしいだろw それにデータは木構造じゃないのかよ フラットなハッシュに全部ぶち込むくらいなら普通に参照のまま扱えよw
127 :
uy :2012/05/16(水) 15:19:05.45
>>126 混入しねーよ
完璧なアルゴリズムじゃないけど
俺様1人が使う分には何とかなってるって言ってるだろ
ただ気持ちよくないってだけ
木構造だっつってんだろ
ハッシュの木構造
128 :
uy :2012/05/16(水) 15:22:08.11
Object[:game_data].task[:scene_data].task[:menu] Object[:game_data].task[:scene_data].task[:option] Object[:game_data].task[:scene_data].task[:hiscoe] Object[:game_data].task[:debug].task[:main] Object[:game_data].task[:debug].task[:sub] こういう事だよ で、エフェクト周りは Object[:game_data].task[:scene_data].task[:menu].task[:effect_1〜10000辺りで適当に生成] こういうのがずっとネストしていくのが俺様のプログラミング
木構造自体は知ってるけど、実際の中身がどうなってるかは知らない。 ・・・って、感じみたいだなあ。 ちゃんと調べてみればいいのに?
130 :
uy :2012/05/16(水) 15:25:31.08
そんでエフェクトはuniq_symで名前付けるとしても :player とかまでuniq_symでシンボル生成して :player_3254 とかなっちゃうとアクセスしにくいから 手動で名前付けをするのだよ で、そういうのがあるから def uniq_sym str = "_rb_uniq_" , n = rand(10000) tmp = "#{str}_#{n}".to_sym if self.task.include? tmp return uniq_sym str , n + 1 else return tmp end end # def こうやって、現在のtaskが持っているシンボルとの確認を取らないといけなくなって、わずかに無駄処理をしてる
悪い事言わないから手続き型に拘るの辞めようよ。
132 :
uy :2012/05/16(水) 15:28:48.15
>>129 それを俺にいうのか?
>>131 これ手続き型じゃなくて、ただのタスク管理方法に過ぎない
133 :
uy :2012/05/16(水) 15:32:43.27
ちなみに記憶が曖昧だけどLET OVER LAMBDAでは 表示不可能文字を混ぜた文字列を作って、絶対にかぶらないシンボルを生成してたはず ただの表示不可能文字だともしかしたら万が一作られてしまう可能性もあるから その可能性をなくす為に バックスペースの制御文字を混ぜたシンボルだっけ? よく覚えてないが 文字列だったらそうやってかぶらないシンボルを作る手段はある
>>132 コードに出てくる部分を見ただけじゃ、本当の構造を知った事にはならないんですよ。
低レベルな言語だと言われるC言語ですら、ある程度の抽象化が入ってるしさ。
135 :
uy :2012/05/16(水) 15:44:47.14
>>134 何の話してんの?
C言語って何?
空想と現実の区別くらいつけようぜ
>>130 uyid("player") -> uplayer
uyid() -> y1
uyid() -> y2
uyid("y1") -> uy1
どうやら彼には
>>134 はピンと来なかったらしい。
まあ、別に
>>128 の構造でも、(遠回りなだけで)ハマったりはしないだろうけど、実際の中身を知ればもっといい方法が思いつくと思うんよ。
そろそろC言語で学んでみない?
かなり低レベルな言語で、実際の処理や構造を想像しやすいから、色々な最適化手法を学べる。
きっと今まで以上にプログラミングできるようになるだろうよ。
・・・なんだかんだでヒントあげまくってるな俺ww
139 :
uy :2012/05/16(水) 15:56:06.70
3倍あいすくりいいいいいいいいいいいいいいいいいむwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
140 :
uy :2012/05/16(水) 16:06:01.40
よくこの板で話題にあがるC言語ってマジでなんだろうな
そんなアニメの仮想現実内の言語だか、古代言語だかをあげられましても
今を生きるuyにとって関係なさすぎ
http://www.ftnk.jp/~fumi/cl/2007-11-24-1.html RubyってたったこれだけでTCP通信できるんだぜ、
おそらくネット対戦のやり方は、リプレイみたいにリアルタイムで入力データを保存しつつ
あとはゲームカウントを、お互いにリンクさせて同期させる感じかね
オブジェクト指向は今日も涙目
そのTCP通信が簡単にできるのは、オブジェクト指向の抽象化思想のおかげだと言うことには気づかない。
文字列でやるの?大変だな。まぁ頑張れや。 普通はシンボルが欲しいのなら、シンボルってクラスを作るよな。 シンボルが欲しいのだから。
逃避しないでデザインパターン勉強しろよ。
rubyのシンボルってjavaでいうところのintern済みStringだよな 同値なら同一参照になるやつ これの実装のためプールを持ってるだろうけど 弱参照みたいな仕組みでちゃんとGC対象になるんだろうか ならないならシンボル自動生成に伴ってメモリ消費が増え続けるような気が
145 :
144 :2012/05/16(水) 17:13:43.82
javaでいうところもなにも、rubyでもString#internだったわ
146 :
uy :2012/05/16(水) 17:17:26.67
よくこの板で話題にあがるOOってマジでなんだろうな
現実世界の話をして欲しい
>>
http://www.ftnk.jp/~fumi/cl/2007-11-24-1.html 俺ならこうする
TCPServer.create_thread 12345 do | gs |
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))
loop do
s = gs.accept
print(s, " is accepted\n")
puts(s.gets)
print(s, " is gone\n")
s.close
end
end
147 :
uy :2012/05/16(水) 17:20:00.55
>>144 メモリ増え続けるとかいっても
100万作っても別に平気だろ
問題は作りすぎると遅くなるライブラリとかがあるとかいう話は聞いた
しかしそんなものは遅くなってから考える
148 :
uy :2012/05/16(水) 17:26:12.09
p Symbol.all_symbols.size でみてみると1921個のシンボルが最初から宣言されてる ライブラリ等のヘッダを全て読み込んだ後だと 4000個以上になった ヘッダでこれだけ使ってるなら10万個くらいは宣言しても平気だろ多分
ツリーじゃ管理できねーよっていうならvisitorパターン使いなさい伝説のuy
150 :
uy :2012/05/16(水) 19:58:59.00
それはRubyでいうMix-Inみたいなものか A{ B_loop { Dの処理 } C_loop { ここにもDの処理が欲しい } } ていうか無理なんだよ lambdaだから、CのところでDの処理が欲しいとかいっても、Bのところが最低でも1回は実行されてない限り そもそも、オブジェクトやメソッドが作られてないからCからはDを参照しようが無い これは木構造になってる設計を視覚化したものをそのままソースコードに当てはめるのが目的で こんな事やってるから 崩してしまうと色々と意味がなくなる
151 :
uy :2012/05/16(水) 20:04:07.69
ああ、方法はなくもないわ 最初に全部のオブジェクトや処理をlambdaで作っておいて 最後にそのlambadで木構造のソースを作る形にすればメソッド呼び出しでも何でも出来るけど 流石にそこまでやろうというやる気はない それは今度だな・・・・・・・・・・・・
152 :
uy :2012/05/16(水) 20:15:03.66
ttp://s1.gazo.cc/up/s1_23360.jpg ゲーム内容なんて何にも出来てないのにネットワーク接続の仕組みはつくったった
テキストエディタにログが表示されて流れるよwwwwwww
ゲームにテキストエディタなんて実装してんじゃねえよしねカス
クソゲのネット対戦ができるよ!やったね!wwwwwwwwwwwwwwwwwwwwwww
153 :
uy :2012/05/16(水) 20:42:11.18
ああ何も公開しないつもりで作ってたのに 今日はちょっと作業進み過ぎてうれしくてついやってしまった もうUPはしない 今まで1日300行程度しかソース増えてなかったのに1500行もいきなり増えて5000行に到達 ソースが増えていくのもこの辺りまではうれしい 1万超えると増えるのが鬱陶しくなる ファイル数は40を超えた requireしているファイルは全てで50くらい やばいよこれ ゲームの中身作り始めたらrequireするファイル数200くらいいきそう 完成に向かってるはずなのに仕様がどんどん膨らんで完成が遠くなってる気がする 正直ここまでの規模のプログラム書いて なおかつちゃんとまとめられてるから、OOとかもう何もかもどうでもいい 絵と音楽とストーリーと、その他色々すべて とにかくプログラム以外の工程が遅れすぎてる 俺は何を作ってるんだろ、これ何 もうだめだ
154 :
uy :2012/05/16(水) 21:17:33.74
エディタを描画部分から作って手続き型プログラミングで200行くらいで実装しちゃってて それを改修しないと、まともに他所への流用は出来ない 今日一晩ねながら考え、明日改修する OSのAPI使うとかなしで作る場合に オブジェクト指向厨だったらどうやってエディタつくんの? 今のところ今のゲームプログラムでの必要なエディタは、 1 数字しか入力できないエディタ 2 IPとport番号しか入力できないエディタ 3 ハイスコアで名前入力しか出来ないエディタ などが思いつく 俺様が今思いついているのは キーボードの1個1個をコマンドとして考えて作る方法 具体的には、「Z」キーがおされたら、該当メソッドに lambda do 文字addメソッドを呼び出し、「z追加」 end などというlambda(コマンド)を送るような感じの設計 なんか俺もうlambdaのない言語でプログラミング絶対に出来ないと思う lambda使ってない奴ってlambdaなしでどうやってプログラミングしてんの・・・
一ヶ月どころか二日しかもたねぇwどんだけ人恋しいのよww
156 :
uy :2012/05/16(水) 21:41:26.33
流石に一日中プログラミングだけして リアルでもネットでも会話しないのはつらいんだよ ああいいよもうこねえよ
157 :
uy :2012/05/16(水) 21:46:56.58
これが一日中プログラミングではなく 一日中、絵を描いてるだけなら別に人恋しいとかなくなるよ 不思議だよね 究極ぼっちはプログラマじゃなくて絵師
158 :
uy :2012/05/17(木) 01:17:21.60
禁断症状が・・・ 俺って根性ゼロ 次にまた俺がレスするようなことあったら頃してくれ
159 :
uy :2012/05/17(木) 07:05:22.41
・・・・・・・・・・・・・・・・・・・・・・今起きた産業 誰も何も書いていないな オブジェクト指向厨はエディタ作れないって事でいいですかね? 俺は一晩かけて構想をまとめてきたぜ まず、エディタのアクションノメソッドを作る そして、キーと、そのアクションをつなぎ合わせる形を思いついた けど、1キーじゃなくて、 SHIFT+INSERTとか、そういうのも必要だから やっぱり、lambdaでIF文のような条件を送る事になった やっぱりlambdaのない言語ってどうやってプログラミングしてんの?
160 :
uy :2012/05/17(木) 07:08:37.41
>>159 追記、
[VK_SHIFT , VK_INSERT]とかいう配列を送るのでも大丈夫な気もするが
キーボードって、押しっぱなしの時の連打性能とか
押しっぱなしにしたときに何ミリ秒後に連打されるかとか細かいものが必要なんだ
そこら辺まで入力関連関数は既に作ってあるのでカスタマイズできる
楽に実装するにはlambdaでIF文の条件を送るのが最適だった
オブジェクト指向涙目.............
伝説のuyはこのまえネトゲ作るとかいってたのにエディタ作ってんのか? 漢字変換もundoもできないもの作ってどうすんのかね 1回くらい最後まで完成したの作ってみろよ
162 :
uy :2012/05/17(木) 08:39:41.77
どこのuyがネトゲ作るって言ってたんだよ エディタっつうか ゲーム内のテキストBOX 漢字変換はともかく、アンドゥリドゥとかそんな実装簡単なものはどうでもいい つうか、やたら変なデータを入力されても困るから ただのテキストボックスじゃなくて、色んな入力制限をかけたテキストボックスにしなくちゃいけないんだよ
163 :
uy :2012/05/17(木) 09:19:54.81
オブジェクト指向厨はダメだな ちょっとアルゴリズム的に難易度上がるとすぐに話題についてこなくなる そりゃそうだよ 手続き型で書くよりも、オブジェクト指向は難しいし、時間がかかる 君たちは「手続き型」で書く前の段階からいきなりwww「オブジェクト指向」で書こうとするから ちょっと難しいアルゴリズムなると全然何も出来なくなる オブジェクト指向というのはリファクタリングの1つに過ぎない 最初は手続き型でソースをかいて、 必要であれば、リファクタリングをするだけの事 一度オブジェクト指向(笑)なんてもので変な形に纏め上げてしまうと 後からのリファクタリングが困難になる事に気づくが良い
164 :
uy :2012/05/17(木) 09:50:55.31
もうきません
165 :
uy :2012/05/17(木) 09:56:58.57
しにます
166 :
uy :2012/05/17(木) 12:21:38.01
テキストボックスをエディタって言ったのをSNSで晒しあげされた 俺の方が正しいのに
167 :
uy :2012/05/17(木) 12:39:48.19
俺がオブジェクト指向で書いたプログラムは リファクタリングが困難になる だからオブジェクト指向は使いものにならない と結論づけていいはずだ
168 :
uy :2012/05/17(木) 12:40:47.81
エディタ完成した 俺天才
169 :
uy :2012/05/17(木) 14:30:06.55
sinu
OSのAPIを使わずにというのは、文字の表示も自前ということ?
ASCIIだけなら何とかなるでしょう。
uyも酷いが読解力ゼロで絡む奴らも酷いな
173 :
uy :2012/05/17(木) 19:03:15.96
>>170 152 でうpしてる
http://s1.gazo.cc/up/s1_23360.jpg どうみても自前だろ
今できるのは文字入力、バックスペースキー、デリートキー、SHIFTおして大文字
HOME END とかCTRL+HOME CTRL+ENDの動き
PageDown PageUP あとクリップボード貼り付け
マウスは対応してない
これ以上機能を追加する前に改修して完全なるカスタマイズ性能にしないといけない
でも最低限のカスタマイズは出来るようになったから、しばらくエディタの開発はここでやめて
もう今はゲームの別の部分の作成に入ってる
174 :
uy :2012/05/17(木) 19:11:31.03
俺様の例のソースを動かしたことある奴ならわかるだろうけど あのソースからの流用 その気になればウィンドウシステムも持ってこれるけど あれってハッシュの並び替えによってウィンドウの重なり表現してるヤバめのソースだから 再実装したい 流石にいくらRubyといえどもネストされまくったイテレーション中のハッシュの並び替えとかすると 意味不明な現象が起こる、俺様が理解していないのかRubyの動作がおかしいのか、突き止める前にやめた ウィンドウシステムもってくるなら再実装しなくちゃいけないからそれもまた今度 ゲーム内エディタとして完成させるならやっぱりウィンドウ化してマウスで動かせるようにしたい 連日連夜Programing一日中やってるせいで流石に体力がキてる 今日は2chで遊びすぎたのもあるけど全然さぎょうすすんでねえアホだ俺
175 :
uy :2012/05/17(木) 19:25:36.18
エディタってだけでもついてこれないのに 自作のウィンドウシステムの内部で動くエディタの話とかになると 絶対ついてこないよね ああもういいよ 別にDirectX直で触るなら、そういうライブラリではじめっからあるし 俺はただ自分でアルゴリズムを解いて、自作のものを動かしたいだけの話 エディタはeval使っていくとかなり短いコードで実装できる気がするんだよな その気になれば2chに書き込める文字数以内に収まるかもしれない こういうネタには、絶対についてこないんだろ、GUIアプリっていったらC#やJAVAでのポトペタしかできないもんねお前ら ああ、いいよ 一人でProgramingするので 役立たず共が
>自作のものを動かしたいだけ 役立つことやれよw
躁鬱の躁状態の奴をかまっても何の得もない おれらが高校生の時はすでにシューティングゲーム作って雑誌に載ってた
178 :
uy :2012/05/17(木) 21:18:27.28
雑誌て、 そもそも、俺がプログラミングするのは目的が違うし 俺が自作ゲーム作って、それを雑誌で紹介されたり、同人ゲとかだして一儲けしたいとか思ってるように見えるのか? 俺は有名になりたいとか、名声や名誉が欲しいわけじゃない 基本的に忙しいんだよ ブサキモネクラヒキコモリプログラマー共と、友達にもなりたくない お前らみたいのと会話するのも、ネット越しに話すので限界なんだよ リアルで絶対に話かけるなよ鳥肌ヤバイから そして何かを作りたいわけでもない しいていうなら俺は、二次元の世界の保守要員だよ 俺が何も作れないとしても、名声を得られないとしても、俺様の人生で二次元に1ミリ貢献できればそれで良い 過去すべての二次元キャラのデータベースを作りたいとさえも思ったりする 死ぬというのは、誰からも忘れ去られる事 完全に忘れ去られた二次元キャラクターはそのときに死ぬ すべての二次元キャラの名前を暗記したい プログラミングをやってる半分の動機はストレス発散 何か作れるように見えるのかね? ああ忙しいっわ
179 :
uy :2012/05/17(木) 21:41:56.09
お前らもRubyやればいいのに
180 :
uy :2012/05/17(木) 21:51:12.26
>>176 役立つよ
自前のアルゴリズムを開発しておけば
言語が変わっても環境が変わっても早急に実装できる
そもそもDirectX直接触ればっていったけど
dxruby越しに触ってる時点で
DirectXの他ライブラリを使う事によって競合起こしたりしそうだから
dxruby使ってる以上、無い機能は自前で実装しかない
でも俺にとってはそっちほうが面白い
ゼロからかくのは得意
本当に忙しい人は2chに来ない、書き込まない。
>ゼロからかくのは得意 むしろそういうやつのほうがいくらでもいるんだよな
183 :
uy :2012/05/17(木) 23:30:11.16
遊びを知らない奴はその程度 ていうか本当にもうついてこないんだね、エディタの話題で完全に人が散った 毎回こうだよこの板 ちょっと難しいアルゴリズムの話題、はったりの利かない部分になると人がいなくなる 散々Rubyをディスっててもこの類の事をやるならRubyが一番いい 速度遅いとかいってもちゃんとしたアルゴリズムでエディタ書けば 横に10万文字入れようと10万行入れようと、Rubyの速度でも重くならないからね つーか1億行あっても重くならない方法も今思いついたw Rubyだったら実装に30分かからないな OO(笑)のドカタ言語だと1日かかるんだろ?よくやってるよ C++でエディタかいても、普通にかいたら1億行は読めないしな あれ?実装簡単なRubyのほうがあらゆる面でいいんじゃね? 今の時代に言語の速度なんてのを必要以上に気にしてる奴は 自分には高速なアルゴリズムがかけないといっているようなものだと思う 俺はもうお前たちを見くびるしかないよ だってお前らソースアップしねーもん アップしたと思ったら中身も何もねークラスとか。どこの大学1年生だよと。 はっきりいって2chにきててリアルが忙しいとか他所で忙しいとか仕事が忙しいとか そんなに関係ねーだろwwwwww 忙しいとかいっていないで2chにきているんだったら遊べばいいだけ、何が忙しいとか名無しのリアル事情なんてしらねえし 忙しいからエディタ作れない、そんな暇は無い_? 俺も忙しいよ 忙しい中2chで遊んでいる uyは時間あっていいな〜とか思ってるのだろうか?? 俺はかなり忙しいよ 時間だけは平等だ
184 :
uy :2012/05/17(木) 23:32:04.52
>>182 もうそういうのいいから
かいてみろよ
ソースをアップしない、アルゴリズムについて全く触れない時点で俺と対等じゃない
それと、
「そういうやつのほう」ってなんだ
「そういうやつじゃないほう」っていうのもいるのか?
「そういうやつじゃないほう」っていう奴は、何ができる奴なんだ・・・
ドカタ言語でポトペタが得意な奴って事?
2週間のお勉強で現場投入されてる奴らのことかね?
雑魚共が
ngnameに放り込んだらすっきりした もっと早くにやっとくべきだった
186 :
uy :2012/05/17(木) 23:49:56.14
まだやってなかったのか、NGは早めにやっておくのがいいぞ たまに重要情報を垂れ流す事はあっても、 99.9%が駄レスで読む価値はない
187 :
uy :2012/05/17(木) 23:52:10.33
もう、俺もこういうキャラはダメなのかもしれないな 流石にuyは初心者wwwwww とか言い出す奴もいなくなってきた uyの事を技術がある者として認め、その上でuyに煽られ、叩かれるというのは 耐え難いものがあるのかもしれない 大丈夫だ、安心するがよい、uyは10割が冗談でできている 俺くらいのレベルになりたいなら1年くらい必死になればなれると思うよ むしろ人生の中で、全てのことを置き去りにして1つの事に集中した期間というのを 持っているか持っていないかって全然違う 俺は数ヶ月のプログラミング集中と、数ヶ月の完全ブランクを交互に行って、ここまできた ブランク空けのごとに考えがリセットされて、新たな発見だらけになる そうやってブランクを作りたいからこそ本職になりたくないんだよね 毎日のようにプログラミングしていたら、ボケるというのを、本能的に知っている 知識量は、毎日やってればつくだろうが、思考速度が落ちる だから本職には絶対ならないし、プログラミングと金儲けを、俺はつながりを持たせない 多分俺はプログラミングでストレス発散といった、ストレス発散でしかないんだ プログラムを組むという事は俺様の生理現象の一つ、 つうか今は何も考えてないのかもしれない、ただ思いついたものを片っ端からひとつのプログラムに実装しているだけ ゲームとかほざいてるけど実際ゲームじゃない、ゲームらしき何かだ しいていうなら、・・・わざとバランスの悪いブロックで、倒れないように建物を作っている感じだ でもそんなたて方でも、「普通にたてるよりも効率よくたてる」事を目指す、楽しいじゃんそれ 上手くいったときに最高に最高な気分になれる そんなバランスの悪いたて方で建物を建てられるのは、世界で一人だけ、 楽しいではないか
188 :
uy :2012/05/17(木) 23:53:50.94
3倍あいすくりいいいいいいいいいいいいむwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
190 :
uy :2012/05/18(金) 00:17:35.56
>>187 どつみても初心者だろw
バカに囲まれてるから勘違いしちゃうだぞ
191 :
189 :2012/05/18(金) 00:28:22.96
でもってこんな風に class Field { List<GameObject> Objects } ここまでの関連は46氏の書いたとおり
192 :
uy :2012/05/18(金) 00:42:08.92
193 :
uy :2012/05/18(金) 00:53:57.39
>>189 ,191
実際そこら辺の設計だけソースだしたって意味なくね?
他の部分のソースコードが、その設計に見合ったものでなければなんとも言えない
散々俺もその話題については煽りまくったけど
本音を言えば根幹部分の設計など人の好みでしかない
ゲーム作り始めたら根幹部分がどうなってるとか意識する事はほとんどない
せいぜいシーンやオブジェクトの生成手順が違う程度の差
つまりここはオブジェクト指向使わなくても高度なプログラミング出来る俺天才スレになったのか。
195 :
uy :2012/05/18(金) 03:59:38.95
俺の俺様設計ことは忘れていいよ 興味があるなら期間限定でソース公開してもいいけど、 別に興味とかないんだろ 仕事で使うOOだけできれば十分なんだろ貴様ら 俺が世界を、生きるついでに変えてやるからそこで座って待ってろ
196 :
uy :2012/05/18(金) 04:07:57.04
俺も期間限定で出してもいいよ
197 :
uy :2012/05/18(金) 05:07:36.66
俺のはOOでも関数型でもない独自だから
198 :
uy :2012/05/18(金) 10:17:31.65
みる気はないみたいだ もういいよそれ 貴様らは今日1日を生きるので精一杯なんだろう だったら人生に余裕のある奴が 世界に対し何かをしないといけないのかもしれない
199 :
uy :2012/05/18(金) 11:28:34.00
俺様のほうの設計はほぼ完璧になってしまった為 オブジェクト指向に興味が出てきた 一体、オブジェクト指向()で、どこまでやれるのか
201 :
uy :2012/05/18(金) 12:27:17.70
これからオブジェクト指向を勉強しようと思います 俺は今までまるでわかってなかった。
uyよ チラウラ日記うぜえ おまえは最低限の知性もないのか? 専用スレ立ててそっちでやれ ここにはくるな
だってよ偽uy このゴミカス過疎スレを使いたい奴がいるようだ 以降書き込み禁止
存分にオブジェクト指向について語るがよい
さっさとオブジェクト指向を語れよ雑魚が 30分もまってやってんのに書き込み0か
偽uy多いんだろうが、久々にNG解禁したらuyが以外とまともになっててびっくりしたぞ
最近いい事が多いからな
>>206 uyは精神不安定な感じ
また不安定になったらNGに突っ込むことになるさ
209 :
uy :2012/05/18(金) 18:42:47.54
安定とか無理だろwwwwwww 貴様らに伝えきれない この今の、気持ちの高まり 理解しなくて良い オブジェクト指向について語ってください 俺はオブジェクト指向に興味がある
210 :
uy :2012/05/18(金) 18:44:00.19
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
211 :
189 :2012/05/18(金) 19:24:19.94
FieldはGameObjectを管理する class Field { CreateObject DestroyObject } 一方でGameObjectも自他のGameObjectを生成消滅させることができる GameObjectはFieldにGameObjectの生成消滅を移譲する class GameObject { CreateObject DestroyObject }
>>211 GameObjectをあちこちで生成破棄できるようにするって事でおk?
それとも、実際の生成破棄はField任せ?
ゲームオブジェクトをハッシュで参照するメリットって何? 良くあるように、ポインタや参照などを使っても手間は同じだと思うんだけど。 ユニークなシンボル名って言うけど、 実行時に適当に名前付けてもらうってことは、ソースコード上では直で指定することは無いんでしょ。 無名扱いなんだから、参照でのアクセスで良いんじゃないの? 実行時に割り振られたユニークなシンボルをやり取りすることと、 実行時に割り振られたユニークな参照をやり取りすることに、 本質的な違いが有るとは思えないんだけど。
214 :
uy :2012/05/18(金) 21:36:25.13
ウザ王に俺はなる!
215 :
uy :2012/05/18(金) 21:56:14.11
>>213 よくぞきいてくれたな
まず、シンボルの名前の付け方は、俺の場合3通りある
手動でかぶらないシンボルを代入
function :player # => :player
手動で適当なシンボルを代入した後、裏でユニークな番号をつける
function_uniq :enemy # => :enemy_03345
手動では何も引数を渡さず、裏で完全にユニークなシンボルをつける
function_uniq # => :uniq_sym_03345
>ゲームオブジェクトをハッシュで参照するメリットって何?
新規にクラスを作るほどでもないオブジェクトを同一のクラスや配列(リスト)で管理できること、よって変数やクラスが減る
(俺の場合はオブジェクト管理クラスとか1個しかないけど、そこまでは行かなくても良いとおもう)
>実行時に適当に名前付けてもらうってことは、ソースコード上では直で指定することは無いんでしょ
については、こんな感じでオブジェクト作ったとしたら、以下のように正規表現で探索して参照したり、直接ハッシュキーを指定して参照する
object_task = { enemy1: Object.new , enemy2: Object.new , boss1: Object.new , boss2: Object.new , player: Object.new , }
#正規表現で探索参照
object_task.my_search(/(enemy.*)/) # => [ enemy1 , enemy2 ]
object_task.my_search(/(boss.*)/) # => [ boss1 , boss2 ]
#直接参照
object_task[:player] # => player
正規表現での探索は遅いからゲームループ中には積極的にやるべきじゃない処理なので
シーンやオブジェクトの初期化時に済ませる
>>215 オブジェクトに名前か属性か何か割り振っておいて、
それを元にサーチすればと思ってしまう。
217 :
uy :2012/05/18(金) 22:14:17.77
新しい種類のオブジェクトが必要になったときにも新規にクラスは作らない 新しい種類のオブジェクトには、新しい種類のメンバ変数やメソッドが必要になるけど RubyだったらmoduleのMix-inと、OpenStructでそこら辺はどうとでもなる C++でやってた頃は、STLのMapが今Rubyでやってる事の代用品になってたな ただし俺はシーンだけはクラスを別に作る事にしてる、 @のついてるクラス内では割とスコープの自由なメンバ変数と、 ネームスペースが欲しいからその為だけのクラスといった感じ ここまでなら別に静的言語でもついてこれる範囲だからあっちのスレにも書いた 少なくとも一人でプログラムかくならゲームの全オブジェクトを1クラスで管理したほうが効率的だとおもう ーーーここからハイレベルーーー 結局、エフェクトにしても、敵オブジェクトにしても、その違いなんてのは 当たり判定処理行うか行わないか、指定フレーム後に勝手にオブジェクト消滅するか、フェードアウトするか、 その程度の差だから、 そういうものは全部引数で何とかなるんだ Rubyの場合はハッシュ引数というものが存在するので、引数の数とか、大体フルで指定したら俺のソースの場合はもう30個以上になるな デフォルト引数のようなものもあるので実際に指定するのは、x,y,Image,symbol,function、 そしてフェードイン、フェードアウト、画像の傾き、画像の拡大縮小、 ← そしてこれらの動作を引数で制御する為に
218 :
uy :2012/05/18(金) 22:16:30.08
>>216 それでもいいけど、
Rubyは速度厳しいから:player のように、ユニークなシンボルがわかりやすい物は
配列などからサーチするよりもハッシュとして1回で[:player]とアクセスするなどしての高速化が必要だった
219 :
uy :2012/05/18(金) 22:21:46.06
>>217 続き、
制御する為に、こういったカウントするためのライブラリ機構を作り
http://codepad.org/uZ2KTm0y それをこのようにハッシュ引数を渡してオブジェクトを作ってる
def _effect2 hs = Hash.new
o = self
remi = Count_Lib.count_limit_create 0 , 255 , 1
o.node_task_template2({
x: rand(600) , y: rand(400) , d: Image.new(40,40,[100,140,200]),
sym: hs[:sym] ,
alpha: ({ type: :loop_rev, start: 0 , limit: 250 , add: 3 }) ,
rot: ({ type: :loop_rev, start: 0 , limit: 40 , add: 1 }) ,
scalex: ({ type: :loop , start: 1 , limit: 4 , add: 0.01 }) ,
scaley: ({ type: :default , start: 1 , limit: 4 , add: 0.01 }) ,
}) do | o |
o.delete if remi.call == 255
Window.drawFont(o.x, o.y, "sample_effect2", Yuyuko.font)
end # temp
end
このソースは
remi = Count_Lib.count_limit_create 0 , 255 , 1 で0から1ずつ255までカウントさせるカウンタをつくり
o.delete if remi.call == 255 それに達したらオブジェクトを消す
>>219 おい、うざい
スレタイよめ。
おまえにはそれがooに見えるか?
221 :
uy :2012/05/18(金) 22:28:43.72
>>220 質問者がわざわざゲームプログラムスレから来てるんだよ
日本のIT技術の発展のためにこのスレをしばしお借りしたい
>>221 断る
Rubyスレでやれ
関係ねーんだから
223 :
uy :2012/05/18(金) 22:30:45.76
>>281 そこを高速化するから楽しいんじゃないの?
自動でインデックスが作られるようにしたりさ。
テキストエディタの実装よりは楽しいと思うよ。
225 :
224 :2012/05/18(金) 22:46:00.86
レス番間違い
>>218 そこを高速化するから楽しいんじゃないの?
自動でインデックスが作られるようにしたりさ。
テキストエディタの実装よりは楽しいと思うよ。
226 :
uy :2012/05/18(金) 22:59:55.36
>>225 話のレベルが極端に低い、それはC言語とかの話してんの?
高速な配列は、最終的にはハッシュになるだろw
別にそれを「楽しい」とおもうなら君はその実装してればいいけど
ゲームプログラムの話じゃなかったのかね???????????
俺はもう遊びでプログラミングやってんじゃねえんだよ
別にエディタ実装が楽しいからやってたとかじゃなくて
作らなくちゃいけないから作っただけ
ゲームでテキストボックスが必要だからエディタとしても使える汎用クラスをついでに実装したまでの事
227 :
189 :2012/05/18(金) 23:01:18.75
>>212 GameObjectを生成破棄する主体はFieldとGameObject両方が考えられる。
しかしループ中にリストを変更することは好ましくないため生成リストと破棄リストをFieldに持たせて
インスタンス化とは別に管理上の生成と破棄を全てのGameObjectの処理を終えた後に行う。
CreateObject()とDestoryObject()はそれぞれのリストにオブジェクトへの参照を追加する。
class Field
{
List<Object> objects, create_objects, destory_objects
Do()
{
foreach o in objects { o.Do() }
foreach o in destory_objects { objects.Remove( o ) }
destroy_objects.Clear()
foreach o in create_objects { objects.Add( o ) }
create_objects.Clear()
}
CreateObject( GameObject o ) { create_objects.Add( o ) }
DestoryObject( GameObject o ) { destory_objects.Add( o ) }
}
228 :
uy :2012/05/18(金) 23:09:21.32
つうか。そんなものゲーム開発始める前から既に実装してあるのが当たり前なんだから もっと先の話に以降しようよ オブジェクト指向的に、発生から255フレーム後に消えるゲームエフェクトオブジェクトとかってどうやって作るの? 俺はハッシュ引数でAlpha,scalex,rotなどの引数を全部渡して生成するよ ハッシュ引数のない言語ってそこら辺どうしてんの?
> ハッシュ引数のない言語ってそこら辺どうしてんの? ハッシュを使えば良い。
キーワード引数を使う
他の言語にはキーワード引数というもっとまともな仕組みがある
232 :
224 :2012/05/18(金) 23:17:35.03
>>266 必ずハッシュになるとは限らないかと。
object_task = { player: Object.new, enemies: Array.new, }
たとえば↑のようにすれば、敵の検索はする必要ないし、
ユニークなシンボル名も要らない。
>>288 obj = new_game_obj(); //デフォルトのオブジェクトを作成
obj->set_alpha();
obj->set_scale_x();
obj->set_rot();
233 :
uy :2012/05/18(金) 23:20:32.89
>>230 >>231 他の言語って、ゲーム開発するのって
C++かC#かJAVAだろ、何でもいいからかいてみてそれ
Python以外で
pygame
名前付き引数のことか
236 :
uy :2012/05/18(金) 23:24:50.55
>>232 >object_task = { player: Object.new, enemies: Array.new, }
つうか何でもいいよ
213がきいてきたから俺の方法を教えただけで
もろオブジェクト指向だな
でもそれって、alpha値とかが徐々に変化していく場合ってどうするの?
俺の場合は カウントタイプと、start limit add という引数を渡してる
238 :
uy :2012/05/18(金) 23:32:38.19
いいからお前らの手段は? なんで俺しかいつも具体的なソースさらさないの
239 :
224 :2012/05/18(金) 23:36:30.77
>>236 いや、
>>232 ==
>>213 なんだがな。まぁどうでも。
>>236 に書いてあることそのまま書き下すと
obj->set_count_type( count_type );
obj->begin_count( start, limit, add ):
こんな感じかねぇ。まーどうとでもなりますわね。
>>238 本気でわからんの?
ここ何のスレかわかってる??
241 :
uy :2012/05/18(金) 23:39:38.42
>>239 いや、どういうやり方がベストだと思うのか、その考えを聞きたい
>>240 正しいのかどうか議論しろよ
242 :
uy :2012/05/18(金) 23:44:23.17
alpha += 1 とかじゃなく alpha += add とかやっちゃうと最適化効かなくなったりするだろうから C++厨はまずこういう設計にはしてないと思う 俺は元々、高負荷ゲーは作らないつもりで自ライブラリ設計したこうなってる
243 :
224 :2012/05/18(金) 23:54:59.30
>>242 たとえC++厨でも、そんなの実行速度には何の影響も無いから気にしないね。
てか一度ネイティブ系の開発環境でプログラミングしてみたほうが良いかもな。
何にどれくらいの実行コストがかかるか感覚的に良く分かってないんじゃないかな。
244 :
uy :2012/05/18(金) 23:59:28.22
相手を見くびるな 今もRubyメインC++補助に使って開発してるよ C++は速度出すための言語だから俺がC++使うときは最速コードを心がける 君のエフェクトオブジェクト生成方法を知りたい
245 :
224 :2012/05/19(土) 00:04:05.75
今日始めてRuby触ったけど、 def new_game_obj(); nil end def new_hoge() obj = new_game_obj() class << obj; attr_accessor :player end class << obj; attr_accessor :enemies end obj.enemies = Array.new return obj end こうやって書いてくと一応RubyでもインスタンスベースのOOは出来るみたいだね。 コード補完が効かなくなるから果てしなく微妙だけどね。
246 :
uy :2012/05/19(土) 00:15:35.85
Rubyとか俺の方法はもう十分だしたからいいよ お前自身のやってる方法は?って聞いてるのに お前もハッタリなの?
247 :
224 :2012/05/19(土) 00:32:17.29
>>244 ゲームは作らんから知らんが、俺はOO厨ではないので、
少なくともエフェクトオブジェクトっていう言い方はしないし、
エフェクトオブジェクトも作らないね。
エフェクトって言ったって千差万別だし、
そんな中途半端なクラス作ったって意味ない予感がする。
拡大したりフェードアウトしたりのコードがそこまで面倒だとは思わないし、
都度都度自由に書けたほうが良いんじゃないのかね。
ツクール使ってるわけじゃないんだからさ。
シーケンシャルな処理にそこまで気を使わなくても大丈夫だよ。
やりたい事をやりたい順にダラダラ書いてけば良いじゃない。
今専ら問題なのはシーケンシャルにならない処理をどう書くかだろうね。
みんなそうだと思うよ。マルチスレッドを如何に隠蔽するかは楽しい話題だね。
248 :
uy :2012/05/19(土) 01:03:25.42
>ゲームは作らんから知らんが はい、解散 >そんな中途半端なクラス作ったって意味ない予感がする。 だからすっげー大変だから、他の奴がどうしてるかを聞きたかったんだよw やっぱりお前もはったりなんじゃん死ねば? ねえ死ねば? なんかおかしいと思ったよゲーム作ってる奴でC++使いなら速度関係にはシビアなはずなのに 最適化されるケースとかわかってねーし >拡大したりフェードアウトしたりのコードがそこまで面倒だとは思わないし、 >都度都度自由に書けたほうが良いんじゃないのかね。 ほとんどの奴はそうだろうね でもそれやっていくと、ありえないくらいにソース総量が増えていくのは覚悟しないといけない 俺も一部エフェクトオブジェクトは作らずにエフェクト書くこともある ただし大半はエフェクトオブジェクトを作る形で10行程度で終わらせる 実際、ゲームを何作も作ってるうちには流石に毎回都度都度かいてられないからまとまるんだよ、はい、終了
249 :
uy :2012/05/19(土) 01:06:30.35
しかも マルチスレッドとかさあ 「普通」はつかわねーよ 普通はタスクシステム マルチコア環境を想定して、かつ速度が欲しい時にマルチスレッド ゲームオブジェクトはゲームの種類によっては数千、数万いくんだから それら全部をネイティブスレッドとしてでも作っちゃうわけ? ねーーーーーーーーだろwwwwwww もうマジで いいや
250 :
224 :2012/05/19(土) 01:30:49.97
タスクシステムは使わなくても良いと思う。 普通にfor文などで良いでしょう。 マルチスレッドはゲームの場合は専らデータの裏読みですかね。 読み込みが終わるまでは低解像度のテクスチャで置き換えたり、 画面手前側から読み込まれるようにスケジューリングしたりと、 結構面倒そうだ。そして楽しそうでもある。 そうはいっても、裏読みは相互作用が少ないからまだ隠蔽しやすい方だろうね。 でも、個人レベルではまずメモリに載り切らないほどの絵を用意できないし、 裏読みの必要はないだろうね。 というわけで、マルチスレッドを使う必要もないし、 リッチなシェーダーや描画エンジンを書くわけでもないし、 当たり判定や物理周りもライブラリに丸投げするなら、 ゲーム作りで話題に挙げる技術要素はまるで無いわけで。 その意味でuyは他人に迷惑をかけているんだと思うよ。
251 :
uy :2012/05/19(土) 01:45:15.19
つうかゲーム作ってきてない奴が、 ずっとやってきた奴が「こうしたほうがいい」っていってるその意見を 何の根拠もなく、経験もないのに否定して、思わせぶりな妄想垂れ流すなって話だと思うよ 俺が今まで何千時間とやってきた上での設計を、 経験0時間の奴が否定するって 冷静にそれを考えろよ お前は教わる立場、設計について語れるフィールドにきてない 初心者がおおそうだから、その為にゲームプログラムスレに、わざわざハッシュについてそろっと書いて ここでも教えたんだよ >当たり判定や物理周り を、 これwwをwww再発明したって何の意味もねーだろwwwwww ゲーム作りでもっとも大変なのは仕様変更に強くする設計作りだカス そして次に開発速度 大勢で開発する手法が、 個人でもっとも開発効率の出せる手法だと勘違いするな 個人ゲーム開発であれば自分専用の設計にカスタマイズしない限り まともな規模のゲームは個人で絶対に作れない 普通にオブジェクト指向()とかでかいてたら、どれだけの時間がかかるか知れよマジで。OO厨共 じゃあな
252 :
uy :2012/05/19(土) 01:47:23.24
結論でた OOは間違い
254 :
224 :2012/05/19(土) 02:19:55.63
個人で作るゲームに設計なぞ要らんから、 さっさと絵と音と音楽作ればよい。 そうすればこの板に来る用事もないだろう。
255 :
uy :2012/05/19(土) 02:24:09.51
>>252 は偽
>>253 お前もどんだけだよ、
マジで本当に再確認した
どんだけハッタリかまわしてレスしてんだよこの板の奴は・・・
俺は早いところ技術の伝承をしたいんだよ
この重荷は一人で背負うには重い
何を知ったか、わかってくれとはいわないが、「ある事を知った」事は、わかってくれ
途中でどこかで俺が死んだら、多分この技術が途切れる
そう思うと1秒たりと時間を無駄には出来ないような気分になるし、さっさと、他の奴にもこの荷を背負って欲しい
きついんだよこれ、人は数字に弱いけど、再帰構文にはもっと弱い
もういい
十分ソースはばらまいたし、誰かには伝わっただろか
完成品を実名なりハンドルで晒す前に技術の伝承もあるまいよ
257 :
uy :2012/05/19(土) 02:26:20.20
何で俺のとこにこうも、大変なことが集中するんだよこの世界は マジでふざけすぎ・・・
258 :
uy :2012/05/19(土) 02:29:55.07
本当にきつい 重い
259 :
224 :2012/05/19(土) 02:38:52.02
そりゃ病気の人はそう思うだろうね。 何で自分ばかりって。
261 :
uy :2012/05/19(土) 09:15:50.93
今お前らがいってんのは
Rubyでいうイテレータのdelete_if、reject、selectの仕組み
何を必死に劣化実装について良し悪し言ってんだよ
C++使うにしたって、RubyにあるイテレータがC++にあるかないかとか、
rubyと同じようにイテレータ実装しようとか考えろよ
ペチパーみたいな実装だよそれ
>>227 雑談スレや初心者スレで会話してろってレベルだアホ
なんで設計の話をしている時に、実際に使われる実装の話で勝ち誇られるんだろう?
263 :
uy :2012/05/19(土) 09:27:46.89
あれだ・・・ 次に俺と話す事があったら C++だったらせいぜい1万行は超えるソースを シーン構造とタスクシステムは実装されてるゲームを作ってから話しかけろよ 経験0の奴でいつまでも開発始めない奴に何かを教えれるとは思ってない
264 :
uy :2012/05/19(土) 09:29:13.94
>>262 レスにもなってねーよそれ
勝ち誇ってるように見えるなら、お前は巻け誇っちゃったのか?
ただ教えてやってるだけに過ぎない
Rubyやった事ないんだろ
はいはい、さっさと開発いって問題を知れと
すべての話はそれからだ
これ以上は無意味
265 :
uy :2012/05/19(土) 09:55:14.23
経験ないのに自分の考えた1度も使われた事もないゲーム設計を押し通してるだけじゃ 俺から何も教えられる事はなかったよ 同じように間違えてる奴をみて安心するな まず213で質問してきたのはなんだったんだって話 技術が欲しかったんじゃないのかと 土日なんだから何か作ってみれば、 どの言語でも読めるから、ソース晒すなら採点してやるよ
経験ってどのぐらいのモノを言うのですか? 商品レベルのものを作らないとダメですか?
どどど(略
uyにマジレスしてる奴は何なの?
>>255 > 人は数字に弱いけど、再帰構文にはもっと弱い
そうだな、おまえのまわりではそうなんだろう。おまえのまわりではな。
270 :
uy :2012/05/19(土) 11:33:22.65
結論でた OOは俺には10年早かった もう来ませんわ
271 :
uy :2012/05/19(土) 13:19:20.09
>>247 >ゲームは作らんから知らんが
ここで終わってるwwwwwwwwww
272 :
uy :2012/05/19(土) 13:20:52.84
247 == 224 まとめ ゲームは作らんから知らんが、俺はOO厨ではないので、 ゲームは作らんから知らんが、少なくともエフェクトオブジェクトっていう言い方はしないし、 ゲームは作らんから知らんが、エフェクトオブジェクトも作らないね。 ゲームは作らんから知らんが、エフェクトって言ったって千差万別だし、 ゲームは作らんから知らんが、そんな中途半端なクラス作ったって意味ない予感がする。 ゲームは作らんから知らんが、拡大したりフェードアウトしたりのコードがそこまで面倒だとは思わないし、 ゲームは作らんから知らんが、都度都度自由に書けたほうが良いんじゃないのかね。 ゲームは作らんから知らんが、ツクール使ってるわけじゃないんだからさ。 ゲームは作らんから知らんが、シーケンシャルな処理にそこまで気を使わなくても大丈夫だよ。 ゲームは作らんから知らんが、やりたい事をやりたい順にダラダラ書いてけば良いじゃない。 ゲームは作らんから知らんが、今専ら問題なのはシーケンシャルにならない処理をどう書くかだろうね。 ゲームは作らんから知らんが、みんなそうだと思うよ。マルチスレッドを如何に隠蔽するかは楽しい話題だね。 Complete(0) ゲームは作らんから知らんが、
273 :
uy :2012/05/19(土) 13:22:26.75
ゲームは作らんから知らんが、タスクシステムは使わなくても良いと思う。 ゲームは作らんから知らんが、普通にfor文などで良いでしょう。 ゲームは作らんから知らんが、マルチスレッドはゲームの場合は専らデータの裏読みですかね。 ゲームは作らんから知らんが、読み込みが終わるまでは低解像度のテクスチャで置き換えたり、 ゲームは作らんから知らんが、画面手前側から読み込まれるようにスケジューリングしたりと、 ゲームは作らんから知らんが、結構面倒そうだ。そして楽しそうでもある。 ゲームは作らんから知らんが、そうはいっても、裏読みは相互作用が少ないからまだ隠蔽しやすい方だろうね。 ゲームは作らんから知らんが、でも、個人レベルではまずメモリに載り切らないほどの絵を用意できないし、 ゲームは作らんから知らんが、裏読みの必要はないだろうね。 ゲームは作らんから知らんが、というわけで、マルチスレッドを使う必要もないし、 ゲームは作らんから知らんが、リッチなシェーダーや描画エンジンを書くわけでもないし、 ゲームは作らんから知らんが、当たり判定や物理周りもライブラリに丸投げするなら、 ゲームは作らんから知らんが、ゲーム作りで話題に挙げる技術要素はまるで無いわけで。 ゲームは作らんから知らんが、その意味でuyは他人に迷惑をかけているんだと思うよ。 Complete(0) ゲームは作らんから知らんが、
274 :
uy :2012/05/19(土) 13:26:18.46
ゲーム作りで話題に挙げる技術要素はまるで無い とか思ってるなら ゲームPGでも確実に苦戦するキーコンフィグ画面を作ってみろよwwww
276 :
uy :2012/05/19(土) 13:46:02.05
タスクシステム
キーコンフィグ
ネット対戦
シーンの管理
仕様変更できる柔軟性
入力関連
当たり判定
このあたりがゲームの難関
>>275 は?
いいから作ってみろよ「キーコンフィグ画面」を。GUIで。
1P、2P、決定キー、キャンセルキー、あとキーコンフィグ設定ファイルw
設定保存しますか? はい いいえ のダイアログ
で、決定キーとかZだけじゃなくて、RETURNやPADの1キーにも対応させたりしないといけないから
そのKeyMapなんちゃらも改良して、Arryをまず引数に取れるようにして、
ああきりがない
なにファビョってんだuyは。ゲームスレでスルーされまくっとるせいか?
キーコンフィグが難関とか。勘弁してくれ。 とても低いところにハードルがあるんですね。
279 :
uy :2012/05/19(土) 15:46:26.24
御託はいいからはやく作れ 仕様: 複数プレイヤー用(コンフィグファイルいくらでも追加可能な事) ボタン6個 + 十字キー パッドの上下左右とキーボードのUPDOWNLEFTRIGHTを同期させる事(その逆も) どんなキーコンフィグを行われたとしても、RETURNキーとESCAPEだけは決定とキャンセルに使えるようにさせる事 ユーザーにわかりやすい操作方法と、GUIを作る事 キーコンフィグはゲーム内GUIで「まともなもの」を作るのはマジで難関 だからゲームプログラムとは別に、キーコンフィグ設定プログラムを付属してキー設定させたりするんだよ そっちほうがはるかに楽になるから 月曜までに作っとけよ
そりゃ全部一本にゃせんだろ。ナニ言ってんだ?
281 :
uy :2012/05/19(土) 15:58:03.65
御託はいいから はやく 俺は今日の午前中にもう8割終わってる
282 :
uy :2012/05/19(土) 16:02:35.17
作れないなら二度と話かけんなよ
283 :
uy :2012/05/19(土) 16:07:59.69
ここまでかいた、続きは貴様らの仕事 お得意のオブジェクト指向でやっていいよ class (笑い) KeyConfig { int key; }
uyはゲーム作りは素人として、 普段何作ってんの?
経験ってどのぐらいのモノを言うのですか? 商品レベルのものを作らないとダメですか?
286 :
uy語録 :2012/05/19(土) 16:32:42.48
当たり判定や描画エンジン、ローレベルすぎて話にならない。 車輪の再発明、意味無い。 >では、何を作っているのですか? エディットボックスです。 一から実装しています。 ポトペタな君たちとは違います。
だってuyって、いつも自称8割終わったで先が無いじゃんw
288 :
uy :2012/05/19(土) 16:47:30.17
もう終わりでいいかね 技術的なレスのない人形に話かけるのも飽きてきた 割とまた忙しくなってきたわ 気持ちの方が
>>279 煽りたいだけなら、お前が月曜日までに物を出せばいいんだ。
出せれば煽り放題、出せなければ口だけのクズ。
じゃ、がんばってねw
291 :
uy :2012/05/19(土) 16:59:10.70
>>289 出来なければ罵ればいい
まあ余裕だみとけ
292 :
uy ◆XyI.y.UDsI :2012/05/19(土) 17:37:06.08
>>284 言っとくけど、俺はこれだけプログラミングは出来ても
技術者とかプログラマとかいう部類にはいない
普段作ってるもの?
そんなものは、プログラム以外のものだよ
プログラム関連でゲ製作以外にやってる事といったら
クラック関連になる、何も作りはしない ただ気に入らなかったら壊すだけ
あれ、いつぞや現役とか言ってなかったかw
やっぱ現役だったわ
>>292 それはすなわち
素人ってことですか?
いや、見れば分かるのですがw
296 :
189 :2012/05/19(土) 20:29:42.46
>>260 ただFieldによるGameObjectに対する操作をインターフェイスを介して行うことで
インターフェイスを実装していないオブジェクトに対しては処理をスキップすることができる
class GameObject
{
Location location
}
interface IMovable
{
UpdateLocation()
}
class MovableObject : GameObject, IMovable
{
Velocity velocity
UpdateLocation()
}
class Field
{
Do() { foreach IMovable i in objects { i.UpdateLocation() } }
}
297 :
224 :2012/05/19(土) 21:01:36.05
何言ってるんだろう。 スキップするなら始めからリストを分けとけば良いじゃない。 std::list< HogeInterface * > hoges; std::list< PiyoInterface * > piyos; ゲーム以外の普通のアプリもこうやって書くものだし、 そうしない意味がわらないね。
てか設定ファイルの読み書きもあやしい奴になんて大人げないんだおまいら
299 :
uy :2012/05/19(土) 21:36:04.18
300 :
uy :2012/05/19(土) 21:41:23.45
まぁわかったつもり会話したいんだったら勝手にスレ使え つもり(偽者)からでも実力はつく場合はある 俺の今日の教訓は 偽者のほうが圧倒的に価値がある そこに本物になろうという意思があるだけ 偽者のほうが本物よりも本物だ このタイミングで偽者語みたのはやばかった 技術的には本物になってしまった俺よりも、 より本物らしくレスをしようとしているお前らの方が本物だよ よかったな・・ 本物よ
301 :
224 :2012/05/19(土) 21:41:25.66
297は俺だけど、それ以外は他人だな。 みんなに同じ指摘受けるから、全員同じ人だとか思っちゃったの?
302 :
uy :2012/05/19(土) 21:43:07.17
>uy てか、コテやめてくんない? 発言もたいしたことないし プログラムなんてそんな好きじゃないのにじみ出てて気分悪いんだけど? 荒らし以外の効果産んでないから 名無しに戻って発言で差をつけるようにしてよ
304 :
uy :2012/05/19(土) 21:45:05.00
I K N が苦手らしいな 人差し指でもケガしてんのか
305 :
uy :2012/05/19(土) 21:47:03.70
>>303 よし、ここはお前のスレだ
自由に使っていいぞ
偽者は退散しよう
それと、プログラム言語1個しか覚えてねーようなガキんちょがあんまり本物相手にほえるなよ
力の差を知れ雑魚が
このキチガイぶり・・・ 本物だ!
307 :
224 :2012/05/19(土) 22:05:03.47
>>302 いや、残念ながら違う人だよ。
少なくとも、その中で俺の書き込みは
>>297 だけ。後は知らん。
もっとも、脳内世界の住人の君にとっては、
正しく現実世界を認識することは興味の範疇でないだろうが。
キチガイ対決やめて!
>>303 >>uy
>てか、コテやめてくんない?
>発言もたいしたことないし
真実すぎてわろた
310 :
uy :2012/05/20(日) 08:49:29.76
真実というよりも 切実すぎて心を動かされたwwwwwwww
311 :
uy :2012/05/20(日) 08:50:17.21
どんどん書き込めよ スレ速が遅いから俺が書き込む暇を与えてんだよ 書き込めカス
312 :
デフォルトの名無しさん :2012/05/20(日) 11:03:20.30
mruby始まりすぎワロタ
これはひどい
すげえ
316 :
189 :2012/05/20(日) 13:03:25.18
>>297 そう書くとインターフェイスを追加するごとにリストを用意して管理する必要が出てくるので煩雑になる
>>316 それはプログラムで省略すべき箇所を間違えてないかな?
ホーミングミサイルの例もそうだけど共通化する意味ないじゃない
オブジェクト指向の受け取り方にもよるんだけど
ゲームの個々のオブジェクトが出揃ったらシーン内でのオブジェクト同士の関連まで
サポートしてくれないだろオブジェクト指向は
クラス設計を拡大解釈しちゃったけど
そもそもその目的が明確になってないからオブジェクト指向っていう
謎な概念だけが一人歩きしてわけのわからないシステムになっちゃった感じ
実際、すべてのインスタンスを管理する神クラスなんて作ってもなんらメリットない
逆にごった煮なんかにした分今度は仕分けるのがやたら大変なだけっていう・・・
誤爆 レス先間違えw
いやw スレから違ったw
321 :
uy :2012/05/20(日) 19:05:52.46
322 :
uy :2012/05/20(日) 19:11:49.40
低スキルは二度と俺に話しかけるなよ
323 :
224 :2012/05/20(日) 19:18:50.11
324 :
uy :2012/05/20(日) 19:27:17.24
二度と話かけんなよ
断るw
326 :
uy :2012/05/20(日) 20:00:36.19
は?二度と話かけんなよ
327 :
189 :2012/05/20(日) 20:13:29.79
たとえば class MovableObject : GameObject, IMovable class Missile : MovableObject class HormingMissile : Missile, IIntelligent とすれば Do() { foreach IMovable i in objects { i.UpdateLocation() } // MissileもHormingMissileも移動する foreach IIntelligent i in objects { i.Operate() } // HormingMissileだけ演算する } という風に書ける。 後で新しいインターフェイスを追加するにはforeachを書き加えるだけですみ、 更にこれをデリゲートにして動的に差し替えるようにすれば実行中にルールを変更できる。
328 :
uy :2012/05/20(日) 20:27:55.49
ようはさ
何度もいってるけど 「バランス」 だからね?
そこの実装が224方式でも189方式でも別にかまわない
そこの実装をそういう風にすることによって、別の場所が
それに見合った設計やコードになっているかどうかが重要なわけで
一箇所だけの書き方でごたごたいっても無意味
そして極めつけは
>>247 >ゲームは作らんから知らんが、
さて、、、おれはそろそろいかねば
329 :
uy :2012/05/20(日) 20:31:41.20
二度と話かけんなよ
331 :
uy :2012/05/20(日) 20:59:47.80
ないよ。 189は成長途中 これからもゲームプログラムについて考え続ける気があるなら、多分3ヵ月後の 189は全然違う事言ってるはずだよw
自分の構築したシステムが一体なんであるか考える癖をつけたほうがいい 目的は 開発工数の削減なのか、 シンプルな記述なのか、 使用者に分かりやすいインターフェイスの提供なのか、 実行速度なのか、 ・ ・ ・ なんの目的も達成してないもの作られても反応に困る
333 :
224 :2012/05/20(日) 22:35:55.76
>>327 どうしても面倒だったら、こういう手もある。
template< typename t >
std::list< t * > &ty_col() //type collection
{ static std::list< t * > lst; return lst; }
template< typename t >
struct auto_type_collector
{
typename std::list< t * >::iterator itr;
auto_collector(){ ty_col<t>().push_back( (t *)this ); itr=--ty_col<t>().end(); }
~auto_collector(){ ty_col<t>().erase( itr ); }
};
struct my_interface{};
struct game_obj
:public auto_type_collector< game_obj >
,public my_interface, public auto_type_collector< my_interface >{};
334 :
224 :2012/05/20(日) 22:41:12.29
だけど、
>>332 の方法はお勧めはしないね。
少々面倒でも、セオリー通り、型や機能や用途ごとにリスト
を作ってくのが早道だと思う。
335 :
uy :2012/05/20(日) 22:42:08.52
>>333 224
おまえさあwwwwwww
まずゲーム作ったことねーんだろ
さらに、何そのC++勉強中ですみたいなコード
少なくとも189のほうがお前より上だよ
336 :
uy :2012/05/20(日) 22:47:05.88
>>247 ゲーム作った事のないC++勉強中の224と
ゲームプログラムの設計で試行錯誤で成長途中の189
の初心者同士のハッタリwwwカマかけあいwwwwwwww
みてて痛々しいからもうどっちか引っ込めよwwwww
今の時代にC++でテンプレート使ってイテレータ使ってSTL使ってゲーム作ってる奴なんていねーよ
最低でもC#だろバカwwww
いるとしたら、ただの老害か、過去のC++遺産が多いからC++やってるだけの奴
流されるなよガキんちょ
337 :
uy :2012/05/20(日) 22:49:53.95
224よ
お前は
>>247 ここで終わってるんだよ
uyよ おまえうざい チラウラならブログ作ってやれ
たしかに安価ミスの発生頻度が高いのはPGの能力も怪しくなるな しねーよーな対策を施せないのはまずい
341 :
uy :2012/05/20(日) 23:54:16.40
ROMるつもりだったけど
流石に
224、189の、会話してる両方が両方とも初心者でブチギレた
でも189は初心者っつっても、ゲームプログラムを作っている事は事実
そして設計について考え込んで(今は考え込みすぎて設計がカオスになって)いることは努力してきたって事
でも224
お前はちがうよ
>>247 ここでwwww作ったことありませーんw 宣言してるのに、なんで先人の教えをちゃんと聞いてないんだよ
それじゃいつまでたっても技術つかねーよお前
342 :
uy :2012/05/20(日) 23:55:25.38
だってお前は、教わる立場なのに
>>333 >どうしても面倒だったら、こういう手もある。
はぁ?
クソスレになってるな どうしてこうなった
345 :
uy :2012/05/21(月) 10:14:11.23
会話したいっていうから、俺は俺自身の技術を晒さないようにして 聞き手に周ったらこうなった 明らかに俺の方がまともな設計書けるのに、それを無視し それよりもはるかに下にいる奴ら同士で意味不明なやり取りして何がしたいんだろうか そして、どのような答えでまとまるのかw 興味深いので観察をしているところ
>>345 一つ助言しとこう。
おまえが数ヶ月一言もレスせずさえいたら
スレはマトモな流れになるぞ。
理由はわかるな?
348 :
uy :2012/05/21(月) 10:30:12.54
さっさと次のレスを書き込めよ
349 :
uy :2012/05/21(月) 10:41:36.01
>>333 つーか
お前マジでこんなソースでゲーム作ろうとしてんの?
何か感じない?俺がRubyであげたソースと比べて何かさぁ・・・
ほんとにC++は害悪だな
あ、「学習用」としては悪い言語じゃないよ
そこまでお前が突っ走った事は、別言語に乗り換えたときに良い経験になってるw
お前は、C++やめてそろそろ迂回したほうがいいよ
取り返しがつかなくなる前に
uy優しすぎワロタ
雑談スレ兼ネタスレなんだから気楽に行こうぜ
ところでもう月曜日だよなw
352 :
uy :2012/05/21(月) 12:28:45.84
つーか設計とかよりもっと上位の話に以降すんぞ 仕様変更に強いゲームソースを書こうとすると 全てのパラメータを変更できるようにしなくちゃならなくなるから どこかのメソッドにまとめてそれを呼び出すって事が出来ない それをやろうとすると、メソッドに対しての引数がどんどん増えていく、普通に 全ての仕様変更に対応させようとすれば、それが20とか30とかになっていくというか、仕様が増えるたびに引数が増える ハッシュやオブジェクトで渡すとしても、新しいメンバ変数が増えるのならメソッド側に処理を追加なので どんどんヤバイ事になって古いコードとの結合がとれなくなってくる ので、それは多分絶対にやっちゃいけない それをやった場合は、仕様変更はもう「ある程度」、しか出来ないと考えるべき だから最終的には1回1回その場にパラメータは書くことになるけどかなり冗長する 個人製作ゲームの場合って、仕様変更は自分の意思だから、 仕様変更に多少弱くしてでもソースコード量減らすべきかな どうでしょう?
そこでオブジェクト指向ですよ
354 :
uy :2012/05/21(月) 12:34:28.48
俺様のソースコードの場合、ほぼ全てのパラメータはいじろうと思えばいじれるソースになってるけど 思ったんだけど、「たった1人でそこまで全部のパラメータいじってゲームバランス調整なんてできっこない」www いくらパラメータいじれるといっても、人1人の作業量には限度ってものがあった 少しずつ仕様変更などをあきらめていくべきなのかどうか なんらかの処理に対して、特に指定しなければデフォルトの処理とか、いくつかの テンプレートを作り、雛形の処理を選択式っていうのも有りではあるんだけど 多分それは、後々テンプレートは全て無駄になる事と、せっかく仕様変更に強くしたのに自分から弱くするコードを書く意味 けれど、ほぼ99%くらいの確率で こんな膨大なソースコードのバランス調整などまずしない気がしてきた 1箇所の変更で多くの場所も全部変わってしまうような、仕様変更に弱いプログラムの方が 作業時間は減る さてこまった 仕様変更対応力と、作業効率 今は仕様変更対応力のほうを強くしたソース もう少しこのままでいく予定
355 :
uy :2012/05/21(月) 12:35:29.39
>>353 オブジェクト指向関係ない
ゲーム全てのパラメータを孤立させてる
どこと、どこのゲームパラメータも連動していない
だから仕様変更には強い
でも作業時間が足りない
これは、いくつかを連動させるべきかという話だ
356 :
uy :2012/05/21(月) 12:41:49.98
結論、何も考えちゃダメだ
言い訳w
facade
だから、オブジェクト指向ですよ
360 :
uy :2012/05/21(月) 15:17:22.75
馬鹿は黙ってろ
361 :
uy :2012/05/21(月) 15:41:55.59
このスレでゲームがどうのとかいってる子はどこまで作業進んでいるのかな 俺は、今回は昔のドット絵とか すべて流用なしで作る気だから、そこからだわ ソースコードは6000行を突破、ファイル数50 立ち絵を、最低78枚描かないといけない、 1/78終わって2枚目に入ってる ドット絵の数は、何枚かくんだろうな とりあえず自機ドット絵の3枚が描き終わったところ 一応、背景や効果音はフリー素材で埋め合わせしてるけど後で全部自作するつもり 効果音は作れるとしても BGMだけが問題だな で、貴様らはどのくらいすすんでんの
もう月曜日終わっちゃうよ。
363 :
uy :2012/05/21(月) 16:17:43.74
今日は休み もういろいろ やばい
ゲームスレたってないのか
365 :
189 :2012/05/21(月) 18:21:48.87
>>334 それは詳細設計書が目の前にある場合のセオリーだろう
366 :
224 :2012/05/21(月) 20:41:35.16
関係ないと思うけど。何か勘違いしてたらいやだけど、 コレクションを用途や目的で使い分ける→必然的にインターフェースごとに「も」分かれる だよ。 「ああする」リストには「ああする」インターフェースが入ってるはずだし、 「こうする」リストには「こうする」インターフェースが入ってるはずだからね。 >それは詳細設計書が目の前にある場合のセオリーだろう むしろ詳細な仕様が無いからこそインターフェースで纏める必要がある。 そうしないと本当にカオスになるから。 逆に仕様がガチガチに固まっているのなら、 ハードコーディングだろうが型スイッチだろうが構わないだろう。 ダウンキャストは型スイッチだから、君の方式は後者だね。
367 :
uy :2012/05/21(月) 21:13:10.29
とりあえず、さ 「親子関係を持つタスクシステム」今度は書いてみ
368 :
uy :2012/05/21(月) 21:14:43.27
俺はお前たちが無駄レスしてる間に 立ち絵2枚仕上げてきた はあ死ぬ あと最低76枚くらい
369 :
uy :2012/05/21(月) 21:24:57.24
親子関係を持つタスクシステムっていうか、 ゲームプログラム()程度ではなく OSレベルの「本当に本格的な」タスクシステムを実装したいのであれば まずウィンドウを作って、その中でゲームを動かす事を考えてみ 複数のウィンドウを表示して、複数のゲーム起動 まで出来るなら その設計は正しいよ マジレスしてしまうと 個人で作成するゲームプログラム()ごときで、完璧なタスクシステムはいらない 適当に実装して適当にその上にゲーム内容作ればゲーム完成するよ でも君たちはゲームを作る為にタスクシステムを考えてるんじゃなくて完璧なタスクシステムを実装したいんだろ? だったらゲーム()ごときのフィールドで考えてないでOSのウィンドウシステムを考えろ
370 :
189 :2012/05/21(月) 21:56:54.58
>>366 FieldはGameObjectを所有しているのであってインターフェイスのコレクションとして参照しているのではないよ
371 :
224 :2012/05/21(月) 23:19:02.47
そんでそっからダウンキャストして使うんでしょ? それ、型スイッチって言って、大昔のC言語のプログラミングしタイルだよ。
>>354 どの程度の調整について話しているのか分からないので、的外れかもしれないけれど……。
ゲームバランスの調節にパラメータを弄るのなら、それ用のDSLを作るなり、
XML・CSVなどのテキストファイルを弄るようにしないかな?
373 :
189 :2012/05/22(火) 00:42:24.59
シューティングゲームの場合はともかくとして たとえばRPGやらSLGやらなんやら 「途中でセーブ」する場合、全部シリアライズしなきゃならないわけじゃん? ということはすべてのオブジェクトを1リストに列挙するわけだけど 逆に、実際にゲームを動かす時は 種類別のリストとか、ツリー状に展開するわけじゃん?
375 :
189 :2012/05/22(火) 07:25:06.41
>>374 その必要があればね
でもその必要があるかどうかはまだ分からない
376 :
uy :2012/05/22(火) 09:47:57.52
>>372 それはC++の場合(普通の場合)
スクリプト言語ではあまりそれをやる意味がない
XMLよりrubyのほうが簡潔にかけるし
どうしても外部にデータ置くとしてもrubyスクリプト
377 :
uy :2012/05/22(火) 09:57:19.09
つうかゲームの根幹部分は、どんな実装でもいいんだよ いつまでそこで立ち止まってる気だ?キチガイ共が ネトゲみたいなのは別として 普通のゲームプログラムごときで多機能なタスクシステムいらないから 完璧なタスクシステムを実装したい欲求あるならゲームじゃなくてOSのウィンドウシステムで考えろ
378 :
uy :2012/05/22(火) 10:01:48.10
>>247 >ゲームは作らんから知らんが、
224 == 247
379 :
uy :2012/05/22(火) 16:01:49.39
暇だったからmatzツイートでも読んでた
http://togetter.com/li/217552 我々が技術を身につけるのにどれだけの熱意を持ち、時間と労力を費やし、
実装するためにどれだけのアイディアを捻り出してきたかを、ほんの少しでも想像すれば、
自分に技術がないことで我々に仕事を押し付けようという態度は許容できないだろう
---
語尾にキリッつけたくなってきた
俺様としては、プログラミングなどネタだと思うのだ
俺様は決して自分がプログラミングできるからといって
素人相手にマジにはならない
ネタで煽りまくる事はあってもな
悪い事言わないから病院行った方が良いって。
381 :
デフォルトの名無しさん :2012/05/22(火) 17:45:17.27
sssssssssssssssssssss
382 :
デフォルトの名無しさん :2012/05/22(火) 20:00:56.83
ssssssssssssssssssss
383 :
デフォルトの名無しさん :2012/05/22(火) 20:01:29.06
ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
384 :
デフォルトの名無しさん :2012/05/22(火) 22:46:21.30
このスレってスレタイと内容関係ないのかな
結局、共通部品のバージョン管理もミサイルとホーミングミサイルの多態もできなかったな 出す課題出す課題まったく解決できないクズばっかりだったな やれやれw
名前欄戻すなよ NGできないだろ?
388 :
uy :2012/05/23(水) 00:24:35.62
日付もみれねーのかこのバカは 俺、内心ではrubyかなり応援してるからさ Matzの邪魔になるような事はやらないよ
>>388 ヘタレは言い訳ばっかだな
リツイートしろ
390 :
uy :2012/05/23(水) 00:45:28.02
ruby言語だけは認めてる俺としてはMatzがどこでどんな発言をしていようと さほど関係はないし 2.0に期待してる 今の俺様の人生の中でruby2.0がいつ来るかっていうのは、かなり上位に来る 楽しみのひとつだ 例大祭や、東方の新作より楽しみ やっぱ俺はこっちの人なのかなと思ってしまう 2.0に繰り上がるって事は、とりあえずMatzの中でやりたい事に一区切りがついたって 事だと思うから 俺はMatzの考え出した答えの区切りであるような、その2.0が見たい
391 :
uy :2012/05/23(水) 00:47:51.71
ヘタレでいいよ 直接Matzを煽る気はない ツイッター()とか、そもそもやってねえし 何が楽しいんだよ ツイッターやブログなんて自己顕示欲の塊じゃねーか
394 :
uy :2012/05/23(水) 00:51:04.53
すみませんリツイートってやったことがないのでわかりません^p^ ツイッターのIDってどうやってとうろくするんですか^^;;;;
2chでコテハンするのも自己顕示欲だと思うよ。
396 :
uy :2012/05/23(水) 00:56:14.68
397 :
uy :2012/05/23(水) 00:57:48.02
>>396 はい。わかりました^p^
まずツイッターのアカウント作ってきます ^^;;;;
>>390 なあ、お前邪魔だからRubyスレに帰れ
399 :
uy :2012/05/23(水) 01:05:40.61
意味がわからない 前スレも、このスレも最初から俺のスレだろうが で、俺がROMってたとしても189と224の意味不明な低レベルのやり取りが繰り返されるだけだろ? 何かあのやり取りって双方にとって意味あんのかよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
400 :
uy :2012/05/23(水) 01:07:16.50
>>247 >ゲームは作らんから知らんが、
224 == 247
作った事もないのに得意げにゲームタスクの作り方語っちゃってるテメーはなんなんだっていう
189も初心者++程度だが、論外初心者の224は発言権ねえよ
賛成
403 :
uy :2012/05/23(水) 01:11:11.57
>>247 >ゲームは作らんから知らんが、
224 == 247
同意
405 :
uy :2012/05/23(水) 01:15:29.41
どうしたんだお前? コンパイルエラーでも取れないのか そりゃC++とかかいてたらなぁ・・・ 俺、初心者に対してC++はやっとけってよく言うけど やりすぎてハゲるくらいならやんないほうがいいよw
クソコテ湧いてからロクなレスつかないな uyは頼むからもう来ないでくれないか
uyに餌やるな
Rubyみたいなクソ遅いおもちゃに 何か期待してる奴がいることが驚きだ まあネタなんだろうけど
Ruby信者は社会に出てRubyが使われてないって知ったら発狂しそうだな
エサやるな
みんな大好きgithubはRuby製
412 :
uy :2012/05/23(水) 01:25:13.97
413 :
uy :2012/05/23(水) 01:34:46.93
俺はMatzの考え自体に期待してる どうせ1.9からそこまで劇的には変わらないだろう ただ、どういった形で2.0リリースになるのか、どうまとめあげるつもりなのか そこに興味がある 君らにはわからないよね、期待してる場所がすっげー変な部分だとは認識してる でもずっと前から楽しみにしてる 俺がはじめてrubyに出会ったのは自分のやりたい事の出来る言語がないか探してる最中だった そして無かったら作ろうとしているその最中、rubyに出会い やりたい事の9割は出来た、 そしてまだその言語は成長中だと知ってテンションあがってきた 俺のやりたかった事の10割,つまり100%と、もしかしたら101%目に、rubyはいってくれて 俺の知らないものを見せてくれるのではないかとマジでちょっと、アレだぜ まぁ、たとえ91%や100%だとしても落胆はしないさ 俺様の「同意」を得られる言語を作れる人間が、この世界に存在したっていう事実だけで もうかなり満足してるw 速度とかそんなもん後からどうにでもなるんだよね 重要なのは言語設計のセンス、俺はそこしか見てない
エサやるな
418 :
uy :2012/05/23(水) 01:53:26.50
ほんとにrubyはじめてから プログラミング以外のことにも多くの時間を割けるようになった vipで祭りが起こってる時とかに、 rubyでさっとコードかいて文章の整形して書き込みとかもやったりする こんな芸当rubyだから出来るんだと思うよ 手動で文章整形よりもrubyでコードかいて文章整形したほうが速い 俺の中のrubyは、日常的に2chで遊ぶツールとしても使われてる
419 :
uy :2012/05/23(水) 01:54:35.07
ねみい スレ使いたいのか? じゃあ使えよ ほら、書き込め ただし、 224と 189の無意味な会話は終了な 無意味な会話を続けるな、次の話題にいけ
エサやるな
Ruby使うとキチガイになるみたいだな
なにこのキチガイ
エサやるな
425 :
uy :2012/05/23(水) 01:59:00.21
さっさと喋れよ 次の話題はなんだ
class GameObject class Missile : GameObject class HormingMissile : Missile OO使いならこう書いて始めて一人前
427 :
uy :2012/05/23(水) 01:59:37.58
426 もうその話題はいいからwww飽きたwww次いけ
>>426 それすら出来ない奴が発狂するからやめれ
GameObjectのメソッドはなんぞ
流石に同じ話題のループは
なんか無理にこのスレを盛り上げようと?してる奴いるけど何がしたいん
お題 アイスクリームをモデリングせよ バニラとかストロベリーとかレモンとか 半球のスプーンでぽこぽこ積み立てるアレね
だから何がしたいんだお前
あのさぁ、何に使うかも分からないのに、どうやってモデリングするのよ。 そういうのがOO脳なんじゃないの? 単に物をモデリングしているわけじゃないんだよ。 機能をモデリングしているわけで。
435 :
uy :2012/05/23(水) 02:12:43.92
warota
436 :
uy :2012/05/23(水) 02:18:29.79
冗談だよ
>>434 それを考えるところにセンスが求められてるんだよ
class GameObject class Missile : GameObject class HormingMissile : Missile やはりコレだな
お題 キチガイをモデリングせよ
あのさぁ、何に使うかも分からないのに、どうやってモデリングするのよ。 そういうのがOO脳なんじゃないの? 単に物をモデリングしているわけじゃないんだよ。 機能をモデリングしているわけで。
>>440 キチガイには使い道がないので
その質問は却下とさせてください
1)IGameObjectインターフェースをもつゲームオブジェクト群 2)それぞれのクラスは機能が固定される(剣Aクラス、ポーションBクラス)が、 クラスメンバーとして指定すれば複数の子あるは子の配列を持つことができる 3)親子関係は双方で参照でき、必ず相互から参照していなければならず、 片方からのみ参照することを許してはならない 他から参照されない孤立したインスタンスもゲームオブジェクトとして使用する 4)リフレクションを使わずにすべてのオブジェクトをバイト列に変換、また復元できる もちろん参照=親子関係も復元しなければならず、 ビルドの違いにより読めなくなってもいけない と、こんな感じで組んでみたけど デザパタとT4テンプレート使いまくらないと書けなかったよ
public interface uy{}
444 :
uy :2012/05/23(水) 09:49:41.28
親子関係は木構造にしてないとそこは死ぬほどソースが増える場所だから また俺の得意分野振っただけだよ、 そしてお前らOOのフラットなソース書いてる奴らの不得手な分野 普通のタスクはこうだけど、 object_list.each { |i| i.function() } 木構造にすると、まずそこが再帰になる(概念的には) def task_system object_list object_list.each { |i| if i.task.size > 0 task_system i.task end i.function() } end まぁ俺はこんな直接的に再帰は使ってない もっと多くのメソッドを仲介した再帰になってる 勿論人間に流れが追えるとか思ってない 木構造はそういう世界 でも木構造にしないと、ソース総量増えるし「お互いを参照」する為の変数や、親子関係を表す変数や 最低でも3つが必要になって、オブジェクト生成にそれらを毎回、正しい引数を与えて作らないといけない さぁ泥沼へようこそ
やっぱ二度と話かけんなよ
OOをキチンと理解できないとこーなる
>>444 ので気をつけてね
447 :
uy :2012/05/23(水) 12:37:44.54
俺様が貴様らに伝えたい事は ゲームごときで完璧なタスクシステムは必要にならない事と 完璧なタスクシステムは木構造であり 慣れないととても流れを追うことは出来ない、非実用的な代物だという事
448 :
uy :2012/05/23(水) 12:39:03.76
>>446 ここまでオブジェクト指向でも実装できる
やれると思うならやってみろ
お前も化けることが出来るかもしれないぞ
OOをキチンと出来ないと支離滅裂なこと言い出すuyのようになる
450 :
デフォルトの名無しさん :2012/05/23(水) 12:42:37.49
はやくやれよ
451 :
デフォルトの名無しさん :2012/05/23(水) 12:43:14.99
はやくやれクズ
452 :
デフォルトの名無しさん :2012/05/23(水) 12:44:54.16
早く
エサやるな
俺ruby興味あったけど、、、損した気分だわ。
455 :
uy :2012/05/23(水) 13:29:27.34
3倍あいすくりいいいいいいいいいいいいいいいいいむwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
uy.rb
457 :
デフォルトの名無しさん :2012/05/23(水) 13:39:47.97
はやく
458 :
デフォルトの名無しさん :2012/05/23(水) 13:40:14.77
はやくしろ
459 :
デフォルトの名無しさん :2012/05/23(水) 13:41:03.63
さっさとやれ
460 :
デフォルトの名無しさん :2012/05/23(水) 13:41:32.41
早く
461 :
デフォルトの名無しさん :2012/05/23(水) 13:41:59.63
早くやれ
462 :
224 :2012/05/23(水) 13:53:13.37
コンポジションは木構造だし、木構造は珍しくも無い。 変な基底クラス作ってupdateの自動呼出しとかしてたら地獄だが、 アルゴリズムとデータ構造を分けて考えられる頭があれば地獄にはならない。
463 :
デフォルトの名無しさん :2012/05/23(水) 15:56:53.18
だったらさっさとかけよ
464 :
uy :2012/05/23(水) 16:03:35.17
元々タスクシステムっつったら木構造なんだよ フィールドオブジェクトの下にあるのは自機オブジェクトで 自機オブジェクトの下にあるのは自機ショットなのだから んで本来、グローバル変数や引数にしなければならない類の 敵オブジェクトや自機オブジェクトの両方から参照しなければならない共通データ それはフィールドオブジェクト、つまり自機や敵機オブジェクトの1個上のタスクにあるので 参照が容易になり、 グローバル変数も引数もいらなくなるという仕組み わかったか?ゴミカス フラットなタスクシステム書いてる時点でヘタレ
465 :
uy :2012/05/23(水) 16:04:40.70
466 :
uy :2012/05/23(水) 16:18:23.36
>>462 そんな話してねえからさっさとやれ
出来る出来ないとか聞いてねえからさっさとかけよ
468 :
224 :2012/05/23(水) 17:13:43.39
結局のところは、誰がUpdateするかという問題でしかない。 敵の放った弾は、敵消滅後もUpdateが必要なので、シーンクラスがUpdateするのが適当。 逆に、敵の持ってる武器は、攻撃アニメーション後の武器が壁にめり込んだかどうか当たりを取って、 敵の位置を調節、もしくは攻撃のキャンセルなど、多彩な相互作用が発生するので、 敵自身がUpdateを担当する必要がある。 だから、オブジェクトが他のオブジェクトを持ってて明示的にUpdateを呼び出す場合は、 副作用の順番を明確にして濃密な相互作用をしたいってのが前提にあるから、 do_update( obj ) //子オブジェクトを全て更新 こんな外から与えられた画一的な再起関数一発で列挙→更新してしまっては、 列挙のされ方や更新順、前処理後処理、などなどを、 オブジェクトについてカスタマイズ出来ないので、おおよそ意味が無い。 せめて obj->update() //子オブジェクトも全て更新 こうする必要がある。
469 :
uy :2012/05/23(水) 17:14:00.64
誰のサイトだよそれ どこの馬の骨かもわからんサイトを信じ込むんじゃなくて ちゃんと優秀そうなプログラマのサイトから情報抜き出せ 一応オブジェクトをメッセージ駆動型にさせるのは90点の設計ではあるが 今、俺は100点の設計になる為の木構造について話してんだぞ
470 :
uy :2012/05/23(水) 17:36:34.99
思考途中の文章ほど無意味なものはないな とりあえず。生成されたタスクの実行順序とタイミングは不定であっても動くようにしろ そもそもタスクをまわしている A〜Cオブジェクトがあったとして、 AオブジェクトがDオブジェクトを生成したっつっても このときの動作は何種類かある 1 タスク(配列)にループに中にpushして、Cオブジェクトの次に生成されたDオブジェクトが動作する 2 タスクループ終了後にpushして、次回のループ時にDオブジェクトは動作する 3 またはA,B,Cの任意場所にDを追加、なので現在のループ中にDは実行されるかもしれないし、されないかもしれない 4 または、生成した直後に1度だけupdateも行い、次からはタスクループでupdate 4はかなり特殊 ここは普通にかいたら、A,B,Cの次にDが追加されるから A→B→C A→B→C→D このように、Aオブジェクトからみれば Dオブジェクトは生成してから実行されるまでに1フレームの遅れが出来る ちょっとしたタスクシステムの実装の違いでエラー吐くようなコードをかくくらいなら、 どんな順序でタスクシステムが動いていても動作するコードをかけ
471 :
uy :2012/05/23(水) 17:43:49.52
俺様の実装の場合は4だった なので A→B→Cで動作してるタスクにおいて、AがDオブジェクトを生成したら A→D→B→C と一度実行され 次回からは A→B→C→D となる ただ別にここら辺は意識しないでもうごくコードを心がけてる
眠い。
http://www.cyzo.com/2012/05/post_10637.html スウェーデン「非実在青少年」裁判の当事者を直撃 過剰な表現規制が生み出す冤罪の構図とは
漫画は児童ポルノに該当するのか――。スウェーデンの最高裁判所で、日本のエロ漫画を
所持し逮捕された男性の裁判が5月16日から始まった。この事件、問題は単に漫画が児
童ポルノに該当するのかどうかということだけではない。日本でも導入を求める声がある
「児童ポルノ」所持の禁止がもたらす冤罪の可能性が現実になったものといえる。現在、
裁判を争う当事者の男性を取材した。
この男性は日本漫画の翻訳者で、スウェーデンでも指折りの漫画専門家として知られる
シーモン・ルンドストローム氏だ。
彼は「児童ポルノ」を所持していた容疑者として逮捕されてしまったのだが、
直接の逮捕容疑となったのは、彼がパソコンに保存していた 300枚あまりのエロ漫画の
ダウンロード画像だった。
警察は、保存されていた画像に描かれた女性キャラクターの胸の大きさに着目。
胸の小さな女性キャラクターを「児童」であると判断し、51枚を「児童ポルノ」としたのである。
(略)
■警察の児童ポルノ担当者まで有罪を非難
さらに驚くのは、ルンドストローム氏を逮捕した警察関係者からも有罪判決を非難する声が上がっていることだ。
「5月16日に最高裁の第一回目の裁判が開かれたのですが、その前日、スウェーデン最
大手新聞『Dagens Nyheter』で、スウェーデン警察の児童ポルノ担当のトップが『性的虐
待の被害に遭っている子どもたちを助けなければならないのに、イラストを捜査対象にし
ている場合ではない。被害に遭っている子どもたちと、空想のイラストで描かれたものを
同列に扱うのは、実際の子どもに失礼』と発言したんです。警察は、私の味方ですよ」(ルンドストローム氏)
最高裁が無罪判決を出す可能性も高そうだが、依然として予断を許さないのが現状だ。
「有罪にされても、スウェーデンが愚か者の国だったというわけですから、あまり気にし
ません。(有罪になったら)日本に行くことにします」(同)
ヘェーラロロォールノォーノナーァオオォー
475 :
uy :2012/05/23(水) 18:20:09.56
何やってんだよ・・・・・・ こういうので国名が出るってすげー恥ずかしいな
476 :
デフォルトの名無しさん :2012/05/23(水) 18:20:49.85
で、木構造タスクはかけたのか? 早めにやっとけよ
477 :
デフォルトの名無しさん :2012/05/23(水) 18:21:22.38
はやく
478 :
189 :2012/05/23(水) 18:29:58.75
ミサイルがダメージを与えるのではなくミサイルの爆発がダメージを与える class Explosion : GameObject, IExplosive class Missile { Explode() { DestroyObject( this ) CreateObject( new Explosion() ) } }
479 :
224 :2012/05/23(水) 18:35:28.32
そもそも、実行順の制御が糞だからタスクシステムは使わないわけだが、それは置いておいて。
手続き型言語は主に副作用で動作するから、実行順は極めて重要なわけで。
実行順が入れ替わっても動作するように書くことは、他との関わりを避けることを意味するが、
ゲームにしろ何にしろ、システマティックに他と連携して動くものなので、そんな議論は不毛だ。
極端に言えば、(2+3)*4と、2+(3*4)で答えが同じになるようにする意味は無い。何事にも順番はつき物。
>>444 が良い例で、子を更新した後に親を更新しているが、
通常、座標系のことを考えると、親を更新してから子を更新するのが普通だ。
しかし、必ずしも常にそうとは言い切れず、
処理によっては、子を更新してから親を更新するのが妥当な場合もある。
そのほかにも、親処理A→子処理→親B処理、など、複雑な処理順になることも多々考えられる。
あくまで処理順は処理内容の依存関係で決まるものなので、依存関係が有るのなら、
>>444 のように、画一的に木をたどって列挙→更新すればそれですむというものでは無いだろう。
予断だが、ヘボいタスクシステムのように、タスクに処理順番を割り振ってソートするなどは、もはや愚の骨頂。
uyにマジレスするのは不毛だと思うけど暇つぶしの一種ならおk
481 :
uy :2012/05/23(水) 19:23:34.97
>実行順が入れ替わっても動作するように書くことは、他との関わりを避けることを意味するが、
意味しない
存在しているかどうかの確認コードを常に書く
>予断だが、ヘボいタスクシステムのように、タスクに処理順番を割り振ってソートするなどは、もはや愚の骨頂。
それは正解
えっと、ね評価順序については
>>444 の
def task_system object_list
object_list.each { |i|
if i.task.size > 0
task_system i.task
end
i.function()
}
end
のこれはたとえ
def task_system object_list
object_list.each { |i|
i.function()
if i.task.size > 0
task_system i.task
end
}
end
こうなったとしても別にたいした意味はない
生成タイミングの1フレームの問題がからむの親子関係の部分じゃない
482 :
uy :2012/05/23(水) 19:37:57.74
親子関係でつながっているオブジェクト同士であれば、 .taskをみて直接eachすればいいだけだから
存在しているか存在していないかは一目瞭然で問題は起こらない
問題は、木構造で別の枝から伸びてる末端のほうのオブジェクトだ
フィールドシーンオブジェクトの中でプレイヤーオブジェクトを生成したときに、
フィールドで、プレイヤーのx座標、y座標などを表示するロジックを最初から実行しようって言うときなどに
1フレームの遅れに泣く事になる
だから俺は
>>470 において4の方法をとってる
これにより深さ優先順に木構造をたどっているので
末端のオブジェクトから動く仕組みになり
最初からフィールドシーンオブジェクトは、自身の子タスクのプレイヤーのx,y座標を手に入れることが出来る
お前みたいに親タスクから実行しようとすると、まだ子タスクが生成されてない時に
自身のもってるタスクから親タスクがデータもって着たいときに1フレで泣く事になるんだよ
ここまで、わかるか?
お前が考えてる場所で問題は起こらず、問題はもっと別の場所で起こるから
いいから木構造で。そろそろ実際に書け
483 :
uy :2012/05/23(水) 19:40:03.84
木構造タスクシステムにしない限りは1フレームの問題とか早々起こらないはずだから ここに対して意見をしたいのであれば自分でかいて自分の目で問題を見ろとしかいえない
484 :
224 :2012/05/23(水) 19:53:06.01
存在?何言ってるの? 親を更新してから子を更新するのと、 子を更新してから親を更新するのとで、 子が参照する親の座標値が変わる。 後者の場合は、一フレーム前の親の座標を参照する羽目になる。 >問題は、木構造で別の枝から伸びてる末端のほうのオブジェクトだ >フィールドシーンオブジェクトの中でプレイヤーオブジェクトを生成したときに、 >フィールドで、プレイヤーのx座標、y座標などを表示するロジックを最初から実行しようって言うときなどに >1フレームの遅れに泣く事になる 設計が悪いだけじゃねーの?つまり、処理順に泣いてるわけでしょ? そういう事態に陥らないように、明示的に処理順を記述しましょうっていってるわけで。 処理に依存関係が多い場合は、フレームワークで一括処理は役に立たん。
485 :
uy :2012/05/23(水) 20:09:40.29
はやくかけよ
486 :
uy :2012/05/23(水) 20:19:44.90
俺の場合は
>>470 の4で1フレの問題は解決済み
お前がこれから躓くであろう1フレ問題を指摘してるだけ
処理順序によって正しく動作しないタスク()とか、アホか
そもそもハッシュでユニークなシンボルつけてタスクシステム作ってるって言ってるだろう
rubyは保存されるけど普通のハッシュは順序保存されない
487 :
uy :2012/05/23(水) 20:32:55.23
つか、アレだっけ
1フレっていうか
Aオブジェクトから、A-0オブジェクト生成(Aの子タスク)
A-0オブジェクト内のコードで、1度目の処理のときにA-0-0オブジェクトを生成(A-0の子タスク)
A-0-0オブジェクト内のコードで、1度目の処理のときにA-0-0-0オブジェクト生成(A-0-0の子タスク)
等をやっていく時に、
どうしても末端のほうのオブジェクト生成がネストするたびに1フレ、2フレと遅くなっていくんだった
記憶あいまいだが、1フレ問題までは
>>444 で子タスクを先に処理する事によって解決できて
2フレ以上からは
>>470 の4の方法にしない限り解決策がなかった気がする
hayakukaite
488 :
デフォルトの名無しさん :2012/05/23(水) 21:08:36.66
早くやれよ
489 :
デフォルトの名無しさん :2012/05/23(水) 21:09:56.58
はよ
490 :
デフォルトの名無しさん :2012/05/23(水) 21:10:30.95
なんでやらないの はやくしろよ
491 :
デフォルトの名無しさん :2012/05/23(水) 21:10:56.91
早く
>>486 当たり判定の優先順位でまた同じ問題が起きるな
そして今度はプライオリティなんかでは到底解決できないような地獄を見る
酷い場合は動かない
あっという間にクソスレ化したな
>>478 お前、火薬ヌキのミサイル当たってこいよ
感想文書いていかに痛くないか説明してみろ
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
>>468 壁と敵と当たるならシーンに書いたほうがいいんじゃねーの?
基本的に2つの関連するものはどちらかに書いてしまうと
依存してしまうことになってしまうよ
自機、敵、弾とあったときに
シーンに自機しかいない状態
シーンに敵しかいない状態
シーンに弾しかいない状態(自機も敵も死んでシーンから消えた流れ弾)
自機も敵も弾も存在しないシーン
自機と敵の当たり
自機と弾の当たり
敵と弾の当たり
自機のクラスには敵も弾もシーンも入ってはいけない(他のオブジェクトも同様)
シーンが単体で必要なときに自機のソースがなければビルドができない状態にしたくないので
シーンクラスには自機も敵も弾も入ってはいけない
上記すべてを満たすためにはオブジェクトは独立させ(カプセル化)
それぞれの関連処理を書くクラスが別途必要となる
超綺麗に書くならねw
超綺麗っていうか普通
でも上みたいに書いちゃうとタスクシステムはやりにくいだろうね
>>492 そもそも1回で済まないときも多いしね
当たりの補正でまた当たりのチェックをしなければならない条件になんて簡単になってしまうし
当たりの優先順位なんてぶっちゃけ実行前にすでに決まってると思うんだけどね
そんなのまで動的に決めようとしたらなにも完成しない
500 :
224 :2012/05/23(水) 22:57:14.79
>>487 いってることがカオスだが、
A-0の中でA-0-0を作成したなら、A-0-0はコンストラクタで初期化済みな分けだから、
作成して直ぐに、もうアクセスできるし、遅延も糞も無いでしょ。
A-0-0-0に関しても、A-0-0が作成されてから0フレーム目ですでに存在して欲しいということは、
A-0-0のコンストラクタで作成されるわけだから、これも遅延は無いよね。
だけど、俺はそういった話を振ったわけではない。
子を先に更新してから親を更新すると、子が更新時に参照する親の座標値が、
更新前の値だから、一フレーム前の状態を元に更新してしまうよね、と。
だからと言って、親→子の順番で処理するのが常に正しいわけでもなく。
たとえば、子の当たり判定の結果を親にフィードバックして補正する場合もあるだろう。
この場合は子→親の順が適切。
もうすこし複雑化して、親処理A→子処理A→親処理B、なんてのも考えられる。
といったように、処理順は、処理内容の依存関係に左右されるから、
画一的に木をたどって列挙して更新すれば万事OKってわけには行かないでしょうと。
501 :
189 :2012/05/23(水) 22:57:35.63
>>494 無論物理的な衝突は別に計算する
それはMissileに限らない
503 :
224 :2012/05/23(水) 23:03:12.57
>>496 よく読んでよ。2行目に弾はシーンに投げるのが適当、って書いてるでしょ。
>>500 順番狂いの流動性は真っ先にカプセル化しなければならないだろうな。
505 :
189 :2012/05/23(水) 23:06:46.86
>>502 その必要があればダメージを受けるインターフェイスを作成して実装する
はやく
507 :
224 :2012/05/23(水) 23:20:16.39
>>504 流動性ってのは良く分からないが、
動的なものはまったく無いよ。いたって静的。
親::Update()
{
Update_A_Phase();
子->Update();
Update_B_Phase();
子->GetPiyo();
HogePiyo();
}
こんな感じで実行したい順に書いていけば何の問題も無い。
いたって普通のコンポジションだよ。ゲーム以外のプログラムも大体こんな感じだし。
依存関係のある処理を適切な順番に書き並べることで
プログラムは機能するわけだから、ごくごく自然な方式だね。
>>492 辺り判定周りで問題おきたことはない
オブジェクト単位でやらせるのが綺麗だでも遅くなる(高速化ができない)から
今はシーンで辺り判定すべきオブジェクトを抽出し
当たりを判定をしてる
俺のソースは動いてる
安定化まですげー時間をかけた木構造タスクだから
実際200時間くらいかけたと思う
さっさとソースコードかいて苦労をしれよw
>>508 それじゃ起きるよ
簡単に起きる
具体的なケースとして
壁の向こうの敵との当たりを先に計算しちゃって補正が起こって
壁当たりの計算を後にまわしちゃってバグる
どう?解決できないでしょ?
キャラの当たり判定はキャラが動くたび、補正が起こるたびにかけないといけない
だから処理の順番しかきにしてないその構造だと確実にバグるわけ
510 :
uy :2012/05/24(木) 00:50:33.99
>>500 オブジェクトを木構造で管理する場合、
コンストラクタで初期化してるだけじゃダメなんだよ
子タスクAは、自身の生成とともに子タスクA-0を
生成しなければならないときに
まさかコンストラクタで子タスク作る奴はいないんだよ
コンストラクタではなく、君のいうupdate()メソッドでも、オブジェクトは生成するのだから
コンストラクタでは初期化だけを行い、updateのほうで子タスクとなるオブジェクトは生成するように
処理分けを(普通は)する。
>>509 今かいただろ
>今はシーンで辺り判定すべきオブジェクトを抽出し
>当たりを判定をしてる
抽出してるんだから順序とかどうにでもなる
が、当たり判定に関しても、「どんな順序で行っても大丈夫なように」作るべきものだよ
コーディング中に意識しなければならないものは減らせ
ていうかさっさと木構造かくが良い
511 :
uy :2012/05/24(木) 01:01:10.83
つうかオブジェクト指向とかいってるわりに メソッドの呼び出し順を意識しないとゲームが作れないとか そこだけ何でC言語みたいな事になってんだよアホか、全てをやり直せ 何もかもを順不同で動かせるシステムをまず作れ それが出来ないなら、フラットな管理で普通のタスクシステムでやって方がいいよ あと > Update_A_Phase(); > 子->Update(); > Update_B_Phase(); > 子->GetPiyo(); > HogePiyo(); こういうソースもなくせ そこら辺のゲームサンプルは確かにみんなこんなソースだが 何で手動でこんなのを書かなきゃいけないかって、それを考えろ てか、一人ゲーム製作用の最高効率の設計を考えてんの?それとも社畜ゲームPGがかいてるような設計を考えてんの? 一人ゲーム開発だったら俺みたいにトリッキーなソースに最終的にはなっていくけど、社畜ゲームPG設計を書きたいならスレチだよ
512 :
224 :2012/05/24(木) 01:05:48.58
>>510 フレーム中で生成したオブジェクトは、まだ誕生してから1フレーム経ってないのだから、
Updateはしなくて良いんだよ。時間が経過していないのだから。
時間が経過していないのにUpdateするのは変だろ。何のUpdateだって話。
もし、オブジェクトが誕生した0フレーム目から何らかの子を持つのであれば、
それは持って生まれたものだから、コンストラクタで生成するのが普通。
ただし、生成フレーム中でUpdateを行う必要は無いといっても、当たり判定は行う必要がある。
0歳の誕生日がコンストラクタで、1歳からは年を取るごとにUpdateが必要。
しかし、0歳の生まれた瞬間から、世間の風当たりはあるよね。
513 :
224 :2012/05/24(木) 01:19:06.13
>つうかオブジェクト指向とかいってるわりに
>メソッドの呼び出し順を意識しないとゲームが作れないとか
>そこだけ何でC言語みたいな事になってんだよアホか、全てをやり直せ
>何もかもを順不同で動かせるシステムをまず作れ
もうこの時点でこの子だめでしょ。物事には何でも順序というものがあるわけで。
OOだろうが何だろうが、手続き型言語は副作用が有るから特に処理順は大切だし、
たとえ関数型言語でも、遅延評価はあれど、結合順位はあるわけで。
それに、処理順を記述するからプログラムって名づけられたんだよ。
運動会のプログラムってあるだろ。プログラムナンバー1番、開会式、とかのやつ。
http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0 本質的にそういうもんなんだよ。
514 :
224 :2012/05/24(木) 01:30:03.84
もっとも、相互作用が無いのなら、何をどの順に実行しても構わないのだが。 a = 3*4; //A b = 2+3: //B この場合、処理Aと処理Bには依存関係が無いから、 どちらを先に実行しても構わない。 だけど、こんなゲームつまらないよね。 相互作用や依存関係がゲームのルールになるのだから。 クソゲー作りたいのなら別だが。
515 :
uy :2012/05/24(木) 02:00:08.12
で、結局どっち? 一人開発用のトリッキーなソース書きたいのか 大人数向けの社畜タスク書きたいのか
516 :
uy :2012/05/24(木) 02:06:41.56
物事には順序が〜とかいうけど、 じゃあハッシュについてはどう思ってんだw マルチスレッドは? マルチプロセスは? 割り込み処理は? 「順序」正しく動作させなきゃまともに動かないゲーム設計なんてゴミでしかねーぞ 常に「順序」意識しながらゲームアルゴリズムかくのかよ さっさと作り直せ
517 :
uy :2012/05/24(木) 02:11:57.83
描画に関してだってz座標っていうものがあるんだよ z座標いじれば描画順序などどうでもいいw メソッドだってオーバーライドっていうものがある 本当にどうっっっしても処理順序が必要になるのであれば、 タスクを廻してるたった1つのメソッドをオーバーライドして書き直すだけで済む話 まずそんな事はしないけどな さっさと、木構造のタスクかくか、ゲーム作りのスタートラインにたって進めよ いつまで設計について考えて準備体操してんだよw
518 :
224 :2012/05/24(木) 02:15:15.39
>>515 なんだその二択ww
トリッキーなコードも書かんし、タスクも使わんわww。
普通なコードを普通に書くだけで十分満足です。
コードで自己主張せずに、ゲームルールetcのもっと別のところに注力すれば?
しかしあれだね。
自動化したがるのは結構だが、どうでも良いようなところならともかく、
ゲームのキモの大事なゲームロジックの制御フローまでテンプレ化してしまっては、
最早ゲームを作る意味は無いよね。売れるのなら別だが。
どうせコードの量はそんなに縮まないし、汎用性を失うだけだわ。
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
520 :
uy :2012/05/24(木) 02:25:59.79
>>512 にレスまだだったか
そこだけはオブジェクト指向でやったって100%違うから、よく考えろ
ボスキャラのオブジェクトZというものを生成しなければならないとして、
そのオブジェクトZは自身の持ってる子タスクが10個附属しているとしよう、たとえばボスキャラの持っている装備やそんなところ
オブジェクトZが生成されたら、その子タスクも同時に生成されていなければならない
そのオブジェクトZが子タスク10個を生成するタイミングを、君はコンストラクタでやるつもりか?
ありえないだろうwww
そもそもオブジェクトの生成っていうのはコンストラクタではなく、
通常のメソッドでタスクループ中にやるべきものだ(君のいうupdate)
コンストラクタ内でも「オブジェクトの生成処理」なんてものを混ぜてしまうと、
コンストラクタの中身と、updateメソッドの両方を見て、一体どちらでオブジェクトを生成したのか
その確認をしなければならない、スパゲッティっつうんだよそれ
コンストラクタはせいぜい「簡単な」最低限の初期化処理をまとめたメソッドで簡潔に書くべきもの
コンストラクタでやらなくても良い処理はすべて外部に出せ
OOもできねーのか
521 :
uy :2012/05/24(木) 02:29:25.68
>>518 >トリッキーなコードも書かんし、タスクも使わんわww。
タスク使わんって、お前今さっきまですげー必死にタスクの設計について語ってたじゃん
ボケたか
>ゲームのキモの大事なゲームロジックの制御フローまでテンプレ化してしまっては、
>最早ゲームを作る意味は無いよね。売れるのなら別だが。
ゲームエンジンっていってわかるお前?
そもそもさ、プログラミングごときに対して時間を割かないようにする為に、
最低限の手間で作れるようにするんだよ
俺が教えるのはトリッキーな設計のみ ついてこないならこの話題は終了な
522 :
224 :2012/05/24(木) 02:34:11.46
>>516 ハッシュはコンテナなので、データ構造の分野だ。
今言ってるのは制御構造の話なので筋違い。
ハッシュから特定のデータを取り出してきて、順番に処理していくわけだからな。
結局順番が重要。
マルチスレッド、マルチプロセス、割り込み処理に関しては、
順序に依存関係が有る場合は待ちを入れる。
WaitForSingleObjectとかでな。
>>517 Zソートはゲームロジックに関わる相互作用が無いんだよ。気づかなかった?
もちろん、描画順については依存関係があって、順番がとても重要。
だからこそわざわざ並べ替えてるわけだが。
描画に関して、描画順が重要ってことは、そのまま
ゲームオブジェクトUpdateにおいて、Update順が重要ってことなのだが。
それから、メソッドのオーバーライドと処理順には何の関係も無い。
523 :
224 :2012/05/24(木) 02:38:22.15
>コンストラクタの中身と、updateメソッドの両方を見て、一体どちらでオブジェクトを生成したのか >その確認をしなければならない、 何の確認だよそれ。 >タスク使わんって、お前今さっきまですげー必死にタスクの設計について語ってたじゃん どこでだよ。
524 :
uy :2012/05/24(木) 02:39:49.15
まず、貴様のようにゲームを1〜2作だけ作って はいできたー満足ー終わりー。 じゃねえんだよ 舐めすぎだろ 今までに何作も作ってきたし、これからも何十作と作るんだよ俺は。 どんな設計だろうと、それなりの時間かけりゃゲームは作れるが、 そんな話はしていない 最高効率を出す方法を話してる この設計だと○○の問題が〜〜〜WW なんていうのは、ゲーム全く作った事ない奴の発想 タスクの実装ごときでゲームプログラムが破綻するとか思ってるなら そもそもゲームを作った事がないか、よほど腐った設計をしてる 別に根幹部分の設計なんてどんな風に実装してたって作れる 問題は、その根幹設計の上でゲームプログラムを作る時に、 どの程度の効率を出せるか? だ 処理順序を意識しながらソースコードをかかなきゃいけないとか論外に近いことは分かれ 作り直せ
525 :
224 :2012/05/24(木) 02:42:30.53
>コンストラクタはせいぜい「簡単な」最低限の初期化処理をまとめたメソッドで簡潔に書くべきもの いわゆる二段階初期化だな。 p = new obj(); p->init(); どちらにしても最初から持って生まれるものを、update内で生成は無いわ。
526 :
uy :2012/05/24(木) 02:42:51.96
>>522 タスクシステムを作る時の、リストや木構造は「データ構造」だろうがwww
つうか、まずそこから? Lispやれば。
>>コンストラクタの中身と、updateメソッドの両方を見て、一体どちらでオブジェクトを生成したのか
>>その確認をしなければならない、
>何の確認だよそれ。
今現在画面に映っているオブジェクトが、一体どこで生成されたものなのか
お前のソースコードだとコンストラクタとupdateの両方を見なければならない
まさか1000行程度のプログラムしかかいた事がないわけじゃあるまいな
とりあえずお前はゲームを作った事がなく、ハッシュを知らず、木構造を知らず、Lispを知らないところまでは確認できた
527 :
uy :2012/05/24(木) 02:46:58.87
>>525 本来なら
task.store( :test , new obj() )
これで済むはずの物が
お前のソースだと
p = new obj();
p->init();
task.store( :test , p )
こうなるわけだ
全てのオブジェクトに、二段階初期化のためのinit()もたせる気か?
それとも「例外」を作り、init()が必要になるクラスだけ特別扱いでもすんのかね?
528 :
224 :2012/05/24(木) 02:53:13.98
>>526 だから、タスクシステムは使わないといってるのだが。
>今現在画面に映っているオブジェクトが、一体どこで生成されたものなのか
>お前のソースコードだとコンストラクタとupdateの両方を見なければならない
0フレーム目のUpdateだけ、武器の作成などの、
特殊な初期化処理をするほうが、むしろ奇妙だ。
変な書き方をしているからハマるのだ。そして変な解決方法を思いついて、
2chでバカな書き込みをするが、
他の人はそもそも、そんな問題を抱えていないという。
529 :
uy :2012/05/24(木) 02:53:20.47
まず、ゲームを作っていたらわかるだろうが x,y座標や、その他のオブジェクトの詳細パラメータは コンストラクタで初期化されても困るんだよw 内容を書かなきゃいけない実装部分とコンストラクタは遠すぎる 普通にメンバ変数にするまでもないupdate()メソッド内のローカル変数の初期化というのも def update a = 0 b = 32 c = 222 d = [] e = "" end こうやって冒頭に書かれる、 つうか場合によって self.x ||= 100 self.y ||= 100 で、初期値をupdate()内に入れるぞ 俺の設計であれば、コンストラクタのときにxはnilの状態でもupdate内で初期化すればタイミングが間に合う つまりコンストラクタで初期化してもいいし、update内で初期化してもいいのでどちらでもかける お前の設計ではコンストラクタ内でしかかけない 設計上はきれいでもそれじゃ自由度が低いんだよ
530 :
224 :2012/05/24(木) 02:58:41.62
>>527 初回だけupdateを明示的に呼ぶ、お前のと変わりないじゃないかww
しかも初期化処理が何処なのか明示的で分かりやすい。
俺は二段階初期化しない人だけどな。
531 :
uy :2012/05/24(木) 03:04:43.67
>>528 奇妙かどうかは問題じゃない
開発効率が出せるか出せないかって話、
お前の言ってる事は理想論であって、ゲームプログラムを完璧にかけるものと勘違いしてる
口だけで全く経験がないんだろう
プログラミング時のコーディングの自由度を高められる設計にはなっておらず
お前のはコーディングスタイルを束縛する設計だ
全ての場所で、全てのことを出来るようにさせろよw
>>530 全然違う
俺の設計上での「コンストラクタ」とは、全オブジェクト共通の初期化処理
オブジェクトごとに対しての初期化処理は、コンストラクタでは行わずオブジェクトごとに行う
つーかupdateの前に、
っていうかクラスじゃなくてlambdaだからね俺は。
->{
# ここがupdate前のコンストラクタ、つまりinit()
->{
# ここが本来のupdate
}
}
意味わかる? -> はrubyのlambda宣言
関数を返す関数を定義する事によって、lambdaがクラスの代用になるところまでは理解してるかね
あ
あ
あ
535 :
uy :2012/05/24(木) 03:19:02.58
さっさと木構造タスクかいてこいよ
話になってねーから
もしや1フレ問題に行く前の段階で挫折しちゃったか
ほんとマジレスしてやると、100人中100人に
A「タスクの処理順序を意識しなければ動かない設計」
B「タスクの処理順序は意識しなくても動かせる設計」
どちらが優れているか?
聞いたら、100人ともB選ぶだろ
>>513 >物事には何でも順序というものがあるわけで。
>OOだろうが何だろうが、手続き型言語は副作用が有るから特に処理順は大切だし、
この辺とかマジ、どこのC言語だよって思ったわ・・・
何作もゲーム作ってれば気づく場所なんだけどな「あれ?毎回同じことかいてね?」って。。。
作らないからそこが省略できる事に気づけないんだよ
>ゲームのキモの大事なゲームロジックの制御フローまでテンプレ化してしまっては、
>最早ゲームを作る意味は無いよね。売れるのなら別だが。
>どうせコードの量はそんなに縮まないし、汎用性を失うだけだわ。
これに対しても、汎用性を失わないようにゲームエンジン作るのが腕の見せ所なわけで、
タスクの根幹部分なんてゲーム内容と関係ねーし、テンプレ化できるだろ。そこは。って指摘しているのにわからないからって威張れる事ではない
あ
537 :
uy :2012/05/24(木) 03:20:00.60
-----------まとめ----------
>>247 >ゲームは作らんから知らんが、
224 == 247
あ
>俺の設計であれば、コンストラクタのときにxはnilの状態でもupdate内で初期化すればタイミングが間に合う
間に合わないから奇策を練ったんじゃなかったのかよ。普通に書け。シンプルイズベスト。
>つまりコンストラクタで初期化してもいいし、update内で初期化してもいいのでどちらでもかける
お前の方が何処で初期化してるか探すの大変じゃねーかよ。
よく
>>526 書けたな。それとももう自分の書いた内容忘れたのか?
>>531 そんなコード書いてるから嵌るんだろ。
普通はそこには内部でしか使わない一時変数しか書かんものだ。
あ
あ
あ
あ
あ
1)全部のオブジェクトの「自分の現在位置をプロット」メソッドを呼び出して 衝突検証用マップかなんかにマッピングする 2)マップ自身がマップを走査して衝突判定をする 3)衝突したオブジェクト同士に「おまえこのオブジェクトとぶつかりました」と通知する 4)通知を受け取ったら相手オブジェクトの種別を参照して爆散かスルーを決める 5)爆散したら自分の爆散フラグを立てる 5’)マップから呼び出された時点では生きていたので相手の爆散フラグは見なくていい 最適化考えないならこんなんでいいじゃない
チャンネル変えても見たい番組が無い \韓国の.../ (⌒) ピッ / ̄ ̄| ∧_∧ | ||. | ━⊂(´Д` ) \__| ======== \ | | /※※※※ゞノ,_)  ̄ ̄ ⌒~⌒~⌒~⌒~⌒ \AKBの.../ (⌒) ピッ / ̄ ̄| ∧_∧ | ||. | ━⊂(´Д` ;) \__| ======== \ | | /※※※※ゞノ,_)  ̄ ̄ ⌒~⌒~⌒~⌒~⌒
久しぶりにuy様フレーフレーuy がんばってください 応援しています yu応援団
深夜まで元気だなおまえら
549 :
uy :2012/05/24(木) 11:44:48.13
>>539 > 間に合わないから奇策を練ったんじゃなかったのかよ。普通に書け。シンプルイズベスト。
利点がわからないならお前はシンプルにかけ
>お前の方が何処で初期化してるか探すの大変じゃねーかよ。
話きいていないのか?
「全てのオブジェクトには共通のコンストラクタがあり」
オブジェクト単位ではコンストラクタではなくlambdaを利用(悪用)して初期化をする
お前の設計だとここで、一々オブジェクトごとにクラス定義をする設計
>そんなコード書いてるから嵌るんだろ。
>普通はそこには内部でしか使わない一時変数しか書かんものだ。
はまりまくるよ、俺が確認した限り木構造タスクシステムにおいて
「まともに動かせる」生存ルートは1つしかない
普通のフラットなタスクなら適当に書いても動くのに対してだ
1つだけというのは言い過ぎだろうが、そこら中が地雷だらけという事は理解しとけ
その代わりに得られるものは大きい
お前も結局、木構造タスクはかかないのな これだけ教えてやったのに
木構造って単語だすとすぐに逃げてしまう
フラットなタスクで今後も何年間も悩み続けるんだろう
552 :
uy :2012/05/24(木) 11:50:55.27
そもそもゲームごとき別にどうかいたって動くだろ
あれをこーしたら動かない、あーしたら動かないとかねーから。。。
お前がテンプレ設計しか出来ずに、一般的なググれば出てくるソースコードの理解で
躓いて、これはいいこれは悪いとかグダグダやっているのは無駄だ
>>332 でもいってる奴いるけど、これだよ お前は何の用途のための設計をしようとしてるんだ?
そこらへんググればでてくるゴミ設計と同じ事やってそれで満足かwww
初心者レベルの入門からさっさと前にいけって言ってるんだよ
躓く場所そこじゃねーから、さっさと歩け
332 :デフォルトの名無しさん:2012/05/20(日) 21:59:30.00
自分の構築したシステムが一体なんであるか考える癖をつけたほうがいい
目的は
開発工数の削減なのか、
シンプルな記述なのか、
使用者に分かりやすいインターフェイスの提供なのか、
実行速度なのか、
・
・
・
なんの目的も達成してないもの作られても反応に困る
uy先生から見てminecraftの設計はどうっすか?
554 :
uy :2012/05/24(木) 11:54:12.72
555 :
uy :2012/05/24(木) 11:59:59.08
とりあえず、ちょっと見た感じ
素晴らしいレベルでハードコーディングしてんな
ゲームプログラムってそもそも静的言語で作る場合って
根幹システムは静的言語で作ってゲーム内容は動的言語で記述すべきものなのにこいつ全部JAVAでかいてんのか
JAVAでハードコーディングしている時点で仕様変更が全く出来ないソースなんだと思った
これとか何がやりたいんだよ、バカか
field_22260_e
public void func_22241_a(GuiButton guibutton)
{
field_22256_i
field_22257_h
int j1 = field_22263_b / 2 - 110;
}
int i3 = ((field_22260_e - field_22261_d) * (field_22260_e - field_22261_d)) / func_22245_b();
http://zombie-craft.googlecode.com/svn/trunk/sources/minecraft/net/minecraft/src/GuiSlot.java
まさかの言語にツッコミ Androidのゲームも結構javaっすよ、NDKもあるけど
557 :
uy :2012/05/24(木) 12:04:21.65
protected abstract void func_22242_a(int i, int j, int k, int l, Tessellator tessellator); public GuiSlot(Minecraft minecraft, int i, int j, int k, int l, int i1) これも地味にやばい IDEの支援があればかけるだろうが、 こういう奴がJAVAで引数30個くらいあるメソッドとか定義するんだろうなって思った ハッシュ引数や名前つき引数ない言語は終わってる
>>555 だから
>>550 で定数は消滅、メソッド名なども未解析があるって言ったじゃないですかw
定数はコンパイル時にバイトコードに値が直接埋め込まれちゃうんですよ
ツッコミは逆コンパイルで読み辛くなった部分だけっすか?
559 :
uy :2012/05/24(木) 12:10:54.56
560 :
uy :2012/05/24(木) 12:12:46.24
>>558 ああこれ逆コンパイルしたやつなんだ
世の中にはこんなJAVERがいるのかと
マジで焦らされた
どちらにしろJAVAとか読む気ないけど
>なんっだこれww このappendのあらし それもコンパイラが変換したやつ うん、javaに疎い人にjavaの逆コンパイルのソース見せた俺が悪かった データモデルの構造とかクラス設計の話を期待しただけに 逆コンパイラへのコーディングレベルのツッコミで終わったのは残念
uyに設計の話を期待するのがまず間違いだろ・・・
オブジェクト指向わかってないやつにオブジェクト指向なコード見せても どこみたらいいのかわからんだろ 伝説のuyがいちばんうんぬんいいたい部分のコードはベースクラスにあるんだし
565 :
uy :2012/05/24(木) 14:38:08.38
そもそも、そのゴミカスコードのどこが なんなのかっていうのを示せよ 別に何もすごい事やってる箇所ねーじゃん
566 :
uy :2012/05/24(木) 14:40:02.57
Q これどう思う? A 何も思わない 終わり
すごい事する必要無くね 普通に書いて実用十分ならそれでいいと思うぞ オブジェクト指向は本当に正しいのか? → YES
568 :
uy :2012/05/24(木) 15:01:06.27
オブジェクト指向はさぁ 70点程度の設計なんだけど そうやって、何かひとつに思想を纏め上げるっていう事をやるっていうのは プログラミング言語をひとつに統一したらITすげー勢いで発展するんじゃね?って思うものと同じで オブジェクト指向をひたすら極め続けたら、それはそれでひとつの答えにたどり着く未来は来ると思うよ 根幹がどんなゴミカスだろうと、ラップし隠蔽しそしてメタしてしまえば関係ない 人間が、皮膚の内側に臓器やグロテクスなものをしまいこんでいるのと同じようにな 俺としては根幹部分はオブジェクト指向ではなく木構造でやる。世界全体でどんなコードをかいていようと 今まで数年間プログラミングしてきた結果そちらの方が効率がいいと判断している これは、たとえるなアメーバのような単細胞生物のようなもの、ソースコード上において臓器とかそういうものはなく 細胞の1つ1つが自立してる それで失うものは言語やIDEの支援と実行速度、 オブジェクト指向でかいていれば、クラス単位でのコンパイルや最適化の仕組みを作りこむ事は 可能だろう、俺のやり方では、ノウハウの蓄積がないから 誰もコンパイラや最適化手段を作りこんでくれない なのでいずれOOがさらにさらに進化していくならば、この設計を超える可能性はある しかしそれでも今現在、OOよりは俺のやり方の方が効率でるんだからしょうがないよね 一人プログラミングしてるんだから、一番の効率良い手段を使うだけの話だし、 お前らが知りたがっているなら、俺は暇つぶしに話してはやるけど その技術を妄言だと決め付けて使わないか、やってみようと努力するかは貴様ら次第 OO以外の設計手法にそもそもの興味がないのであれば、uyなどNGしてしまえばいい
uyはオブジェクト指向ができないから存在がスレチ
スレがいつのまにか荒れてるのは クソコテのせい?
571 :
uy :2012/05/24(木) 15:12:35.43
現時点OOが世界で最も使われてる設計で、統一化されてきてる OOでやってる事は関数型でも出来るだろうが、ひっくり返せないだろうな ひとつに統一したほうが良い 根幹部分をひっくり返すのは、余りいい事ではない オブジェクト指向でしか通用しないオブジェクト指向専用の技術が 一気に無用のものへとなるからな しかし、言っちゃ悪いけど関数型80点、OOは70点、 関数型プログラミングよりも概念的に 幼稚なオブジェクト指向が素晴らしいとか勘違いされていたら、そりゃ哀れに思うしかないのではないか
OOそのものが荒れネタのせい
573 :
uy :2012/05/24(木) 15:15:13.26
木構造タスクかけたら、また話しかけろ rubyですら限界キてるのに 静的言語で実装できたらかなり奇跡に近いけどな 俺はC++で書く気しないから、誰か書いて欲しいは
574 :
uy :2012/05/24(木) 15:44:28.51
とりあえず今はC#.NETとRubyだよな 数年前まではC++やperl押せ押せだったのに、なんと忙しい事か 結局10年先もrubyを使っているかはわからない 実際動的言語と静的言語って区別も余り意味がないんだよなぁ 静的言語側の、言語の柔軟性を高める方向性に世界が動くか 動的言語側の、言語の実行速度を高める方向性に世界が動くか その違いでしかない、両者はどんどん近づいていく とりあえず俺は実行速度よりも開発効率が欲しいから動的言語側にいるわけだけど 静的言語側が動的言語並に柔軟になってくるのであれば使ってやっても良い 言語の柔軟性において静的言語は動的言語と比べ大きく差をつけられている 対して速度に関しては動的言語は部分的に型をつけてのコンパイルや、ライブラリをC実装にするなどで 高速化は計れる 動的言語側の方が今は優位に出てるとしか思えない
そこでJavaScriptですよ。
576 :
デフォルトの名無しさん :2012/05/24(木) 17:48:57.32
jsはHTMLの進化でいらなくなってきてる
577 :
デフォルトの名無しさん :2012/05/24(木) 17:55:47.11
jsってCPANみたいのないから比べられる場所にさえいない、言語仕様もだめだし 言語仕様、速度、ライブラリ数で総合点つけたら 現時点最強はRubyで異存はない
言語仕様はパーサのバグが多いほど、 速度は遅いほど、 ライブラリは枯れていないほど 得点が高いんですね
579 :
デフォルトの名無しさん :2012/05/24(木) 18:11:19.15
プログラムを書くために言語の選択肢はあるものの 設計の選択肢がOOだけというのは 愚かなものだ
OOA/OOD(笑) というのはあるにしろ散々リソース注ぎ込んで研究しただけあってそのノウハウが書籍という形で手に入るというのは強みといえよう
つーか、標準ライブラリ自体がオブジェクト指向の産物じゃん rubyは知らんけど? 「自分のコードなんだから好きに書きかえればいい わざわざオーバーライドとかするとかバカだろwwww」 っていうんだろうけど そういうやつに限ってテストコードなんて書いてないよね バグが出るに任せるだけのコーディング そんなの10年以上前のやり方じゃんね
> つーか、標準ライブラリ自体がオブジェクト指向の産物じゃん ???
わからんのなら理解する必要はないよ それに君の使ってる言語がrubyかもしれない
>そういうやつに限ってテストコードなんて書いてないよね >バグが出るに任せるだけのコーディング アホ〜w TDDが何かわかっていない。
585 :
uy :2012/05/24(木) 20:12:42.47
jsはぷち強いC言語って意味ではPHPと同レベル 使い物になるわけねーだろ js君はHTMLに撲滅されるよ
テスト駆動だけがテストコード書くスタイルとちゃうで? じゃあ聞くがきみらデバッグどうやってやってんの? まさか何もなし? すごいな
>じゃあ聞くがきみらデバッグどうやってやってんの? ステップ実行w テストとデバッグの区別も出来んのかw
588 :
uy :2012/05/24(木) 20:45:17.45
今OOで流行りのプログラミングスタイルは 親クラスに大量のデフォルト処理を提供するメソッドが用意されていて 実装の為のクラスは親クラスを継承し、 オーバーライドしていく方法なのかね 俺も昔それやろうとしたな、やめたけど。 やっぱり、根幹(内臓)が間違ってて、その上をきれいにラップしても、 それは、汚い臓器を皮膚や洋服で覆い隠してる人間と同じだ。 人間がこのまま、数万年後まで子孫維持できるかどうか。 オブジェクト指向は、とりあえずゾウリムシやアメーバではなく、本質的には人間と同じようになってる なぜ人であったはずの俺がアメーバみたいな設計を思いついたのかは知らんけど、 単細胞生物アメーバと多細胞生物の人間は、どちらが進化した個体と言えるだろうか 俺は単細胞生物の方が無駄なものがなくて綺麗だと思うんだよね そっちのほうにITは進んで欲しい、プログラミングの単細胞生物化、オブジェクトはアメーバ化して欲しい だって、人間って、心臓とかはなくなったら生きていけないが、肺に関しては2つうち1つさえあれば 生きていけるんだもの、それってつまり、冗長したソースコードって事だろ 人間の体をみて、それどおりにプログラミングしてたら、冗長するよ 人間はイキモノとしては無駄なものがあちこちに多い失敗作なんだから
589 :
uy :2012/05/24(木) 20:48:52.37
HTML + TIME って流行ってないのか これさえあればjsってかなりいらない感じなんだけど 全然IEでしか動作しねーな Firefoxもoperaもだめだ IEの動作が遅いのは、いろんな仕様に対応させてるからかもな jsしね
590 :
uy :2012/05/24(木) 20:52:49.93
神も呆れるわ 失敗作がここまで生き残り、妙な進化をしてるんだからな 水槽の中で、最初は世話してたけど途中から思うように成長しなくなって 完全放置されているのが人間 で、知らない間に、繁殖し、進化してる、 神の作った水槽の中でな きも
なんでjsがプチ強いc言語なんだろう。 曲がりなりにも動的言語ではrubyより有名どころなのに。
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
>>510 俺の言ってること全然理解しないでレスしたのミエミエ
順番じゃどうにもならない
uy一つのやり方に固執するあたり 頭の弱い子でFA?
595 :
uy :2012/05/24(木) 23:06:05.04
で、木構造のタスクかくとかいう話は完全にどっか行ったのか 結局ソースとしてあげない奴ばかりだな 実装もせずに起こりうる問題を憶測でレスしてるから間違うんだよ
ただのタスクシステムだってなんのメリットも説明できてないのに・・・ 馬鹿のツリー構造だなw
597 :
uy :2012/05/24(木) 23:31:16.57
A 社畜がちょっと1作だけゲーム作りたいって時にかくタスクシステム ↓ 適当でいいよ。適当にかいてりゃ動くし、特に何も考えなくていいよ B これから何作か作ろうとしてる奴、ちゃんとしたゲームタスクシステムをかきたい ↓ とりあえず親子関係を持つタスクまでは書けるようになれ C 最高効率をだしたい ↓ ヒント:木構造で実装やってみ はい
つ…釣り構造…
599 :
uy :2012/05/24(木) 23:34:19.30
まぁ結局
>>247 >ゲームは作らんから知らんが
これなんだよね
ゲームを作った事もなく、ソースコードも書かず
これからもゲームを作る事はない、
そんな奴が設計語って出来たようなわかったような気分になる為のスレ
飽きた
600 :
uy :2012/05/24(木) 23:35:34.57
-----------まとめ----------
>>247 >ゲームは作らんから知らんが、
224 == 247
え、しらねーのかよw
終了
601 :
デフォルトの名無しさん :2012/05/24(木) 23:55:12.72
-終了-
602 :
デフォルトの名無しさん :2012/05/25(金) 00:27:11.20
つ…釣構造…
604 :
uy :2012/05/25(金) 01:29:05.41
>>602 情報操作怖すぎ
今度は金と匂いで人を集めようってんですか
そこら辺の零細IT企業が新人に年収1500万払えるとでも!?
ITはどんどん縮小されていく時代
HPが、東大卒業生の中でも数年に一人みたいなのに、年収一千万支払ったというのが、 数年前にかなりの話題になってたが、その辺の会社がほいほい1500万も払えるとは到底 思えない。GREEやDeNAは確かに高給優遇してたけど、コンプガチャも崩壊しちゃったしね。
>>595 仕事で使ってるよ。
struct task
{
task *pParent;
std::list<task*> child_list;
virtual Proc();
};
こんな感じ。
607 :
224 :2012/05/25(金) 02:01:10.04
うわっ。 普通にコンポジションで良いじゃん。 勝手にProcが呼ばれることに何のメリットも感じん。
608 :
uy :2012/05/25(金) 02:22:46.18
>>606 マジか、失礼した
ちゃんとかける人もこのスレにいたようだ
技術わかってる人がこんな板に1人でもいる事に感動したんだけど
>>607 もう黙れば。
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
610 :
uy :2012/05/25(金) 13:05:08.65
-----------まとめ----------
>>247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
612 :
uy :2012/05/25(金) 14:16:54.20
-----------まとめ----------
>>247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
おっ おにぎり食べたいんだな... このスレ良スレなんだが、OOのもう一方の効能が出ていないんだな... 操作仕様設計段階からOOは有用なんだな... インターフェースに人間味が出てくんだな、 こっこれが... smalltalk創世からOOにタッチした仙人ライクな身ながら、日本では貧乏の極みに落ちたんだな! アメにいた方が良かったんだな これが... おっ おにぎり食べたいな!
あ
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
616 :
uy :2012/05/25(金) 22:02:38.17
-----------まとめ----------
>>247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
釣ぃ構造はコンポジションで十分だな
コンポジションてなに? ちなみにポインタは共有ポインタを使う。 functionとかと組み合わせれば任意の関数を寿命管理付で コールバック的に呼び出すようにもできる。 戻り値boolにしてtrueならコールバック官僚とかね。
620 :
uy :2012/05/26(土) 02:16:11.51
コールバックってどういうの? タスクがメッセージ待ちみたいになってるの?
凍る場っ 苦・・・
622 :
uy :2012/05/26(土) 11:17:13.29
-----------まとめ----------
>>247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
発狂しちゃったか
623 :
uy :2012/05/26(土) 11:27:24.20
俺は自演なしで論破するのが楽しいから、あえて常にコテつけたままやってるが コテに自分の意見を否定されるのは耐えられても 名無しに否定されるのは耐性のない奴が多い おそらく「uyがいってるからこれは間違ってるんだ!」と最初に決めつけ、それを変わらない大前提としてる しかし、俺は最初にあえて突拍子もない勘違いを誘発するような発言をした上で 徐々に正しい意見へと推移させていく、最初に大前提を作ってしまった奴は 「uyが"今"は"正しい"」という事にさえ気づけず、否定レスをし続ける そして徐々に劣勢になっていき、トドメは第3者の名無しからのレスだ 俺が議論相手の精神を殺してるわけじゃない、いつもトドメは第3者の名無しが殺してしまう そこまで弱らせて、あと、糸を一本きれば死ぬような状態まで追い詰めているのが原因ではある そこで相手は発狂し、くだんねーと言い残しスレに二度と現われなくなり、uyをNGリストへ追加する NGへ追加という事は賢くもあるが、それなら最初からNGにしていればいいだけの話 煽られまくったあげくに議論で負けて、途中からNG追加など負けを認めた以外にないではないか コンポジション wwwwww 初心者は、経験者が「ごく当たり前」のようにやっている技術の名前を平気で連呼してくるからすぐ分かるよなw こんな、当たり前の基本的過ぎる操作に名前がついてるとか、まぁ技術文書書くときに事細かい操作にたいし名前はついてたほうが いいけれど、連呼するものではないな C++しか出来ないそこの初心者はRubyやってみれば?
rubyでゲーム作ろうとしてるやつなんてはなから相手にされないよ 場違いなところで持論を喚くだけ、これって軽度アスペじゃん
625 :
uy :2012/05/26(土) 14:19:25.37
uyはよしね まで読んだ
617 名前:デフォルトの名無しさん [sage] :2012/05/25(金) 22:08:45.57 「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
627 :
uy :2012/05/26(土) 14:24:44.80
よーっし、じゃあLispで作るか とか、割とマジで考えてる 今はrubyでやっちゃってるから この次のプロジェクトになるけどな 既存のゲームフレームワーク使って作るより 先人がほとんどいない言語とライブラリで 人柱になるほうがよっぽど技術いるのに何いってんだかお前は・・・ 正直、木構造タスクも1年以上使い続けてたら飽きてきてる 効率は格段だとしてもね 新しい設計が欲しい
626 名前:デフォルトの名無しさん [sage] :2012/05/26(土) 14:19:51.74 617 名前:デフォルトの名無しさん [sage] :2012/05/25(金) 22:08:45.57 「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
629 :
uy :2012/05/26(土) 14:31:33.62
Lisp触ったけどまじクソだな 使えねー
630 :
uy :2012/05/26(土) 14:32:29.36
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
おま 何勝手にリセットしてんだよ しねよ
632 :
uy :2012/05/26(土) 14:34:02.57
動的言語でゲームつくりは技術いるよ 1000行程度に収まるレベルならいいが さらに増えてくるとヤバくなってくる事は事実 大体、俺の中で5000行くらいになってそのヤバさは現実のものとなった 俺は動的言語の方がゲームつくりが楽だから、流行らそうとしてたんだけど これは無理だなぁって思い始めてる rubyで作るのに向いてるゲームはオセロ将棋麻雀などのボードゲームや テトリスなどのパズルゲーム これらは速度がいらないし、規模も小さいのでrubyで作るのが最も効率良い でも、、STGくらいになると、ちょっと作りこんでくるとヤバイ やばいぜ 俺は作っていけるけど、なれない奴がやったら途中で破綻するだろうってのが少し分かった そもそも、ocraがライブラリによってはexe化を正常にしてくれないから そこら辺にも地雷があるし、dxrubyはマルチスレッドに弱いし そこら中が地雷だらけ 勝手に地雷踏んでrubyはダメだダメだとか騒がれても迷惑だから、別についてこなくていいよ
uyはよしね
634 :
uy :2012/05/26(土) 14:37:34.21
さて、と
-----------まとめ----------
>>247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
uyは空気嫁ない までよんだ
636 :
uy :2012/05/26(土) 14:38:19.10
コンポジションって何?
梱包辞書ん
他のクラスのインスタンスを持つこと。ただそれだけ
インスタンスって何?
隠す箪笥
コンポジションってのは たとえば「色」のクラスと「形」のクラスがあったとして 「色と形」を持ったクラスを作りたいけど多重継承ができない そういうときにメンバーに「色」と「形」を持って そのメソッド・プロパティに橋渡しを用意して 2つの機能を同時に使えるクラスを作る その橋渡しの手法のこと
唖栗毛遺書ん
>>642 間違い。コンポジションは多重継承の代わりに使うものではない。
多重継承ができたとしても、継承関係(is-a)ではなく
has-a関係を作りたい時に、コンポジションを使う。
色を持ったカラーテレビは、"テレビ"であるが、
色を持ったカラーテレビは、"色"であるかね?
違うだろう。色ではないものを、色を継承して作ってはいけない。
「色と形」を”持った” といっているから自然とhas-a関係であることは
理解しているようだが、is-aである継承と区別できるようにがんばろう。
空ー照れ美
is hasなんて説明のための言葉だろ
伊豆 恥ず
RGBの三つ組と同型であるものは色
649 :
uy :2012/05/26(土) 15:23:27.67
C++は俺も使うよ でも決して優れた言語だとは思っていないし 2chでその話をするつもりもない 今の時代に、時代遅れと化したC++言語の話題をC++スレ以外で展開しちゃう時点で迷惑だと気づけ
uyの存在が迷惑なんだが
uyは空気嫁ない
652 :
uy :2012/05/26(土) 15:28:28.17
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
654 :
uy :2012/05/26(土) 15:29:43.38
655 :
uy :2012/05/26(土) 15:30:15.63
uyの頭には蛆がわいてる これがコンポジション
uyは蛆でもあるので そこは継承が正しい
コンポジシコンホジションコンホジショシコンポ゚ションコンポジジンコンポ゚ションコンポジシ コンポ゚ジシコンポ゚ジンコンポジジシコンポジショシコンホジジシコンポジンコンポション コンホジジシコンポジジシコンポションコンポジシコンポジショシコンポションコンホジジン コンポションコンポジショシコンホジションコンホジジンコンポジショシコンホジションコンポション コンポ゚ションコンポションコンホジションコンポ゚ショシコンポ゚ションコンポ゚ションコンポジジン コンポジジンコンポ゚ジシコンポ゚ジンコンポションコンホジショシコンポジジシコンホジション コンポションコンポジショシコンポジジシコンポジショシコンポションコンポ゚ショシコンポジション コンポ゚ショシコンポジジシコンポショシコンポ゚ジンコンポ゚ジンコンポジションコンホジション コンホジションコンポ゚ションコンポ゚ジシコンポ゚ジンコンホジジシコンホジショシコンポ゚ジシ コンポジシコンポ゚ションコンポ゚ションコンポジシコンポジシコンホジジンコンホジジシ コンポジシコンポジジシコンホジジシコンポジジシコンホジションコンホジジンコンポ゚ジン コンポジションコンポ゚ a="コンポジション" b="コンポジション" 550.times do |x| if rand(2)==0 print a[x%a.size] else print b[x%b.size] end n = (a.size*7) puts if (x%n)==n-1 end
uyは頭に蛆がわいてる これがコンポジション
uyは蛆そのもの これが継承
662 :
224 :2012/05/26(土) 17:57:05.64
いよいよuyの設計に限界が出てきて破綻しかかってるらしいな。 実行順をないがしろにするからそういう目にあう。 同じ失敗を何度繰り返したら気づくのだろうか。
-----------まとめ----------
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは
『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。
邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」
(ホセ・オルテガ・イ・ガセット 1883〜1955)
>>247 http://toro.2ch.net/test/read.cgi/tech/1336122899/247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
タスクの実行順序を意識しないとゲームが作れない(笑)
OOを得意げに語っているつもりが、やっている事が20年前のC言語だったという事実
665 :
デフォルトの名無しさん :2012/05/26(土) 19:44:49.09
-----------まとめ----------
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは
『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。
邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」
(ホセ・オルテガ・イ・ガセット 1883〜1955)
>>247 http://toro.2ch.net/test/read.cgi/tech/1336122899/247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
タスクの実行順序を意識しないとゲームが作れない(笑)
OOを得意げに語っているつもりが、やっている事が20年前のC言語だったという事実
666 :
224 :2012/05/26(土) 20:39:31.39
ついに狂ったか。あ、元からか。
uyはキチガイ これをOOで表現するとどーなるの?
668 :
デフォルトの名無しさん :2012/05/26(土) 23:30:13.75
-----------まとめ----------
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは
『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。
邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」
(ホセ・オルテガ・イ・ガセット 1883〜1955)
>>247 http://toro.2ch.net/test/read.cgi/tech/1336122899/247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
タスクの実行順序を意識しないとゲームが作れない(笑)
OOを得意げに語っているつもりが、やっている事が20年前のC言語だったという事実
OOPLとしてのRubyの欠点はスクリプト言語であること。
標準的なOOPLが持ってる利点が全くないのがRubyだからな 混ぜたいならScalaの方が遥かに出来がいい
671 :
uy :2012/05/26(土) 23:47:27.10
別に動的言語はさ 柵がないだけで、 柵がなくても大丈夫な奴は大丈夫なんだよ 大丈夫だと思ってた奴でさえも事故る事はあるけど、 別にそんくらいいいんじゃね? 腕がよければ事故ってもすぐに立て直せる 型がないとプログラミングできない!(俺が!) っていうのは、自分バカですと認めているようなもの 型がないとプログラミングできない!(周りが!) だったらわかる お前らはどっちの意味で、言ってる?ww
動的言語を一緒くたに語るような 無分別なバカがドヤ顏
>>671 スレタイ位嫁な?
OOPLとしてRubyが劣等生なのは否定しようがない事実だ
674 :
uy :2012/05/27(日) 00:08:19.47
お前らがruby使おうが使うまいがどうだっていいけど これからPerlは完全に死に、Pythonもそろそろ限界で、 PHPは駆逐される運命にある Web言語で生き残るのはRubyしかない 結局、あと数年でruby以外の選択肢なんてなくなるのに・・・ まぁ現状のrubyで静的言語で作っていた部分までrubyで書きなおせるとは思っていないよ しかし何割かはrubyで書き直されているのが現状だろう これから静的言語を使う場面はどんどん減ってくる
676 :
uy :2012/05/27(日) 00:13:49.82
俺はその先駆けとして、rubyで"このレベルの"ゲームが作れるという事実を ばら撒く意味でも開発してる でも、ABAがD言語でてから一瞬でSTG作ってきた時みたいに 一人やる奴がいても、後ろが続かないと結局流行らないんだよな そういう意味でrubyゲーム開発は"まだ"少し時期が速いような気はしてる 別に、1対1で環境構築手段と、rubyの癖について教えれるなら、初心者でも作れるだろうが
677 :
uy :2012/05/27(日) 00:18:49.18
あと、俺があまり本気になれない理由はもうひとつ 動的言語は、やはり扱うには少しセンスがいる 本当にこれでゲーム作るっていうのを流行らせるべきなのかどうかの迷いもあって、 あまり本気で流行らそうとかは思ってない ゼロからかくならrubyの方が有利だけど、 ちゃんと設計してあって、そのソースコードが手元にあるならば 静的言語でゲームを作り、部分的にスクリプトの導入っていうのが 今はベストというように感じる 俺は別になくても大丈夫だけど 動的言語にはちゃんとしたデバッグ機能を何とかして作り、それを初心者に与えて欲しい そうでなければ初心者には奨められない
Rubyは糞遅い ゲームにRubyを選ぶ奴の頭には蛆がわいてる
ハンマーしか持たない者には全てが釘に見える
馬鹿みて なんか根拠あってrubyなんか信仰してんのかよ トンチンカンな消去法以外になにかメリットいってみろ 言語なんか所詮手段でしかないだろ はじめてから10年経つ前にc/c++からC#になっちまったけど そんときに何が主流になってるかなんてわかんねーぞ 全く別の言語の可能性のが高いんじゃないか?
682 :
uy :2012/05/27(日) 00:27:43.20
速度の問題は、ハードウェアの進化が日々刻一刻と解決に向かっていく 現状のpcスペ、rubyの性能、でも十分にゲームは作れる 実際のところ3Dゲーだって作れるよ 問題は速度ではなく、rubyでもなく 大規模な開発に動的言語を採用するには、ある程度はスキルが求められるってこと ここのあたりを、放置していれば いつまでも熟練者しか扱わず、よってこない Lispコミュのようになっていく 初心者にも扱えるようにさせるのはrubyの本分とは違うのかもしれないが、 所詮は何をするにも人数だ
683 :
uy :2012/05/27(日) 00:29:12.61
>>681 >そんときに
?
そんときっていつだよって話だが
rubyよりも効率を出せる言語があるのならば乗り換えるだけの話
現状rubyが最高効率なんだから、ruby使うに決まってるだろ
>>682 他の言語の方がさらに速くて、未来でもずーっと相変わらずRubyは劣等生だわ
JSより遅いんだし
ハンマーしか持たない者には全てが釘に見える
686 :
uy :2012/05/27(日) 00:52:24.25
現状、C++とかで作ってるゲームが CPU、GPUの性能をフルに使ってるわけじゃないからね C++で、CPUの性能の100分の1しか使わないゲームをかいてるくらいなら ruby使って一瞬でゲームかけよって話
687 :
uy :2012/05/27(日) 00:53:40.82
このスレでグダグダいってる連中は、一生rubyをつかわなければいいよ 俺は初心者には優しく教えるが、 考えの凝り固まった老害に救いの手は差し伸べないから はやく死ね
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
ハンマーしか持たない者には全てが釘に見える
uyは頭に蛆がわいてる これがコンポジション
uyは蛆そのもの これが継承
uyはキチガイ これをOOで表現するとどーなるの?
693 :
uy :2012/05/27(日) 01:00:31.78
俺はクズなので死ぬわ じゃあな
OO好きならScalaいいぞ
>>682 え?rubyのメリットってなんか書いてあった?
>>682 を翻訳すると、Rubyはオワコンってことか
RubyなんかどーでもいいからOOの話しろ
698 :
デフォルトの名無しさん :2012/05/27(日) 04:48:42.53
こいつのせいでrubyへの印象が悪くなる 巧妙なrubyネガキャンだろこれ
uyは頭に蛆がわいてる これがコンポジション
700 :
224 :2012/05/27(日) 07:58:31.31
Rubyが悪いのではなく、uyの頭が悪いだけだがな。 ・処理順を意識しないように →処理に依存関係が無い →相互作用が無い →クソゲー 自分では気づかずに、クソゲー方向に舵取りしてしまっている。 頭が悪すぎて、必要なものを必要とわからずに取り除く。 どうやってもダークサイドに落ちてしまうらしい。
701 :
669 :2012/05/27(日) 13:51:54.60
OOPLとして何故Rubyが駄目なのかは、OCPを徹底出来ないこと。 コンパイル言語では、バイナリ−レベルでのOCPが可能だが スクリプト言語では、テキストベースしか出来ない。 このあたりの重要性は、実際に大規模開発・運用をやったことがある人間にしか理解出来ない。
テキストベースで出来るなら良いじゃん。 何の問題があるわけ?
バイナリーレベルのOCPって何だよ
>>702 >何の問題があるわけ?
逆に何で問題が無いと思える?
既存部分が、前回と同じ動作する保証は?
>>703 素人は黙って読んでいろ、アホ。
>>704 >既存部分が、前回と同じ動作する保証は?
これはアホっぽい。何年前からスリップしてきたんだ。
707 :
デフォルトの名無しさん :2012/05/27(日) 15:03:26.99
わり イベントいっててまともにレス返してなかった かえったらまとめてレスするわ ほんとに可愛い子がコスプレしてくれるようになったなー
お、おう
コスプレでキャラが変わる これがデコレーター
710 :
デフォルトの名無しさん :2012/05/27(日) 15:12:46.91
実際知識もないのにuyのレスを無理に否定しようとするから 他の名無しに揚げ足取られるんだよ 何度目だ
712 :
デフォルトの名無しさん :2012/05/27(日) 15:42:04.15
コンポジション(笑) 電波状態悪い場所からレスしてやってるだけありがたいと思え
無駄な改行が多いのは頭悪い奴の仕様 これがコンポジション
714 :
デフォルトの名無しさん :2012/05/27(日) 16:00:38.45
どうして技術もないのに議論で勝てると思っちゃうのか 何度泣かされれば気が済むのか 全力で勉強したとしても今から追いつけるのは3年先くらいだろう どうせ全力じゃやらないから20年くらいかかるか あ、そのころにはとっくにプログラミングやめてるわw まともに議論したいならせいぜい3年以内には技術つけてこい
↑泣いてます
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
717 :
704 :2012/05/27(日) 16:09:22.77
簡単な例え
何千箇所と使われている共通クラスがあったとする。
それをOCPで改修した場合、スクリプト言語だと全てに影響がでる。
バイナリレベルで拡張できる言語だと、必要最小限のモジュールで済む。
数十〜百名単位で造っているシステムでは、誰がどのクラス・メソッドレベルまで修正しているか
全員に認識させる事は非常に難しい。大規模になると、影響範囲の極小化が大事になる。
>>706 ,710お前らのようなアホには
この例が何を意味するか分からないんだから黙ってろよ、カス。
>>717 おまえが時代遅れのバカだってことはわかった
そんなことより、ここに突っ込め
> それをOCPで改修した場合、スクリプト言語だと全てに影響がでる。
こいつ
>>717 OCPの意味わかってないぞ
720 :
デフォルトの名無しさん :2012/05/27(日) 16:21:59.42
だから知識もないのに無理にレスするからそうやって
>>717 それのどこが「テキストベースでOCP出来てる」状態なんだよアホ
723 :
デフォルトの名無しさん :2012/05/27(日) 16:30:12.67
あー、 あとはこいつの始末まかせるわ コンポジション(笑)に突っ込まれすぎて何かレスしないと心が保てないらしい
724 :
デフォルトの名無しさん :2012/05/27(日) 16:32:05.65
電波状態がよくなった まじ……コスプレ したい
>>722 アホは何が言いたいのかわからん。
>OOPLとして何故Rubyが駄目なのかは、OCPを徹底出来ないこと。
と言っている俺に何を言っているんだ? いいかげんカスは黙ってろ。
726 :
デフォルトの名無しさん :2012/05/27(日) 16:39:49.05
うさみみつけた因幡てゐちゃんがぼくをみてたお 昔は女装というか汚装ばかりで現実から目を背けろと案に教えられてる気分だったが まじやばい ハンパない ていうかコスプレ衣装は売られてるけどみんな微妙に違うし 自己アレンジしてんのかすごいな 俺はいつもああいう綺麗で可愛く楽しんでる奴らを見てると いくら自分が引きこもって技術開発しても永久にかなわないなと思わされる
727 :
717 :2012/05/27(日) 16:41:18.80
しかし、ここのカスどもはOCPすら理解出来ていないのか。
728 :
デフォルトの名無しさん :2012/05/27(日) 16:43:01.62
黙れよNPCどもが
>>725 テキストベースで出来るだけではダメだ、と言い出したのがアホのお前だから(
>>701 >>704 参照)
それなのにテキストベースですら出来てない例出してるから馬鹿なの?と言われてる
そんなことも分からないからお前はアホなんだよ
730 :
デフォルトの名無しさん :2012/05/27(日) 16:44:24.96
コスプレすらできないのにプログラミングして意味ある?
731 :
デフォルトの名無しさん :2012/05/27(日) 16:46:46.86
つまりコスプレすらできないで家で使い道のないソースコード量産よりも つまりコスプレしながら変なコードをダイレクト実行のほうが盛り上がるんだよ
732 :
224 :2012/05/27(日) 16:48:56.42
>>727 お前さすがに痛すぎるよ。
OCPはその名のとおりルールでしかない。
言語機能では無いので、言語は関係ない。
733 :
デフォルトの名無しさん :2012/05/27(日) 16:51:56.91
uyを叩くついでにRubyまで叩こうとするのが無理なんだよ 俺は別にRubyが好きでRubyやってるってよりまじめにRuby以外で出来ないからうざったいendに耐えながらRubyやってんだけど
734 :
デフォルトの名無しさん :2012/05/27(日) 16:53:29.15
また泣かしたんすか たぶんそいつ高校生くらいだからもう放置でいいよ
735 :
デフォルトの名無しさん :2012/05/27(日) 16:59:40.45
コンポジション(笑)
uyが発狂中?
737 :
デフォルトの名無しさん :2012/05/27(日) 17:01:25.16
え 終わり?
>>721 おまえが頭悪いのはわかったから。もうくるな。
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは 『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」 (ホセ・オルテガ・イ・ガセット 1883〜1955)
740 :
デフォルトの名無しさん :2012/05/27(日) 17:04:31.37
言語は仕様を覚えるだけなら一日かからない 実際は言語ごとに未解決の問題が多数あり しばらく使わなければその言語に何の問題があるのかは見えてこない 静的言語をメインにしてた時期と動的言語をメインにしていた時期の両方がなければ 所詮はにわかって事だよ
741 :
224 :2012/05/27(日) 17:05:12.82
>>733 そのとおり。
Rubyが悪いのではなく、uyの頭が悪いだけだがな。
・処理順を意識しないように
→処理に依存関係が無い
→相互作用が無い
→クソゲー
自分では気づかずに、クソゲー方向に舵取りしてしまっている。
頭が悪すぎて、必要なものを必要とわからずに取り除く。
どうやってもダークサイドに落ちてしまうらしい。
742 :
デフォルトの名無しさん :2012/05/27(日) 17:05:17.00
コンポジション(笑)
743 :
デフォルトの名無しさん :2012/05/27(日) 17:07:42.47
タスクの処理順序を意識しないとゲームが作れないコンポジションw
いんたーねっつ黎明期にはかっこわらいという表記が流行った この時代にいんたーねっつを経験して古い人たちはこの習慣が埋め込まれたのだ これがコンポジション
745 :
デフォルトの名無しさん :2012/05/27(日) 17:09:49.36
なんでタスクの実行順序が違うと正しく動かせない程度なのにコンポジション
>>741 uyの頭は悪いけど
だからといってRubyが悪くなくらるわけじゃない
>>732 Principleはルールじゃないぞ?
おまえ本質がわかってないんだから黙ってろ
uyは頭に蛆がわいてる これがコンポジション
ツリー構造の利点は作成したオブジェクトを任意の数、任意の子として流用できること。 こいつは使い始めないと設計が慣れなくてイメージしにくいがすごく便利。 3Dシーングラフもツリー構造で対応した処理を同じ親を持つ構造にしてノード単位で 好きなように処理を構築することも出来て便利。 命令伝達系もデザパタとかオブジェクトメッセージとかにすると、不要なノードは省略するとかも可能。
750 :
デフォルトの名無しさん :2012/05/27(日) 17:15:13.62
タスクの実行順序に気をつけなきゃゲームが作れないレベルなんだよ な? 正しくOOできているわけがない 20年前のC言語をOOだと思っているのだから
つ・・釣り構造・・
752 :
デフォルトの名無しさん :2012/05/27(日) 17:16:30.10
753 :
717 :2012/05/27(日) 17:17:06.35
>>729 >それなのにテキストベースですら出来てない例出してるから馬鹿なの?と言われてる
"出来てない例" どこが出来ていない例なんだ?
”どのモジュール”に対して「OCPが守られていない」と、どうしたら言える?
対象のモジュールだけを見るならOCPを適用出来ている。
俺が言っているのは、”全てのモジュール”が「OCPを守っているとは言えない」と言っている。
だから
>OOPLとして何故Rubyが駄目なのかは、OCPを徹底出来ないこと。
と言っている。
まっアホは言い過ぎた謝る。
>>732 お前はアホ。
>>753 おまえに出来なくても
世の中の時計はとうに進んでるですよ
755 :
224 :2012/05/27(日) 17:25:04.46
>>740 その結果、間違った答えを掴んでしまう人も居るようだけどね。
手続き型言語なのに処理順が有ることを否定してみたり、
安易な制御の利かない木構造タスク作ってコンポジションを否定してみたり。
どうやら、頭が悪すぎて、必要なものを必要とわからずに
取り除いてしまうクセがあるらしい。
彼からしたら、人間性や知能も無駄なものなのだろう。
>>753 バイナリーベースのOCP(笑)だと
問題出ないの?
757 :
デフォルトの名無しさん :2012/05/27(日) 17:32:07.23
どんなかす設計にしたらタスクの実行順序意識しないといけなくなるんだ ちなみにプレイヤーと敵はどっちを先に処理しないと動かない設計?
758 :
デフォルトの名無しさん :2012/05/27(日) 17:33:18.25
コンポジションw
759 :
224 :2012/05/27(日) 17:34:16.24
>>749 コンポジションで良いじゃん。
コンテナ使えば任意の数の子を持てるし、
複数のコンテナを使えば分類も出来る。
処理に依存関係がある場合は、そもそもコンテナを分けとく。
コンテナ内のソートも必要ないというわけ。
そんなもんノードツリーを複数作って管理しろよw なんでゲーム上に1個のツリーしか作れない前提になってんだよw
おいw でどっち?プレイヤーと敵のタスクはどっちを先に実行してんだよ 順序意識しないと動かないんだろ? よくわからんけどさw
タスクツリーはタスク自身と終了オブジェクトの2つしか管理しないので、 任意の箇所に生成したり開放したりできます。 まあ、各種関数のキックは生成者が管理しなきゃならんがそんなもんは当たり前の話だしな。 子として作ってもいいし、別ツリーとして作ってもいい。
763 :
デフォルトの名無しさん :2012/05/27(日) 17:38:07.06
>>760 いやその子ツリー1個すら作れない子だから
仮に1個作ったら力つきて絶命するんだろ
間をとってコンポジションで十分だな
765 :
デフォルトの名無しさん :2012/05/27(日) 17:38:59.62
また泣かしたの
766 :
デフォルトの名無しさん :2012/05/27(日) 17:41:07.13
また泣かしたの
767 :
224 :2012/05/27(日) 17:43:32.46
>>757 こんなこと答えるのもバカらしいが、
もし敵がPlayerを追跡するタイプの場合、
敵→Playerの順で更新したら、
一フレーム前の(更新前の)Playerの位置情報を元に、
敵を更新してしまう。
序の口ですけどね。
768 :
デフォルトの名無しさん :2012/05/27(日) 17:45:33.64
>>767 まあこんなレベルの子なんです
これでツリーとか理解できるわけが…
769 :
224 :2012/05/27(日) 17:47:54.35
木構造タスク=制御性の無いコンポジション だったわけで。ご苦労さん。
770 :
デフォルトの名無しさん :2012/05/27(日) 17:48:49.66
なぜか論外未経験の癖して得意げに語ってるけど騙されるなよ 247でゲーム作ったことありませんって自白してる224だからね。そこの低脳
>>767 それは敵が位置スカラー情報だけを元にしてる設計が悪い
で、それを誤魔化すために未来の位置を元に動くみたいなことやるのがバカの発想な
追跡タイプなら速度ベクトルを元に追跡すべき
772 :
224 :2012/05/27(日) 17:50:16.06
ゲーム作らなくてもお前よりマトモなんだから仕方ないだろ。 ゲームが普通のアプリと違って特別ってことは無いんだよ。
773 :
デフォルトの名無しさん :2012/05/27(日) 17:51:37.10
あー楽しかった 初心者煽るのおもしろすぎてやめられないw 帰り道でのいいひまつぶしになった そろそろ家につく 俺はゲーム作りの続きをやるわ
uyはゲームを作ったことがない
224はバカの子だったけど コンポジションで問題ない
776 :
デフォルトの名無しさん :2012/05/27(日) 17:53:22.04
>>772 はい解散ーw
初心者相手につられちゃったのうwwww
>>773 レベル低いとこんなことも楽しめるんだな
うらやましいぜ
間をとってコンポジションで十分だな
779 :
224 :2012/05/27(日) 18:00:45.72
>>771 どうやったって一緒だよ。
更新前の古い情報を参照しちゃうことには変わりない。
手続き型言語には副作用があるから、何をどうしようが、
依存関係のある処理には順番が付きまとう。
簡単な解決方法は、呼び出しを順を明示的に書き並べること。
どうしても書き並べることが出来ない場合に限って、
タスクのようなコールバックを導入する。OSのタスク管理のようにな。
>>779 少しは考えろよw
おまえが何でつまづいてるかサッパリだわ
速度ベクトルは古い情報たちを元に導くに決まってるだろ
未来の確定情報を元に追跡する、
みたいな決してありえないこと、に対しまず疑問をもてよ
781 :
uy :2012/05/27(日) 18:17:44.00
ただいま 木構造タスクでやってる人に聞きたいんだけど シーンってタスクに含めてる? 俺はシーンまでタスクの一部というかオブジェクト化してるからタスクの一部になってんだけど 動いているものの若干、無理やりな設計な気がしてる
オレオレ用語で話すな ここはおまえのチラウラじゃねーよ あっちいけ
間をとってコンポジションで
785 :
uy :2012/05/27(日) 18:23:38.31
いやねシーンをタスクの一部にも出来る事は出来るが、 ゲームによってシーンは木構造ではなくグラフ構造なのだよ オブジェクトは木構造で出来るのに シーンはグラフ構造 という結論が俺の中で出ているので、 この両者は本当は混ぜちゃいけないものとなってる 混ぜられない事もないはずなんだけどな
本読め
間をとってコンポジションで
し・・死ーん・・
ぐ・・Good裸婦・・
790 :
uy :2012/05/27(日) 18:46:29.79
本ではphase(笑)という変数があり、そこに数値やら文字列を入れてシーンを変更する 木構造でもグラフでもなく平坦な管理 ああいいよどうせオブジェクトとシーンは別管理だろう、 もし同一管理でやってるとかなら、話を聞きたかっただけ 俺は無理やり同一管理でやっているが、いくつかの問題をクリアしてない っと、初心者(224)の前でする話じゃないなこれ
つ・・釣り構造・・
792 :
224 :2012/05/27(日) 18:48:53.18
>>780 「最新の速度」=「最新の位置」−「ひとつ前のフレーム位置」
でしょ。最新の速度には最新の位置情報が必要なわけだが。
>未来の確定情報を元に追跡する
前フレームから今フレームまでの間に起こった変更点を適応するのが、更新でしょ。
「未来の確定情報」って何よ。
過去から現在だけで、未来は出てこないのだが。
793 :
uy :2012/05/27(日) 18:49:19.62
-----------まとめ----------
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは
『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。
邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」
(ホセ・オルテガ・イ・ガセット 1883〜1955)
>>247 http://toro.2ch.net/test/read.cgi/tech/1336122899/247 >ゲームは作らんから知らんが、
224 == 247
口癖はコンポジション
>>772 >ゲーム作らなくてもお前よりマトモ
タスクの実行順序を意識しないとゲームが作れない(笑)
>>767 敵機 → プレイヤー の順序でタスクを実行するとタスクがぶっ壊れる
OOを得意げに語っているつもりが、やっている事が20年前のC言語だったという事実
795 :
uy :2012/05/27(日) 18:53:41.64
そもそもさww タスクに2個のオブジェクトがあったら 敵 → プレイヤー → 敵 → プレイヤー → 敵 → プレイヤー って交互に更新されていくわけだけど、 マジ順序とかどうでもいいんだよなw 224は、タスクループのところで「前処理」と「後処理」を入れるゴミカスC言語設計だからw 順序が必要になっちゃうんだけどさ その「前処理」と「後処理」までオブジェクトとしてタスクの一部にしてさw 後処理&前処理 → 敵 → プレイヤ → 敵 → プレイヤー ってやれば順序とか関係ないwwwwwwww マジおまえC言語wwwwwwwww
796 :
uy :2012/05/27(日) 18:57:33.30
初心者煽るの楽しかったw
797 :
224 :2012/05/27(日) 19:00:47.51
>>795 >タスクに2個のオブジェクトがあったら
>敵 → プレイヤー → 敵 → プレイヤー → 敵 → プレイヤー
どこかに1フレーム分の区切りが入るわけで。
>後処理&前処理 → 敵 → プレイヤ → 敵 → プレイヤー
何これ意味わかんないww
俺の言ってることの意味が分からなかったからって妄想書くなよ。
処理順が問題にならない言っている人に問題。 体当たりをした時、自分のヒットポイントの半分のダメージを与える、という能力をもった物同士がぶつかった時のプログラムを(擬似的に)書きなさい。
800 :
717 :2012/05/27(日) 19:37:57.28
>>756 >バイナリーベースのOCP(笑)だと
>問題出ないの?
アホか? お前はバイナリーを修正出来るのか?
バイナリーは拡張しか出来ないだろうが。
OCPとは
・拡張に対して開いて (open) いなければならず、
・修正に対して閉じて (closed) いなければならない
という設計上の原則だ、覚えとけ。
しかし
>>732 >言語機能では無いので、言語は関係ない。
224は一番のバカだなw
802 :
224 :2012/05/27(日) 19:45:17.38
Rubyの駄目なところは1にも2にも実行効率だよ、ボケ。 OCPはまるで関係が無い。
タスクツリーは基本、制御構造と寿命管理を簡易化するために使うので たとえばプラオリティ付の制御を行いたい場合はタスクオブジェクトをwekptrあたりでリスト化して 制御クラスが処理を行う。 共有ポインタを使えば制御について悩む必要はまったくなく、初心者がおよそプログラムで苦労しているであろう 部分は100%解決する。
依存してはいけないというか、書く前にまず仕様をハッキリさせなきゃいけない例じゃね 「お互いにダメージを負う前のヒットポイントを参照する」のか 「片方がまずダメージを与え、それを参照する(この場合、どちらが先なのかをハッキリ決めなくてはならない)」のか
>>802 ちがう。
使えば使う程にRubyって駄目だなと痛感することになるのはパフォーマンスですらない。
Rubyを学習し始めた頃は誰でもRubyは素晴しいと思うのだが、
数年も使えばそのどうしようもない互換性のなさにウンザリする。
1.4時代のコードが1.6になった途端に互換性がなくなり動かなくなることはあったが、
1.6→1.8ではそれが顕著になり、
1.9など何のエラーも出さずに前のコードが動く方が珍しいほど
それどころか1.9に行かずREEが海外ではデファクトになりつつある現状、
そして始まるPlain RubyとREEの方言問題
>>800 バイナリーを修正出来ない言語ってどれよ?
あまえが無知だから出来ないとかなしで
>>800 おまえさあ
コードが変更出来ないこと、がOCPに関係あると
思い込んでたりしないよね?
カプセル化しようにも、ダメなカプセル集めたって、 結局あとで全部作り直さないといかん。
810 :
224 :2012/05/27(日) 20:05:35.63
>>805 本当は、Rubyの問題点は実行速度とmatzの気まぐれって書こうと思ったんだけど、
矢が飛んできそうだったから止めたんだよ。
811 :
717 :2012/05/27(日) 20:06:46.16
>>806 アホw バイナリ−を修正出来る言語を言ってみろよ。
バイナリエディタで修正とかなしなw
>>807 アホw お前はコードに何を修正するんだ。
>>809 ....
812 :
717 :2012/05/27(日) 20:09:29.57
間違えた
>>807 アホw お前はコード以外に何を修正するんだ。
>>812 おまえがOCPをまるで理解出来てないことはわかった
出直してこい
OCPを体現出来てれば、
仕様の変更に伴いコードを変更しても
クライアントコードには問題ない
改修の影響が何箇所もうんたら、みたいな発想は全くの的外れ
ましてやコードかバイナリーかといった配布方法も全く関係ない
>>717 は無知な上に理解力もない
>>810 むしろ、そっちのほうがRuby使いでも納得する理由だよ。
818 :
717 :2012/05/27(日) 20:22:25.57
>>813 アホ認定の奴から無知だといわれてもねw
C++、Java、C#これ以外でも、何でもいいが
どの言語ならバイナリを修正出来るだw
>>815 >仕様の変更に伴いコードを変更しても
>クライアントコードには問題ない
またアホな事をw
”コードを変更”しちゃ駄目だという原則なのにw
>>818 おまえの無知さには新人君でも呆れるぞ
Javaで出来ないと思った理由は?
このスレには バイナリで配布すれば修正されない! とか思い込んでる痴呆が紛れ込んでるのか
OCPって2つあるらしいよ。 個人的にメイヤーの方は、無駄に継承改装深くするリスクを負う、アホな方法だと思ってるけど。
822 :
717 :2012/05/27(日) 20:28:14.06
>>819 ,820
だからバイナリを修正できる言語を言ってみろよw
823 :
デフォルトの名無しさん :2012/05/27(日) 20:28:50.54
バイナリを修正出来るだ ぷぷぷ
>>822 文盲か!
>>819 はJavaを挙げてるだろw
おまえレベル低すぎだから5年位ROMってろよ
826 :
717 :2012/05/27(日) 20:32:40.16
>>824 Javaはバイナリを修正出来るんだw 凄い言語だなw
どうやって修正するんだw 間違ってもコードは修正するなよw
827 :
デフォルトの名無しさん :2012/05/27(日) 20:32:56.94
>>797 は?
おまえフレームってなんだと思ってるんだ
1フレームの区切り……
は?w
え?
828 :
224 :2012/05/27(日) 20:33:17.65
>”コードを変更”しちゃ駄目だという原則なのにw インターフェースが閉じてるなら、 実装コードを変更しても修正に対して閉じてるだろ。
829 :
デフォルトの名無しさん :2012/05/27(日) 20:39:15.56
なんでこの低脳はこのスレにいるんだろう やっぱC++やってる奴って9割はずれだよね
>>825 方法論レベルの話にどんなソースをだせと・・・
てか、何が知りたいんよ?
>>831 そっちのソースじゃねえw
情報ソースだよおおお
二種類あるってどこで誰が言ってるかに興味がある!
833 :
717 :2012/05/27(日) 20:44:50.39
>>828 >インターフェースが閉じてるなら、
>実装コードを変更しても修正に対して閉じてるだろ。
ポリモーフィックの方を勘違いしている、よくいるアホだなw
ポリモーフィックでもメイヤーでもコードを修正したら駄目なんだよw
>>830 無知だから早く教えてくれよ、バイナリを修正する方法をw
835 :
デフォルトの名無しさん :2012/05/27(日) 20:47:53.26
中学生か、高校生か、 しっかしC++でイテレータはかけてもこの論外レベルなんだもんな 適当なサイトからコピペしてきたのかもしれんけど 最初にあのコードを晒した瞬間から「あ、こいつ初心者だわ」ってわかってたよ 本当に今のC++は良い初心者ホイホイになってしまった
cat /hello.exe | sed -e "s/hello/HELLO/g" > hello2.exe みたいなことはいくらでもできるしC#やJavaはバイトコードの仕様が公開されてるから 耐タンパリング処理がされてない限り改変もできるけど バイナリの修正というものが何を指すのかいまいちわからないけど何なんだろうね
rubyはゴミ みんな知ってるよね
>>837 メイヤーなOCP
ポリモーフィックなOCP
の二つってことか
d
843 :
デフォルトの名無しさん :2012/05/27(日) 20:52:13.74
>>839 別になんでもないと思うよ
何も反論が出来ないように言葉で押さえつけたら
変な場所から「バイナリ」とかいう単語がはみ出てきただけ
844 :
デフォルトの名無しさん :2012/05/27(日) 20:56:29.04
なんで224はこんなにバカなの
845 :
224 :2012/05/27(日) 20:56:44.33
uyの遠吠えが空しい。 コンポジションを否定してしまっては、もう先は無い。
846 :
デフォルトの名無しさん :2012/05/27(日) 20:58:58.39
どこからそいつの話題にシフトした バイナリの話は終了かよ
847 :
デフォルトの名無しさん :2012/05/27(日) 20:59:46.08
コンポジション(笑)
>>841 なんかそう書くとOCPが二つあるように感じるけど
拡張に対して開いて (open) いなければならず、
修正に対して閉じて (closed) いなければならない
OCPが指してるのはこれね
「実装を継承」とか「インターフェースを継承」とかはただの手段だから
849 :
デフォルトの名無しさん :2012/05/27(日) 21:01:18.58
224はコンポジションに何か思い入れでもあるのか? 定期的にコンポジションコンポジション言ってるけど大丈夫かこいつ
850 :
717 :2012/05/27(日) 21:02:33.19
>>839 ,843
バイナリ修正はそうやってやるんだw
一応OCPはプログラミングの原則なんだが、それがプログラミングなのかw
昔は機械語を直接いじってた時代があったわけで。
>>850 逆コンパイラにかけてソースコードレベルで改変してコンパイルしたっていいのよ
とりあえず草生やすのみっともないよ
853 :
224 :2012/05/27(日) 21:11:24.00
>>849 なんで、コンポジションは確かに良く使うけど。
けど、みんな使うでしょ。
今件に関していえば、木構造タスクよりコンポジションの方が便利で、
その理由は処理順の細かな制御が出来るから、
ってだけだが。
854 :
uy :2012/05/27(日) 21:12:09.55
717 = 224 か なんなのこいつ
855 :
uy :2012/05/27(日) 21:13:57.81
>>853 その「当たり前」にやっていた技法に名前がついていたっていう事に驚いてる奴らばかりであろう
「当たり前」のようにつかっている技術の名称を
普通は、わざわざ連呼しない
つまり、、、お前にとって「コンポジション」は、
ああもうから死ねよ
コンポジションw
857 :
224 :2012/05/27(日) 21:16:49.62
>>855 その、当たり前のことも出来ない子がいるから一から教えてあげているだけだが。
木構造タスク?ハァ?コンポジションでやれよ。
858 :
717 :2012/05/27(日) 21:19:53.56
>>851 たしかに、それもコーディングだけどさ...
>>852 >ソースコードレベルで改変してコンパイルしたっていいのよ
ソースコードってw 結局コード修正かよw
なんかバイナリはアホな事を言っていた奴らが、逃げたからもういい。
859 :
uy :2012/05/27(日) 21:20:39.14
>木構造タスク?ハァ?コンポジションでやれよ。 だ、そうですよ なんだこの、全く関係ない単語の組み合わせ反論
>>858 少しはggrks
10年以上まえからちゃんとした手法がある
知らないのはたぶんおまえ一人だw
バイナリ修正は形態を気にしなければできる。
というだけの話を
>>717 は何時まで引きずるのだろうか。
そもそもOCPはコードレベルでの話なんだから、バイナリレベルになったら関係無いのだけども。
862 :
uy :2012/05/27(日) 21:26:44.73
701 :669:2012/05/27(日) 13:51:54.60 OOPLとして何故Rubyが駄目なのかは、OCPを徹底出来ないこと。 コンパイル言語では、バイナリ−レベルでのOCPが可能だが スクリプト言語では、テキストベースしか出来ない。 このあたりの重要性は、実際に大規模開発・運用をやったことがある人間にしか理解出来ない。 このスレで最初にバイナリ言った奴はこれか コンパイル言語 とか言っちゃう奴だもん マジでなんなの これ。 何でこの板にいるんだこいつ
863 :
uy :2012/05/27(日) 21:34:54.54
そもそもさあrubyのバイナリっつうかバイトコードが見たいなら
見ようとすりゃ見れるし
その気になればそれをDumpしてそれを変更して実行させる事も不可能ではないだろう
何いってんだこいつ
ってググったらあった
バイトコードを見るにはRubiniusで
バイトコードを直実行はこれ
http://d.hatena.ne.jp/ku-ma-me/20080523/p1 で、これが出来ると何かが変わるのか? 答え→何も変わらない
意味ねー議論展開させていないでさっさと死ね
864 :
uy :2012/05/27(日) 21:37:40.83
865 :
717 :2012/05/27(日) 21:39:27.58
>>860 アホw
その10年以上まえからある手法を言ってみろw
>>861 >そもそもOCPはコードレベルでの話なんだから、バイナリレベルになったら関係無いのだけども。
だから、Rubyとかスクリプト言語はコードレベルでしか継承出来ないが
コンパイル言語なら中間コードやバイナリファイルからでも継承出来る(元のコードを必要としない)
>>862 ,863
スクリプト言語しかやったことがない者の未熟さだなw
866 :
uy :2012/05/27(日) 21:40:00.90
867 :
224 :2012/05/27(日) 21:45:31.20
だいぶ壊れてきたな。
>>865 Pythonは普通にコンパイルして.pycファイル(バイトコード)作れるし
.pycファイルがあればソースファイル無くても実行できるし
継承もオープンクラスもやり放題だが、OCPと関係あるのかこれ
>>865 PythonでもRubyでもCでクラス書いて継承できるよ
>>865 >コンパイル言語なら中間コードやバイナリファイルからでも継承出来る(元のコードを必要としない)
それって結局、バイナリファイルの方は関係ないままでは・・・
>だから、Rubyとかスクリプト言語はコードレベルでしか継承出来ないが
JavaScriptだと外部に用意されたライブラリを継承することもできるんだけど、そのライブラリはバイナリで用意されていたりすることもある。
なんで、それは間違ってる。
873 :
717 :2012/05/27(日) 21:55:27.80
>>868 バイトコードなら、継承(”拡張”)は出来てもソースがないから”修正”は出来ないからOCP。
まっバイトコードを修正すると言い張っている奴もいるがw
>873 > バイトコードなら、継承(”拡張”)は出来てもソースがないから”修正”は出来ないからOCP。 ソースコードを修正するって それたんにパッチだろ?w
関数の置き換えとかじゃなくてソースコードそのものを 修正できる言語って有るの? 関数の中の○行目を書き換えるとか。
878 :
uy :2012/05/27(日) 21:58:14.44
お前らがバイナリとかバイトコードとか言いまくるから変な方向に落ち着いてるじゃねーかwww 間違った知識植えつけて勘違いさせた後に放置とか酷なことをする
>>875 じゃあやらない。多少ぐぐればわかることだし
881 :
uy :2012/05/27(日) 22:01:05.05
>>871 >>863 これみて分からないなら死ねよ
バイトコードの表示できるツールとバイトコード直実行できる情報だしてんのに・・・
>>881 Cでクラス書いて下さいって
言っただけだよ。
>>880 俺のターンとかよくわかんないけどそれでいいよ
885 :
717 :2012/05/27(日) 22:05:02.09
>>881 お前バカだろうw
>じゃあ、Cでクラス書いてください。
の意味が分かってないだろうw
886 :
uy :2012/05/27(日) 22:06:19.88
こういう子がデスマを作るんかな 知ったこっちゃないが
887 :
717 :2012/05/27(日) 22:08:16.80
>>876 ,877
お前らもバカなの?
バイナリ=実行ファイルとか思っているw
>>873 バイトコードでもオープンクラス使えたら
"修正"出来てしまうけど
889 :
uy :2012/05/27(日) 22:18:37.96
スポンジみたいに用語覚えて吸収していって面白いよねこいつ だからって泥水吸わせるのはどうかと思うけどな
890 :
uy :2012/05/27(日) 22:21:35.35
rubyをやらないから泥沼に落ちていく
891 :
717 :2012/05/27(日) 22:24:05.10
>>888 本当にバイトコードを拡張じゃなく修正なんだよなw
>>889 お前もそんなことしか言えなくなってきたなw 224と同じだなw
rubyのどこにあこがれてるのか知らないけど さっきからメリットらしいメリット1つもないじゃん
だってRubyのメリットを言うためには 他の言語を知ってなきゃ無理じゃん? 当然だよ。
894 :
デフォルトの名無しさん :2012/05/27(日) 22:43:28.37
コンポジション(笑)
895 :
デフォルトの名無しさん :2012/05/27(日) 22:47:46.30
バカは効率が分からない 効率の良いものと効率の悪いものを提示しても バカは効率が分からないのでどちらを選ぶかはランダムである
896 :
デフォルトの名無しさん :2012/05/27(日) 22:53:00.45
224は少し昔の俺と似てる 名無しを挑発してソースださせるまではいいが ちゃんと裏で学習してるよね? してなかったら無意味だぞ しっかしOOにはまってる時点でセンスないんだけどなあ… 初見でわからんか わからんならやっぱバカだ
897 :
デフォルトの名無しさん :2012/05/27(日) 22:57:14.72
こうして名無し共が、知識吸収しやすい段階の初心者に泥水を吸わせるのはどうかと思うわ バイナリの話題とか途中からわかってやってるだろ… そして話し合いはいきなり終わり 勘違いしたまま話題終了wwww おいその泥はやく吐き出せ
898 :
デフォルトの名無しさん :2012/05/27(日) 22:57:49.35
コンポジション(笑)
899 :
224 :2012/05/27(日) 23:02:12.54
>>896 え、俺がOOにハマってるって?ナイナイ。
特にC++などはマルチメソッドが無い時点で整合性皆無なんですよ。
メソッドが属すドメインが一つまでとはこれ如何に。
900 :
224 :2012/05/27(日) 23:13:57.27
その意味でRubyも糞言語だと思ってるね。 C++などは実行効率の話もあるので、シングルディスパッチなのは仕方あるまい。 しかしRubyは動的言語で、しかもオープンクラスがあって、 クラスの外にメソッドを定義できるのに関わらず、なぜかマルチメソッドに対応していない。 おそらくMatzの目指しているものと、俺の見ているものはまるで違う。 俺からしたらシングルディスパッチは不自然だ。
901 :
デフォルトの名無しさん :2012/05/27(日) 23:15:07.83
はまってるはまってる いつになったら気づくのか
902 :
デフォルトの名無しさん :2012/05/27(日) 23:17:09.53
OOに落とし穴があるのではなく OOが落とし穴 おまえはuyにはなれないし やっぱおまえじゃ一生追いつけないや
903 :
224 :2012/05/27(日) 23:19:29.14
uyになりたいやつなぞおらんわww 勝手にアメーバの道へどうぞ。
904 :
デフォルトの名無しさん :2012/05/27(日) 23:25:49.43
アメーバって単語覚えたのか まぁなんつうかこの時点で知っている事の数が1つ違うわけだよ オブジェクト指向がなぜ世界で最も使われているか? 関数型ごときにすら負けているにもかかわらず? 理由は1こ オブジェクト指向は誰にでも出来るくらいに簡単だから…
>>903 残念なお知らせがある
uyはたいがいだが、おまえよりはマシだ
同じように考えてる奴は結構多いと思うぞ?
906 :
デフォルトの名無しさん :2012/05/27(日) 23:32:32.32
コンポジションw
907 :
224 :2012/05/27(日) 23:34:32.05
>>904 無理が無いからだ。
>>905 ではお前もuyと同じレベルってことで。
獣道へどうぞ。誰も止めん。
この子は初心者というより、論外未経験って部類
コ ン ポ ジ シ ョ ン
910 :
224 :2012/05/27(日) 23:41:29.73
そう思うんなら勝手に木構造タスクしてれば良いだろう。 俺は正解を握り続けるから、遠回りしたい人はどうぞ。
uy キチガイ、トンカチ(Rubyしかできない) 224 知識不足、理解力不足、頭悪い
正直、uyが自演していても何もおかしくない。
そんなことより俺は今 二次絵をどうにかして自動で描けないかアルゴリズムを考えてる 顔や目や髪の毛くらいだったら可能ではありそう ベクトル計算で髪は描ける目とかは相対座標 しかし体のポーズと構図はどうすんだこれ…
>>848 OCPだが
メイヤー的な手段は現在では多分に理念的であるにもらかかわらず片手落ちで
現実的なバランスを欠いてると思われる
3次元の世界をバーチャルで作ってそれを2次絵っぽくするのかな そうすればポーズやものを持たせた絵はかけそうな でも実際二次絵て物理法則を無視した記号が萌え要素だから やっぱその物理法則無視した記号を混在させなきゃいけないが 記号の数と組み合わせはデジタル表現したらとんでもない数になるかもしれない ある程度の雛形で描くことは出来ても本質的にそれは二次絵にはなりきれてない 萌え要素となる記号自体をアルゴリズムから生成したい
顏目鼻口手足なんかのパーツを沢山用意しといて 組み合わせればいいんだよ つまりコンポジション!
917 :
224 :2012/05/28(月) 00:03:39.09
>>913 MMDでも読み込んで
それっぽいシェーダー書くしか。
萌え要素となる記号とは物理法則を無視したリボンとか服のなびき方 それらを生成するには物理法則の乱れていないリボンを用意しパラメータからそれを二次絵にする あ、できるけど パラメータが多すぎてデジタル表現はマゾい やっぱ絵はアナログなんかな 人間はパソコンよりもスペックの良い部分はあるから そのパーツを芸術のために使ってるから二次絵は素晴らしい事になるのだろうか 人が普段無意識に計算している計算能力の断片 あー マンガやアニメ絵ならいいけど 表紙絵とか一枚絵は機械生成は無理な気がしてきた、無理か 無理だった
919 :
デフォルトの名無しさん :2012/05/28(月) 00:09:32.29
コンポジション(笑)
920 :
224 :2012/05/28(月) 00:15:19.87
921 :
デフォルトの名無しさん :2012/05/28(月) 00:24:57.18
パンヤやラブデスはかなり二次絵に近いけど、3Dなんだよね 2.6くらいまではきてるけど は こんなグダグダ考えてるあいだにもかけばいいんだ 2時間で1枚はかけるのに
922 :
デフォルトの名無しさん :2012/05/28(月) 00:26:11.60
俺はおまえ等ゴミかす共にレスをしてる2時間で1枚の絵を描きたい 明日からもうこれなくなるけどいい? 死ね
たてよみ?
rubyやっとけば平均以下ではないということ
926 :
224 :2012/05/28(月) 01:30:30.16
へぇ
オブジェクト指向ではなくuy指向・・・・・ uy応援団はこれからもuyを応援します がんばれ
絵は地道に売れてる絵を模写しまくるしかない印象
929 :
717 :2012/05/28(月) 12:54:54.47
>>925 >コンパイラ言語のことをコンパイル言語とか言っちゃう
バカw
・コンパイラ コンパイルをするソフトのこと
・コンパイル バイナリに変換する機能の名称
文脈を考えろアホw スクリプト言語の対比がコンパイラかw
馬鹿には無理
931 :
uy :2012/05/28(月) 14:31:53.08
正しく言うならコンパイル型言語 コンパイラ言語もコンパイル言語も間違い
どっちでもいいっちゃいいが 頭が悪そうな単語 スクリプト言語はコンパイルしねーと思ってるんかって話
934 :
uy :2012/05/28(月) 15:24:41.22
ていうか量産的な絵を同じように真似して描いて 何が面白いかは分からない 悪くはないんだけど、自分から自分の絵への個性を量産絵に染めてしまうのはいかがなものか とはいってもそのテンプレの中にはいると相乗効果で絵が上手いように見えるから その流行の絵柄でいくのが最も売れる絵をかくための近道ではあるけど 絵の瞳の描き方とかも、大体影と光の使い方さえあってればどう描いても綺麗になる でも綺麗だと感じるのは自分がその絵柄が好きだから綺麗だと感じてるだけで 他の人から見たら好みじゃない可能性もあって つまり、需要を予知してそれに対して絵を描けるレベルじゃないのならば 自分の好きなように描いていくのが良いものと思われる ある程度はその中で需要にあわせたり出来るようになると人気イラストレーター化するんだろうけど、 それを狙って出来る人は少なそう、大体は偶然自分の「好き」と周りの「好き」が偶然にも一致しているだけ だからイラストレーターは短命なのだろう、需要に対して狙って絵を描ける奴なんてマジで殆どいないと思うから 俺様は、アニメ塗りとかそういう瞳の描き方ってあまりやらずカテゴリー的には厚塗りと呼ばれる塗り方でやってるが それはアニメ塗りよりも時間かかってしょうがない2時間で描けるとかいっても、実際かなり急いでの2時間だし アニメ塗りというかギャルゲ塗りのようなもので、効率よく絵を仕上げる描き方を考え中 しかし絵っていうのはデジタル的に瞳やフリルなどのテンプレを用意してそれを使ってもいいんだけど そうやってデジタル的に資産を持つよりも、自分の中にアナログの記憶として瞳やフリルの描き方を覚えて それを出力できるようにならないと、何かが厳しいような気がしてる まず、二次絵は顔の角度を真横にした時に世界が崩壊する アニメ絵において、z座標とかも含めて、 0度 90度 180度 270度の絵を描こうとすると、atan2 domain error がでる
エクセルスレから来ました uyさんは本物のプログラマーだと思います! ファンになってしまいそう
940 :
717 :2012/05/28(月) 20:12:37.58
>>931 アホのお前が言うかw いろいろ見逃してやっていたのにw
お前自身が言語と言語処理系の区別がついていないんだよw
>>682 >>現状のpcスペ、rubyの性能、でも十分にゲームは作れる
>>問題は速度ではなく、rubyでもなく
>>初心者にも扱えるようにさせるのはrubyの本分とは違うのかもしれないが
お前の文章はいつも言語と言語処理系がゴチャゴチャなんだよ。
俺が修正してやる
>>現状のpcスペ、ruby(言語処理系)の性能、でも十分にゲームは作れる
>>問題は速度ではなく、ruby(言語)でもなく
>>初心者にも扱えるようにさせるのはruby(言語・言語処理系の両方か?)の本分とは違うのかもしれないが
お前は本当にアホだなw
これからお前だけは、ruby(言語)・ruby(言語処理系)・ruby(言語/言語処理系の両方)と正しく書けw
>>933 そこのバカ、インタプリタと言う言葉しっているかw
ヒント:(バイトコード)インタプリタ
717がuy並の基地外になる日は近い。
本来はRubyが言語でrubyが処理系
javaが言語でjvmが処理系?
>>944 Javaが言語でjavacが処理系じゃね
java(jvm)はJava言語そのものを解釈してない
>そこのバカ、インタプリタと言う言葉しっているかw やっぱり釣れた・・・w なんという単純なAIだ
>>940 おまえは知識が圧倒的に不足しすぎていて
お話にならない
バカだという自覚がないから始末に困る
949 :
デフォルトの名無しさん :2012/05/28(月) 22:54:45.38
950 :
デフォルトの名無しさん :2012/05/28(月) 23:02:42.15
951 :
uy :2012/05/28(月) 23:09:58.56
まとめると、 バイナリの書き換えがわからなかった こいつはバイトコードを知らなかった → JAVA、C#などを知らない スクリプト言語は例外なくインタプリトされてると思ってる → スクリプト系を1個も知らない かろうじてコードをかけるのは初心者レベルのC++、D ゲームが作れない タスクシステムがかけない バカ
952 :
uy :2012/05/28(月) 23:10:13.64
953 :
uy :2012/05/28(月) 23:14:35.58
>>225 >>232 239 :224:2012/05/18(金) 23:36:30.77
>>236 いや、
>>232 ==
>>213 なんだがな。まぁどうでも。
>>236 に書いてあることそのまま書き下すと
obj->set_count_type( count_type );
obj->begin_count( start, limit, add ):
こんな感じかねぇ。まーどうとでもなりますわね。
241 :uy:2012/05/18(金) 23:39:38.42
>>239 いや、どういうやり方がベストだと思うのか、その考えを聞きたい
247 :224:2012/05/19(土) 00:32:17.29
>>244 ゲームは作らんから知らんが、俺はOO厨ではないので、
248 :uy:2012/05/19(土) 01:03:25.42
>ゲームは作らんから知らんが
はい、解散
ゲームを作るかどうかはスレの本質に全く関係ない それに拘るおまえの脳にはやはり蛆が湧いてるな
馬鹿は死んでも治らない
956 :
224 :2012/05/28(月) 23:54:16.21
まぁまぁ。 一年後には木構造タスク解体して、 ごく普通のその他プログラムと同じように、 コンポジションで書き直しているか、 もしくは、自分の やろうとしていたこと、やってきたこと、 が無意味と分かって 嫌気が差してプログラミング自体止めてるか、どっちだろうよ。 必要なものを必要と分からずに取り除いてしまうってのは、 若いころにはありがちなミスなのかもねぇ。 しかし、手続き型言語で処理順制御の排除は、さすがに痛いわ。
957 :
uy :2012/05/28(月) 23:54:55.09
蛆か、 俺はナメクジのほうが好きだな 広東住血線虫っていう寄生虫がいてさ 本来は内臓に住み着く寄生虫なんだけどさ 人間に寄生した場合は脊髄を這って そしてやがて脳に向かっていくらしい 治療方法は、存在しない ナメクジは野菜を這ったりするから洗浄が足らない野菜や 生で野菜とかを食べてれば普通に口に運んでるよ、 ある程度ならば死にはしないが、その広東住血線虫がいっぺんに脳に押し寄せると昏睡状態に陥り死ぬ まぁ何が言いたいかというと蛆が脳がいくようなケースは稀であろう
958 :
uy :2012/05/29(火) 00:03:54.01
まぁでも確か、脳がほんとに腐っていく病気っつうのもあったはずなんだよな そういう病人にはリアルで頭に蛆がすんでいても不思議ではない 蛆は腐った肉を食べてくれる 木構造タスクのことを、俺は出来れば ナメクジと名づけたかったんだけど、ナメクジってあんな風体でも多細胞生物なんだよなぁ・・・ だからナメクジじゃなくてアメーバになってしまう、ナメクジは惜しかった 再三説明するけど、木構造タスクは「Rubyですら」まともには書けないからさ、 こういう設計もあるというのを示す為に提示したに過ぎないぞ C++でまともなゲームを作る奴が作る木構造と、俺のruby木構造は 俺は一応わざと自分の設計を脳内で書き換えて、話を合わせてるけど本質的な部分はかなり異なる ご推察の通り、公開する予定のrubyゲームのソースコードは普通に描いてるよw あくまで木構造タスクのゲーム設計は、自分が使うためだけの開発用基盤という立ち位置になりつつある >しかし、手続き型言語で処理順制御の排除は、さすがに痛いわ。 え、だからそれお前がやってるのは手続き型プログラミング
959 :
uy :2012/05/29(火) 00:08:01.74
>嫌気が差してプログラミング自体止めてるか、どっちだろうよ。 どっちだろうよ どっち「か」だろうよ お前ほんとに右手の人差し指か中指をケガでもしてんの? 指ちゃんと5本ある?
960 :
uy :2012/05/29(火) 00:08:54.85
961 :
デフォルトの名無しさん :2012/05/29(火) 00:09:55.77
962 :
224 :2012/05/29(火) 00:19:34.73
uyってなんかどっかのサイトで、
真のプログラムは何も書かないこと、とか世迷言書いて無かったっけか。
手続き型言語で手続きを否定するってのも同じノリだな。
はたまた人間なのに人間を否定してみたり(
>>588 )。
存在をマイナス要因と考えるから、存在価値が裏返る。
あべこべキチガイ人間。
天使がどうとか言ってたが、むしろ悪魔に魅入られてる。
963 :
224 :2012/05/29(火) 00:23:47.03
>え、だからそれお前がやってるのは手続き型プログラミング Rubyは手続き型オブジェクト指向プログラミング言語。
------------------------------------------------------------
引き続き
>>224 の負け惜しみ劇場をお楽しみください
------------------------------------------------------------
オブジェクト化を勧めるとコードノメンテナンスがしやすくなり、書き直す手間も減る
何言ってんだこいつ
木構造タスクはshared_ptrがなきゃ威力半減
968 :
717 :2012/05/29(火) 01:23:47.87
>>965 質問
例えば小売業の日々変わる商品値段をOOで管理した場合はどうなる?
商品毎に価格のクラスを作る? それとも一つの価格クラス? それともまったく別の方法?
日々の値の設定方法は?
そうやって造ったものが他の手法よりOOがどのように優れていると思うか教えて。
俺には正解とかわからないけどw よかったら答えて。
>>968 オブジェクト指向全く関係ないじゃんw
現時点でのデータを表すマスタクラスと
日々行われた処理をを表すトランザクションクラスが
できるだけ。
トランザクションはデータだけではない。 過去のデータを適切に処理できるのは 過去の処理だけ。 たとえば過去のデータの税率計算処理は 過去のデータと共に保存しなければならない。 だからデータのみではなく処理も含めた オブジェクトとして保存しておくのが適切である。
ゆれすぎ
しっかりお勉強した上で批判するならともかく 「品番が増えたらクラス増やすの!?」とか もうがっかりだよ おれら小学生相手にしてんのかよ
974 :
uy :2012/05/29(火) 03:29:11.70
可能性 1 釣り 2 uy釣り 3 マジでバカ 4 煽られてバカにされて発狂しちゃった まぁ、世の中には想像を絶する天才もいるように 想像を絶するこんなバカもいるんだろ 俺も結構見てきたよそういう奴、 なんか記憶や物事の応用自体が根本的に下手な奴 普通に会話する事がギリギリ可能なレベルで、例えるなら人間じゃなく獣のような印象を持つ でもプログラミング界隈には少ないと思ってたんだけど まさかこんなところでお目にかかるとは そういう知り合いで一人、自分の頭の悪さとか人間的なスペックの低さを周りから酷く言われて 精神的に追い詰められて自殺した奴を見てる 生まれつきかなんなのか、頭も悪く5感も悪いような、そんな人間もいる事はいる 猫も5匹を出産すると、最後の1匹は生まれてくるべきじゃないような固体だったりするからな 健康である事はその時点でマシなんです
馬鹿は愚かだ。っつ当たり前の話がいつまで...
976 :
uy :2012/05/29(火) 04:11:56.60
ちょっとひねくれた雑談スレ
979 :
717 :2012/05/29(火) 12:26:27.62
>>969 >オブジェクト指向全く関係ないじゃんw
個別の物(オブジェクト)の、値の操作だからOOに適していると思うが。
>>970 >だからデータのみではなく処理も含めた
>オブジェクトとして保存しておくのが適切である。
なるほど!! データだけじゃなく処理も保存か。
ステータスやフラグを記憶してオブジェクトやメソッドを制御するのではなく
”処理”自体を保存するという、発想はなかった。
勉強になったありがとう。
>>972 アホ
あきたしうめるわ
ss
えddfhん、l
dfggfddfgdg
fjfjj
953 :uy:2012/05/28(月) 23:14:35.58
>>225 >>232 239 :224:2012/05/18(金) 23:36:30.77
>>236 いや、
>>232 ==
>>213 なんだがな。まぁどうでも。
>>236 に書いてあることそのまま書き下すと
obj->set_count_type( count_type );
obj->begin_count( start, limit, add ):
こんな感じかねぇ。まーどうとでもなりますわね。
241 :uy:2012/05/18(金) 23:39:38.42
>>239 いや、どういうやり方がベストだと思うのか、その考えを聞きたい
247 :224:2012/05/19(土) 00:32:17.29
>>244 ゲームは作らんから知らんが、俺はOO厨ではないので、
248 :uy:2012/05/19(土) 01:03:25.42
>ゲームは作らんから知らんが
はい、解散
感動的なクソスレだった
953 :uy:2012/05/28(月) 23:14:35.58
>>225 >>232 239 :224:2012/05/18(金) 23:36:30.77
>>236 いや、
>>232 ==
>>213 なんだがな。まぁどうでも。
>>236 に書いてあることそのまま書き下すと
obj->set_count_type( count_type );
obj->begin_count( start, limit, add ):
こんな感じかねぇ。まーどうとでもなりますわね。
241 :uy:2012/05/18(金) 23:39:38.42
>>239 いや、どういうやり方がベストだと思うのか、その考えを聞きたい
247 :224:2012/05/19(土) 00:32:17.29
>>244 ゲームは作らんから知らんが、俺はOO厨ではないので、
248 :uy:2012/05/19(土) 01:03:25.42
>ゲームは作らんから知らんが
はい、解散
953 :uy:2012/05/28(月) 23:14:35.58
>>225 >>232 239 :224:2012/05/18(金) 23:36:30.77
>>236 いや、
>>232 ==
>>213 なんだがな。まぁどうでも。
>>236 に書いてあることそのまま書き下すと
obj->set_count_type( count_type );
obj->begin_count( start, limit, add ):
こんな感じかねぇ。まーどうとでもなりますわね。
241 :uy:2012/05/18(金) 23:39:38.42
>>239 いや、どういうやり方がベストだと思うのか、その考えを聞きたい
247 :224:2012/05/19(土) 00:32:17.29
>>244 ゲームは作らんから知らんが、俺はOO厨ではないので、
248 :uy:2012/05/19(土) 01:03:25.42
>ゲームは作らんから知らんが
はい、解散
r-‐、 ,ィ=┐
_,.-l::トミ:\// 斗.-―-..._
-=二__: :}:}: : ヾ}''": : : : : : : : : : : `ヽ、 __
/: :ノノ:/: : : : : : : :/: : : : : : : : :ミ=- 〃~》
,:': : : :{l{/:{: ゞ: : : : : / : : : : : : : : / : ∧≦≠ミx、
/: /: : :/:{: : : : / : : / : : /:/ : : : / : : : ∧ヽ,,x彡'
/:/: : :/i: : :i : : !: : :斗-/!:{ : : : /i: : : : : :ハ〃、
,:'/i : //{: ヘl: : :i: : :// i/i: : : / ト、:/ : } : }: :ト\
/ i 〈/: i{ i : : iィ { i: :/ j: ∧ :/: ノi: :i
i: : /:弋 i:l: : }iィ=ミ }/ レ : :/i :/l::|: }
}ノ {: リ`ii: : j!,,,,, =ミノイ: :i/: L| j!
∨ λ: リ、 r- 、' ,,,,/ : {: ト、 : : リ
>>1 死ね♪
,,_Y ノ}ヽ、 ー .......-‐<:i: :∧{ ヽ /
/{{''"´ ノ { `ーrァ、_ j/ ソ
j! {弋゙辷ヽ __r‐f/.: .: ヽ
λ }.: {トミト-にフ斗'".: .∧.: {
ノ.: `j.: .: }i ii 不、ii i{.: .: ゙、.: .:\
弋.: .:i.: .: {i /∧ }ll i) .: .: .}: .: .: 〉
\{.: .: .:}i〈ノ ソ ii }}.: .: .:i/.:/
.>:.:/.:.\:.∨:.:.:.\>○-、 /:.://.:.:.:/.::.l :}:.|:.:|:.:.{⌒ヽ ○ :./:.:./:.:.:./'7777|:.:|:.:.|\_}人 /:.:.:.::|:.:.:/'//////レ'|:.:.|:.:|:.:.:.:.:.:.| | | || : /}:.:.|:.//////////|:.:ハ}:.:.:.:.:.:.| | | /'/:.:.:V/ノ '////|/}:.:.:.:.:ノ:.:.:| | | ./:.:.}:.:|' f⌒ヽ }三7) }:.:.:.:| { :./|.∧ ヽ ) / /イ:./:./ て ─┬┘ /:.:.:.:\  ̄ /ミニ7:.//:./ ' {. ‐─┼─ . /:.:.:/:.:.::.:>ー/=ミ/7^7´ ̄`ヽ. て | /:./:.:./:.:_/ニミ:./ 人{ '、 く. ┘ :./ .:. ///:.:.:.:.:./ ノ \ '、' ‐┬┘ :.:.:.:./:.| /ニニミ}ト、< !? >. '、 | :.:.:.:i:.:(__ノ:./ |:::| \} / ̄ ̄ ̄ ̄| :.:.:.:i.:.:| ∨} V|:::|/ く⌒V::::::::::::::::::::::::| || / :.:.:.:i:「 ̄`7 /:/_, \/ ̄ ̄ ̄ ̄| / :.:.:.:i:ト、:/ _,{::{_ ∨ / \ :.:.:.:l:| / {::{ } 〈 〉 \:. |{ \}::} _ 〈 / ̄ 〈 ∨ハ }::} / 〉 ./ ヘ. }::} // \__ イ _/ }丶 }}__/ / 〈 /::::\_ _/
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。