■ このスレッドは過去ログ倉庫に格納されています
今年はプログラム勉強してゲームつくるよ!
- 1 :以下、?ちゃんねるからVIPがお送りします:2020/02/14(金) 21:32:40.362 ID:aTTYB2Uk0St.V.net
- 現在26日目だよ!!
開発環境
MacBook 12インチ
unity
VSCode
コードはここ
https://github.com/himajin-vip/test2
現在の進捗状況
https://unityroom.com/games/rensyuu
動画とか
https://Twitter.com/xPf19p
(deleted an unsolicited ad)
- 131 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 06:39:45 ID:6mQufTaZ0.net
- いるじゃないですか?ってわかるかそんなもんって感じですよね、、、すいません、、、、、
- 132 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 06:42:37 ID:XJrU1eHm0.net
- >>127
状態遷移は基本タイマか移動などのユーザ入力のタイミングで行うだろうし
それでええんちゃう?
ユーザ入力のうち特定のキーイベントがおこったとき、
コンテキストの中にヘルパーやツールなりを入れたらええしね
で、そのコンテキストオブジェクトをインターフェースで縛ることができれば、
かなりの仕様変更に耐えられるようになるで
- 133 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 06:46:57 ID:6mQufTaZ0.net
- >>132
現状StateはStart,Update,Endのインターフェースで作っててこのStateをどんどん切り替えていく感じで作ってます!
- 134 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 06:52:52.988 ID:6mQufTaZ0.net
- なんかめちゃ勉強になったきがする!!
- 135 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 06:53:06.360 ID:XJrU1eHm0.net
- >>130
要するにアイテムの数量管理する台帳とアイテムの性質を示すクラスがあるってことかな?
その場合はイメージ的に道具箱を渡すってイメージでええと思う。ツールクラスね。
その中にアイテムと台帳を結びつける道具をいれとくって感じで
当然、プレイヤーからは道具箱以外意識しなくて(アイテムや台帳の型を使わない)いいように
たぶんそのアイテムを捨てたら台帳から差し引きたいとかそんな感じでしょ?
その際アイテムの性質と在庫状況がいるってことって勝手に解釈した
- 136 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 06:57:27 ID:6mQufTaZ0.net
- >>135
めっちゃそんな感じです!!
アイテム自体もインターフェースで作っててプレイヤーにはなんかわからんけどUseすれば使えるよっていう風にはしててその使ったらどうなるかっていうデータと台帳は別のclassで管理してるんだけどこのclassをメンバで持たせるのはなんか違うなとおもってたんですよね
- 137 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 06:59:31 ID:6mQufTaZ0.net
- インベントリクラスはHasだからプレイヤーに持たせてもいい気がしたんだけど全てのアイテムのデータベース的なアイテムライブラリークラスは違う気がするんですよね
- 138 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:00:10 ID:6mQufTaZ0.net
- てかそうなってくるとプレイヤークラスが全部のデータをもつ神様になってしまう、、、、
- 139 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:02:35 ID:6mQufTaZ0.net
- やっぱりステートに必要なコントローラークラスを持たせておいて行動的な物は全て別クラスで作成してその都度コントローラークラスから必要な情報を引き出したほうがいいかな!
- 140 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:03:50 ID:DYnmRO/K0.net
- ステートがhas aでネストするなら
ノーマライゼーションというのがあってだな
- 141 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:09:39 ID:6mQufTaZ0.net
- >>140
なんとなくみたことは有るけどそれこそインターフェースをつかって吸収しましょう的なイメージしかないです、、、
- 142 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:10:22.058 ID:XJrU1eHm0.net
- >>137
まぁツールはすべてのアイテムを操作できるけど、
すべてのアイテムを持ってるわけじゃないからね
すべてのアイテムを操作できるのはアイテムが共通のインターフェースを実装してるからだし
受け取ったイベントに沿ったアイテムをつめてプレーヤーに渡すわけだから
つど必要なものがとどけられる感じ
まぁ四次元ポケットみたいなものといえばいいかw
現代風にいうと宅急便の配達と荷受かな
- 143 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:10:25.156 ID:6mQufTaZ0.net
- プログラムはじめて1ヶ月なりそうだけどまじで進歩してない気がしてきたよ、、、、、、
- 144 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:12:37 ID:6mQufTaZ0.net
- >>142
ようはアイテムを使うってこととインベントリを減らすって行動をパッケージにしたボタンをプレイヤーに渡して押させる的な感じかなぁ??
- 145 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:14:46 ID:6mQufTaZ0.net
- 今までクラスの中で他のクラスの情報を入手したり操作したりしてたからそれをやめて一回自分のクラスの事だけをさせるようにします!
それから他のクラスとの兼ね合いが必要なものは作っていこうかな!
- 146 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:19:26 ID:XJrU1eHm0.net
- >>144
受け取り拒否したら在庫は減らない売り上げもそのまま
受け取ったら在庫は減る売り上げは上がる
ユーザがやるのは受け取りを拒否するか承諾するか
その他のことはヤマトがやりヤマトが結果をAmazonに通知してAmazonが計上する
みたいな感じ
- 147 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:21:05 ID:6mQufTaZ0.net
- >>146
ほうほう、、これ1から作り直した方が早い気がしてきました!!
- 148 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:26:26 ID:XJrU1eHm0.net
- >>145
まぁそれが無難だす
BtoBの発想が大事ぽ
売人と買人と仲介人
消費者と生産者をしっかり作ってそれをつなげる商社や銀行があると
商社や銀行がお金や商品といった財を統一した手続きでやりとりできるようにしとるわけだす
そしてそれを市場経済や商法といったコントローラの中で動くわけだす
オブジェクト指向はもともと実社会を概念に落とし込んだものなので
実社会の社会システムを参考に境界を考えてみると捗るかも
- 149 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:30:42 ID:6mQufTaZ0.net
- >>148
RPGだとそこが落とし込みやすいかなと思って始めたんですけどよくわからないうちにばーっと書いちゃったらぐちゃぐちゃになっちゃいましたwwwwww
- 150 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:41:44 ID:XJrU1eHm0.net
- >>149
クラスベースのオブジェクト指向でいくとどうしてもモノシリックになりがちなので
クラスの機構からはなれてUnixドメインソケットやパイプといった通信機能を使ったと想定して
各機能間の連携を行う発想で分類わけしてもええかもね
各機能群はバイナリ化されていていじることはできないと考えてみるっと
クラスベースの機構に頼った場合、境界の向こうのソースコードが手元にあると
こっち側の事情なのに境界の向こうのソースコードいじりたくなってしまう
作用する実態に近いところのほうが融通きくし簡単に目の前の課題解決できてしまうからねえ
しかしそれをした瞬間境界の壁は壊れてしまう
- 151 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:46:16 ID:6mQufTaZ0.net
- >>150
多分今その境界がぶっこわれてしまってますね、、、無駄にstaticとかしってしまったせいでstaticクラス量産してどこからでもなでもできるって状態になってしまってます
動くからよかったんだけど勉強的にはNGだと思うのでとりあえず動かなくなるけどカプセル化していって終わってどうするか考えます!!
- 152 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:48:24 ID:6mQufTaZ0.net
- あと単一の機能をもたせるのが基本って見たんですけどたとえば同じ物を取り出すんだけど取り出す対象が違う時ってクラスを分けるべきですか?用は引数が違って戻り値が同じものなんですけど、、、、
- 153 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:55:55 ID:4pZHivC40.net
- 寝ないでずっとやってたの?
どんな生活リズムしてるのか気になるわ
- 154 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 07:57:47 ID:XJrU1eHm0.net
- >>100
みおとしてた・・・・データタイプの相違はアダプタが面倒みるので
こんな感じ
[境界]
|
・こちらの契約単位←|→・マイクソの契約単位
統一性をもたせて | マイクソ仕様のプリミティブのみ受け付ける
参照型のみ使用 | ライブラリたち
[入出力アダプタ] ⇔
|
入出力アダプタが境界間の相違、
参照型とプリミティブの相互変換するから
左側のモジュール群は参照型で統一しててええでって話し。
データフローの終端が右側であっても相違の相互翻訳は
アダプタがやるんで他のモジュール群は参照型を使って
右側の機能群を利用できるよんってこと
- 155 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:00:57 ID:6mQufTaZ0.net
- >>153
今日はお休みだからね!多分そろそろ限界来そうだけどいまいいとこなんだよ!!
- 156 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:07:19 ID:6mQufTaZ0.net
- >>154
わかったきがする!!!
- 157 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:10:05 ID:XJrU1eHm0.net
- >>152
まぁ基本だけど単一機能といっても分類の仕方によっては
ものすごくでっかい単一になることもあるしね
個人的にはサービス間の通信連携のように境界をはっきりさせて
境界をこえたアルバイトをさせないこと
インターフェースを利用してでっかいswitchを避けること
この辺が実現できたらあとの役割分割とか実装分割は宗教戦争になりがちだから
複数人開発でない限りお好みでとしか
>同じ物を取り出すんだけど取り出す対象が違う時
ちょっとイメージが湧かないので具体例でオナシャス
静的な型は同じだけど動的な型が異なってるとか
動的な型も同じだけど実体が異なって異なるコンテキストをもってるってことかな
同じ振る舞いをするプレイヤーだけどマリオとルイージでの足のひっぱりあいプレーみたいな
- 158 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:14:36 ID:6mQufTaZ0.net
- >>157
えっと袋からチョコを取り出すってクラスと棚からチョコを取り出すってクラスがある感じかな??
- 159 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:16:03 ID:6mQufTaZ0.net
- ただ袋と棚で依存してる物がちがうから分けた方がいいのかとも思ってるんだよね
ただ今度冷蔵庫からも取り出したいとかなってきたらクラスが莫大に増えていくからどうなのかなと
- 160 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:29:33 ID:XJrU1eHm0.net
- >>158
そこはもう執事クラスで境界つくって執事がアイテムをとるってことにして
執事が受け取ったメッセージでなにをとるか判断するって感じでやれば?
でアイテムには性質の振る舞いを規定したスーパーインターフェースと
分類を示すタイプ属性やコンスト定数とかもたせとけばええんちゃう?
執事が伝票もっててそこに必要な情報を記入するみたいな感じ
窓口の構造さえしっかりしとけば
末端の実装は極端な話種類が少ないうちは
マップとかでざっくりと管理しててもいいしね
- 161 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:36:32.858 ID:6mQufTaZ0.net
- >>160
あああああなんとなくわかったここでインターフェース使えばいいのか!棚にも袋にも実装させてそれで指定すればいいのか!!
- 162 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:38:06.150 ID:6mQufTaZ0.net
- やばっ楽しくなってきた
- 163 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:42:53.188 ID:XJrU1eHm0.net
- >>161
より具体化する下層での分類はConst定数で判断するほうがええ場合もあるで
分類テーブルに分類IDをキーに対応したクラスの参照や関数ポインタをもたせることで
キーから必要なリフレクションを一発でできることができるようになるし
クラスの爆発的な増加を抑えることができる
- 164 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:47:21.204 ID:6mQufTaZ0.net
- >>163
こんなものがあるんですね、、、アイテムのIDとか変わらない物はこんなのつかった方がいいのかなぁ
- 165 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 08:49:59.001 ID:6mQufTaZ0.net
- ああああはじめてインターフェースすばらしいとおもった、、、今まで型でしか判断出来てなかったけど機能で判断できるようになるのすばらしいな
- 166 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:04:08 ID:6mQufTaZ0.net
- あああそうなってくるとリストの型が問題になってくるのか、、、、、
- 167 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:05:04 ID:XJrU1eHm0.net
- >>164
オブジェクトにもその情報を示す実行時情報とか仮想関数テーブルとか
属性情報を保有していてVMはそれで動的な型やコールする仮想関数を判断しとるからね
インスタンスにもID振って管理しとるしさ
一意を定めるアイテムIDと種類を示す分類IDがあったとしたら
分類IDと袋のテーブルを作ってそっから袋を決定するって実装方法もあるかのう。
インターフェース定義してたら多態コールバックと同様に
袋のattach→do→detachといったようにメソッドを順に呼び出すこともできるし
もちろん一意のIDから対応するオブジェクトをトリガすることもできる
上層ではインターフェースの実行時型情報による多態を利用したほうがいいこと多いが
下層になると実行時型情報による選択分岐はデメリットが目立ってきたりするのでご注意
- 168 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:05:22 ID:6mQufTaZ0.net
- Listの型をインターフェースにしてしまえば問題ないんだけどなぁ
- 169 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:12:11 ID:6mQufTaZ0.net
- あああああなんかわかってきたあああああ二つのメンバを持つリストを管理するくらすだよって曖昧につくってそこからインベントリクラスにすればよかったのか
- 170 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:12:42 ID:6mQufTaZ0.net
- 抽象的ってなんだよって思ってたけどやっとわかってきた
- 171 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:15:29 ID:XJrU1eHm0.net
- >>168
まぁListを継承してインターフェースをインプリメントするか
Listをメンバにもつクラスを作成してそのメンバにアクセスするメンバ関数実装し(コンポジション)
インターフェースをインプリメントするかやね
個人的には契約単位外のライブラリの継承はなるべく避けたい派なのでワシなら後者にする
理由はベンダの気分次第で(略
- 172 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:21:44 ID:6mQufTaZ0.net
- >>171
もともとメンバにアクセスするクラスを作ってたので後者でいこうとおもいま!!
- 173 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:23:33 ID:6mQufTaZ0.net
- やば、、、、継承とインターフェースの意味がやっとわかってきたわ、、、、、、、、
- 174 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 09:23:46.586 ID:6mQufTaZ0.net
- すごい!!楽しい!!!!
- 175 :転がりマン ◆KCMJNs5qa6 :2020/02/15(土) 10:23:40 ID:bItSl10j0.net
- おはよう寝ずにやってるのかw
理解が進んだ瞬間たのしいよな
- 176 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 10:29:15 ID:R/Otiqam0.net
- >>175
おまえがあと1分遅くレスしたらスレはすでに落ちてたな
- 177 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 10:36:51 ID:mVuSJ/q20.net
- お風呂はいってきたよ!!
- 178 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 10:37:43 ID:mVuSJ/q20.net
- >>175
寝ずにやってしまったよ、、、、でもおかげでインターフェースの大切さとか抽象的な大切さが分かった気がする!!
- 179 :以下、?ちゃんねるからVIPがお送りします:2020/02/15(土) 10:57:53 ID:mVuSJ/q20.net
- 昼間からふろはいってお酒のんで気分は最高だね!!
総レス数 179
46 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★