[過去ログ] 一人で完成まで頑張るの寂しいからかまって [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
796: 60 某犬犬 ◆HzfAAjcl8nz1 [sage] 2020/10/25(日) 06:44:52.05 ID:Gy2RzjYB(1/2) AAS
構造体の配列をプラグインで管理した
&foo は変数名 foo を指定する参照渡し
struct は、プラグインのサブ・コマンド
struct iter は、サブ・コマンドのサブ・コマンド
BkkSprite struct init &ctrlHead &iterHead &iterTail &max
BkkSprite struct alloc &ctrlHead
init で管理領域を設定して
alloc で実際にスタック上にデータ領域を確保する
BkkSprite struct iter isBegin &ctrlHead &result
BkkSprite struct iter isEnd &ctrlHead &result
BkkSprite struct iter begin &ctrlHead
BkkSprite struct iter end &ctrlHead
イテレータの終了チェックと、イテレートの開始/終了
BkkSprite struct iter at &ctrlHead &idx
イテレータの値を直接指定して、そこへ飛ぶ
BkkSprite struct iter ++ &ctrlHead
BkkSprite struct iter -- &ctrlHead
イテレータを進める
基本的に要素の削除は無くて
代わりに使用中フラグをメンバーに入れて置くか
またはスタックごと開放して、リセットで最確保する
797: 60 某犬犬 ◆HzfAAjcl8nz1 [sage] 2020/10/25(日) 07:20:07.14 ID:Gy2RzjYB(2/2) AAS
データへのポインタを列べたイテレート領域を使って
構造体のメンバーにアクセスする(管理領域とは別物)
「構造体 Tank のイテレート領域」
Tank.type
Tank.x
Tank.y
BkkSprite getIndVar n Tank.type
で Tank のメンバー type を変数 n に読み込む
Tank.type はイテレート領域のポインタ変数名
BkkSprite setIndVar Tank.type n
は、逆に変数 n の値をメンバー Tank.type に書き出す
要するに、スタック上のデータ配列に対して
メンバー名でアクセスする為の仕組み
モトローラの680x0系アセンブラが分かる人なら
「ディスプレースメント付きアドレスレジスタ間接アドレッシングモード」
見たいなものと言えば伝わるだろう
ツクール2003では、コモンイベントのコマンドで実装してたけど
MVは「変数番号の変数」が使え無いのでプラグインにした
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s