はい二人組みつくってー

Clickteamのフォーラムを見てたらオブジェクト選択についての大ヒントを見つけてしまった。
これは個人的に今まで抱いていたデカイ疑問が一気に氷解するようなTIPSだ。
俺がアホだったから気づかなかっただけかもしれないけどな!一応書いておこうっと

オブジェクト選択とは

あまりいい表現が思いつかないけど、最終的にやれることは
「いっぱいいる敵キャラ一体一体にそれぞれ武器や影などのオブジェクトを持たせる」って感じです。


CnCの仕様として、ただ単純に


常に使う
      →武器を敵キャラの座標に移動

って書いてしまうと、
敵キャラと武器が複数あった場合、その場にある武器が全部
敵キャラ1体のところにまとまってしまいます。



てめーには譲り合いの精神はないのか


これはプログラム側が「たくさんの敵キャラのうちの誰の座標を参照すれば良いのか」が分かってないからです。
それを分からせてやるのが今回のTIPSです。

前置きはこの辺で

まずこのサンプルを見てくれ!

☆に影がついているが、これは別オブジェクト。
☆をクリックして破壊すると、ちゃんと影も消える。
重要なイベントは、

1:常に使う
     →の変数Aに通し番号(0)
     →の変数Aに通し番号(0)


2:常に使う
     →Start Loop #0 for 数""loop(s)



3:Loop Trigger #0
 の変数Aの値=Loop step (,0)
 の変数Aの値=Loop step (,0)
     →の座標を
     →その他動作

この3行だけ。どうよ。わかりにくいなあ


1行目。
の変数Aに0から始まる通し番号をふっています。
通し番号ってのは、整理券みたいなもんです。が5個あったとしたら0、1、2、3、4がそれぞれ振られます。
でこれがIDナンバーになります。


2行目、Fastloop。
こいつは、の数だけループをまわします。
ループとは、1フレーム(CnCの場合50分の1秒)に行う処理の回数です。
が10個あれば10回ループ。
プログラム言語でいうところのfor文ですね。


3行目、
そのループが現在何回目かという数値(Loop Step)と、の変数Aを比べています。
これはIDが同じペアだけを呼び出していることになります。
今ループ3回目だからIDが3の二人ちょっとこい、てな感じです。
これを条件節にしてやると、呼び出された二人だけにイベントを適用することが出来ます。
この行は完全に二人だけの世界になっているので、
座標をあわせるなり相手の変数を取得するなり共に破壊するなり好きにしても、
ほかのキャラには影響を与えません。



やっべえ他人がこれを読んで理解できる気がしねえ。まいっか適当にサンプル解読してください( ^ω^)



見た目かなりややこしいですが、いったんコツをつかめば相当便利です。
使う変数も一つだし。
複数個の破壊可能なパーツをつけた敵をいっぱい出したり(多関節ですね)
見た目よりも小さい判定をもった弾を発生させたり
横スクロールアクションのザコキャラに個別の地面・天井・壁判定を持たせたり

出来るんじゃね?( ^ω^)