[過去ログ]
無料で俺がRPGを作れるようにするスレ (474レス)
無料で俺がRPGを作れるようにするスレ http://mevius.5ch.net/test/read.cgi/gamedev/1059218326/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
224: 名前は開発中のものです。 [sage] 04/03/23 02:48 ID:PMWtRlHb >だとするとあんなの使わなくても関数ポインタ切り替えでいいじゃん、と思うんだが・・・ その関数を減らすために使うんだよ。 普通はその関数の操作対象のオブジェクト(やシーンなど)の状態が変わったら 関数を切り替えるわけでしょ。ファイバを使うと、その「状態」が「関数をどこまで 実行したか」で表せるようになるから、状態ごとにいくつかに分かれてた関数を ひとつに出来る、と。 まぁ、でもこういうのは大概スクリプトで実現するような気がしないでもない。 http://mevius.5ch.net/test/read.cgi/gamedev/1059218326/224
225: 223 [sage] 04/03/23 05:14 ID:JCV/36ob >>224 ちょっと待て、その利点は間違ってると思うぞ ファイバ使っても関数減らすことになるとは思えない このスレなのでRPGの例で行くが、 RPGにおける「状態」ってたとえば ・マップ移動(キー入力待ち) ・マップ移動(スクロール) ・戦闘中 とかに分かれるよね ファイバを使う場合、これらの関数をCreateFiber関数で登録し、SwitchToFiberで切り替えるだけだ。 使わなくとも一旦呼び出し元ループに戻って別の状態用関数を呼び出すのと関数の数はほぼ変わらん #状態の定義が食い違ってるかも? スレ違い継続&長文スマソ http://mevius.5ch.net/test/read.cgi/gamedev/1059218326/225
231: 名前は開発中のものです。 [sage] 04/03/23 12:25 ID:rzkxl8IS >>230 >けどやっぱタスクシステムから乗り換えるほどの理由じゃないっす いや、タスクシステムと併用するんだよ当然。 タスクシステムからタスク関数を呼び出すと思うけど、それをファイバにするという話。 >#同じ関数を10個ファイバとして登録して再利用するにしても、 >#結局被弾したとかの状況によって初期化するわけだから外部で制御しても大差なし まぁ、被弾とか非同期で状態が変わる部分は、別関数にせざるを得ないよね。「例外(Exception)」だし。 でも、多数の状態が(ほぼ)シーケンシャルに切り替わっていく状態なんかでは、状態ごとに関数分けたり 状態変数作ってswitchで分けたりするよりは、すっきりしたプログラムになると思う。 まぁ、もちろん、 >#そもそも最近のハードだと敵の動きは外部データで持つことが多いので なので>>224ではスクリプトでやる場合が多いと書いたわけだけど… どっちにしろ「使いようによっては便利なときもある」って話だ。 全ての場合で使えると言ってるわけでもない。ファイバはメモリ食うしね。 http://mevius.5ch.net/test/read.cgi/gamedev/1059218326/231
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s